[javaEE] 三层架构案例-用户模块(一)
用户注册登录注销
Servlet+JSP+javaBean+dom4j
分层结构:
com.tsh.web
com.tsh.service
com.tsh.dao
com.tsh.domain
com.tsh.util
com.tsh.test
com.tsh.exception
com.tsh.factory
使用的包:
dom4j jstl beanutils junit
users.xml-----------模拟数据库
config.properties------------主配置文件
XPATH:
dom4j提供的方法,可以在xml文件中查找指定的节点,类似正则在文本文件中查找指定文本
com.tsh.dao.XmlUserDao.java
- package com.tsh.dao;
- import java.util.List;
- import org.dom4j.Document;
- import org.dom4j.DocumentHelper;
- import org.dom4j.Element;
- import com.tsh.domain.User;
- import com.tsh.util.XmlDaoUtil;
- public class XmlUserDao {
- /**
- * 根据用户名查找user
- * @param username
- * @return
- */
- public User findUserByUsername(String username){
- Document dom=XmlDaoUtil.getDom();
- Element root=dom.getRootElement();
- //使用XPATH语法
- List<Element> list=root.selectNodes("//user[@username='"+username+"']");
- if(list.size()>0){
- Element userElement=list.get(0);
- String uname=userElement.attributeValue("username");
- String password=userElement.attributeValue("password");
- //将用户信息封装到bean
- User user=new User();
- user.setUsername(uname);
- user.setPassword(password);
- user.setPassword_confirm(password);
- return user;
- }
- return null;
- }
- /**
- * 添加用户
- * @param user
- */
- public void addUser(User user){
- Document dom=XmlDaoUtil.getDom();
- Element root=dom.getRootElement();
- //创建<user>元素
- Element userElement=DocumentHelper.createElement("user");
- userElement.setAttributeValue("username", user.getUsername());
- userElement.setAttributeValue("password", user.getPassword());
- //挂载到<users>
- root.add(userElement);
- //回写到xml文件
- }
- }
com.tsh.util.XmlDaoUtil.java
- package com.tsh.util;
- import java.net.URL;
- import org.dom4j.Document;
- import org.dom4j.io.SAXReader;
- public class XmlDaoUtil {
- private static URL path=XmlDaoUtil.class.getClassLoader().getResource("user.xml");
- /**
- * 使用静态代码块,对象只实例化一次
- */
- private static Document dom;
- static{
- SAXReader reader=new SAXReader();
- try {
- //类加载器找到物理路径
- dom=reader.read(path);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- /**
- * 获取xml
- * @return
- */
- public static Document getDom(){
- return dom;
- }
- /**
- * 写入xml
- */
- public static void writeXml(){
- }
- }
com.tsh.domain.User.java
- package com.tsh.domain;
- import java.io.Serializable;
- public class User implements Serializable{
- private String username;
- private String password;
- private String password_confirm;
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public String getPassword_confirm() {
- return password_confirm;
- }
- public void setPassword_confirm(String password_confirm) {
- this.password_confirm = password_confirm;
- }
- }
user.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <users>
- <user username="admin" password="admin"></user>
- </users>
[javaEE] 三层架构案例-用户模块(一)的更多相关文章
- [javaEE] 三层架构案例-用户模块(二)
使用junit测试框架,测试查找用户和添加用户功能 com.tsh.test.xmlUserDaoTest package com.tsh.test; import org.junit.Test; i ...
- javaee三层架构案例--简单学生管理系统
背景 学了jdbc.jsp等需要串起来,不然会忘记 项目环境 win10 jdk11 mysql8.0.13 jar包 c3p0-0.9.5.2 commons-dbutils-1.7 jstl mc ...
- 一、JSP九大内置对象 二、JAVAEE三层架构和MVC设计模式 三、Ajax
一.JSP九大内置对象###<1>概念 不需要预先申明和定义,可以直接在jsp代码中直接使用 在JSP转换成Servlet之后,九大对象在Servlet中的service方法中对其进行定义 ...
- JavaEE三层架构与MVC
JavaEE三层架构与MVC 摘要与总结 等下总结下 MVC模式 Model1 说到设计模式,不得不提一下之前的的Model1.据说早期对于java企业项目的开发,用的是Jsp+JavaBean的 ...
- JavaEE三层架构
三层架构 三层架构是javaee规范中的推荐架构,传统意义上是分为表示层(UI).业务逻辑层(BLL).数据访问层(DAL).在javaee的开发中,三层架构具体分为表示层(web层) ...
- MVC开发模式与javaEE三层架构
1.MVC开发模式 1. M:Model,模型.JavaBean * 完成具体的业务操作,如:查询数据库,封装对象2. V:View,视图.JSP * 展示数据3. C:C ...
- JavaEE 三层架构的浅谈
三层架构 三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL).区分层次的目的即为了“高内聚,低 ...
- JavaEE 三层架构模式
什么是架构模式 要理解三层架构模式,我们得先搞清楚什么是架构模式.(这里说的架构模式是针对后端开发) 所谓架构就是系统最高级别的设计,一个系统特别复杂时才需要架构设计,如果只是开发一个很小程序,就谈不 ...
- [转]MVC & JavaEE三层架构
随机推荐
- checkbox attr 和 prop ,onclick 事件,
给checkbox 添加默认的勾选,尽量使用 checked=“checked”,不要使用checked=“true”. <td><input id="checkboxid ...
- “全栈2019”Java第七十九章:类中可以嵌套接口吗?
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- Codeforces Round #549 (Div. 2)B. Nirvana
B. Nirvana time limit per test 1 second memory limit per test 256 megabytes input standard input out ...
- codis__通用的使用模式
1,按功能模块分成不同的productName 参照 sample_user, sample_dynamic (见附件) sample_user.tar.gz,sample_dynamic.tar.g ...
- PHP中SimpleXMLElement对象字符编码
最近在使用SimpleXMLElement来生成和解析XML. 由于我们使用PHP开发的这边使用UTF-8编码,而对方使用GBK编码,因此就遇到了中文字符编码问题. 后来发现,XML内部的编码与其头 ...
- leetcode-665-Non-decreasing Array
题目描述: Given an array with n integers, your task is to check if it could become non-decreasing by mod ...
- SpringBoot入门(IDEA篇)(二)
一.SpringBoot启动的3种方式 第一种:借助IDE工具直接启动 run as 第二种:mvn命令启动 1:打开命令行,进入到项目目录中(我这里还是用上次建立的dog项目来操作)cd E:\Wo ...
- Windows下的ntfs流文件简介
流文件,即NTFS交换数据流(alternate data streams,简称ADS),是NTFS磁盘格式的一个特性,在NTFS文件系统下,每个文件都可以存在多个数据流,就是说除了主文件流之外还可以 ...
- 关于tp5全局过滤
在config里面. // 默认全局过滤方法 用逗号分隔多个'default_filter' => 'htmlspecialchars',
- jquery ajax的getJSON使用
getJSON的定义和用法 通过 HTTP GET 请求载入 JSON 数据. 在 jQuery 1.2 中,您可以通过使用 JSONP 形式的回调函数来加载其他网域的 JSON 数据,如 " ...