用户注册登录注销

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

  1. package com.tsh.dao;
  2.  
  3. import java.util.List;
  4.  
  5. import org.dom4j.Document;
  6. import org.dom4j.DocumentHelper;
  7. import org.dom4j.Element;
  8.  
  9. import com.tsh.domain.User;
  10. import com.tsh.util.XmlDaoUtil;
  11.  
  12. public class XmlUserDao {
  13. /**
  14. * 根据用户名查找user
  15. * @param username
  16. * @return
  17. */
  18. public User findUserByUsername(String username){
  19. Document dom=XmlDaoUtil.getDom();
  20. Element root=dom.getRootElement();
  21. //使用XPATH语法
  22. List<Element> list=root.selectNodes("//user[@username='"+username+"']");
  23. if(list.size()>0){
  24. Element userElement=list.get(0);
  25. String uname=userElement.attributeValue("username");
  26. String password=userElement.attributeValue("password");
  27. //将用户信息封装到bean
  28. User user=new User();
  29. user.setUsername(uname);
  30. user.setPassword(password);
  31. user.setPassword_confirm(password);
  32. return user;
  33. }
  34. return null;
  35. }
  36. /**
  37. * 添加用户
  38. * @param user
  39. */
  40. public void addUser(User user){
  41. Document dom=XmlDaoUtil.getDom();
  42. Element root=dom.getRootElement();
  43. //创建<user>元素
  44. Element userElement=DocumentHelper.createElement("user");
  45. userElement.setAttributeValue("username", user.getUsername());
  46. userElement.setAttributeValue("password", user.getPassword());
  47. //挂载到<users>
  48. root.add(userElement);
  49. //回写到xml文件
  50.  
  51. }
  52. }

com.tsh.util.XmlDaoUtil.java

  1. package com.tsh.util;
  2.  
  3. import java.net.URL;
  4.  
  5. import org.dom4j.Document;
  6. import org.dom4j.io.SAXReader;
  7.  
  8. public class XmlDaoUtil {
  9. private static URL path=XmlDaoUtil.class.getClassLoader().getResource("user.xml");
  10. /**
  11. * 使用静态代码块,对象只实例化一次
  12. */
  13. private static Document dom;
  14. static{
  15. SAXReader reader=new SAXReader();
  16. try {
  17. //类加载器找到物理路径
  18. dom=reader.read(path);
  19. } catch (Exception e) {
  20. e.printStackTrace();
  21. }
  22. }
  23. /**
  24. * 获取xml
  25. * @return
  26. */
  27. public static Document getDom(){
  28. return dom;
  29. }
  30. /**
  31. * 写入xml
  32. */
  33. public static void writeXml(){
  34.  
  35. }
  36. }

com.tsh.domain.User.java

  1. package com.tsh.domain;
  2.  
  3. import java.io.Serializable;
  4.  
  5. public class User implements Serializable{
  6. private String username;
  7. private String password;
  8. private String password_confirm;
  9. public String getUsername() {
  10. return username;
  11. }
  12. public void setUsername(String username) {
  13. this.username = username;
  14. }
  15. public String getPassword() {
  16. return password;
  17. }
  18. public void setPassword(String password) {
  19. this.password = password;
  20. }
  21. public String getPassword_confirm() {
  22. return password_confirm;
  23. }
  24. public void setPassword_confirm(String password_confirm) {
  25. this.password_confirm = password_confirm;
  26. }
  27.  
  28. }

user.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <users>
  3. <user username="admin" password="admin"></user>
  4. </users>

[javaEE] 三层架构案例-用户模块(一)的更多相关文章

  1. [javaEE] 三层架构案例-用户模块(二)

    使用junit测试框架,测试查找用户和添加用户功能 com.tsh.test.xmlUserDaoTest package com.tsh.test; import org.junit.Test; i ...

  2. javaee三层架构案例--简单学生管理系统

    背景 学了jdbc.jsp等需要串起来,不然会忘记 项目环境 win10 jdk11 mysql8.0.13 jar包 c3p0-0.9.5.2 commons-dbutils-1.7 jstl mc ...

  3. 一、JSP九大内置对象 二、JAVAEE三层架构和MVC设计模式 三、Ajax

    一.JSP九大内置对象###<1>概念 不需要预先申明和定义,可以直接在jsp代码中直接使用 在JSP转换成Servlet之后,九大对象在Servlet中的service方法中对其进行定义 ...

  4. JavaEE三层架构与MVC

    JavaEE三层架构与MVC 摘要与总结 等下总结下 MVC模式 Model1 ​ 说到设计模式,不得不提一下之前的的Model1.据说早期对于java企业项目的开发,用的是Jsp+JavaBean的 ...

  5. JavaEE三层架构

    三层架构         三层架构是javaee规范中的推荐架构,传统意义上是分为表示层(UI).业务逻辑层(BLL).数据访问层(DAL).在javaee的开发中,三层架构具体分为表示层(web层) ...

  6. MVC开发模式与javaEE三层架构

    1.MVC开发模式 1. M:Model,模型.JavaBean        * 完成具体的业务操作,如:查询数据库,封装对象2. V:View,视图.JSP        * 展示数据3. C:C ...

  7. JavaEE 三层架构的浅谈

    三层架构 三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL).区分层次的目的即为了“高内聚,低 ...

  8. JavaEE 三层架构模式

    什么是架构模式 要理解三层架构模式,我们得先搞清楚什么是架构模式.(这里说的架构模式是针对后端开发) 所谓架构就是系统最高级别的设计,一个系统特别复杂时才需要架构设计,如果只是开发一个很小程序,就谈不 ...

  9. [转]MVC & JavaEE三层架构

随机推荐

  1. checkbox attr 和 prop ,onclick 事件,

    给checkbox 添加默认的勾选,尽量使用 checked=“checked”,不要使用checked=“true”. <td><input id="checkboxid ...

  2. “全栈2019”Java第七十九章:类中可以嵌套接口吗?

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  3. 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 ...

  4. codis__通用的使用模式

    1,按功能模块分成不同的productName 参照 sample_user, sample_dynamic (见附件) sample_user.tar.gz,sample_dynamic.tar.g ...

  5. PHP中SimpleXMLElement对象字符编码

    最近在使用SimpleXMLElement来生成和解析XML. 由于我们使用PHP开发的这边使用UTF-8编码,而对方使用GBK编码,因此就遇到了中文字符编码问题. 后来发现,XML内部的编码与其头 ...

  6. leetcode-665-Non-decreasing Array

    题目描述: Given an array with n integers, your task is to check if it could become non-decreasing by mod ...

  7. SpringBoot入门(IDEA篇)(二)

    一.SpringBoot启动的3种方式 第一种:借助IDE工具直接启动 run as 第二种:mvn命令启动 1:打开命令行,进入到项目目录中(我这里还是用上次建立的dog项目来操作)cd E:\Wo ...

  8. Windows下的ntfs流文件简介

    流文件,即NTFS交换数据流(alternate data streams,简称ADS),是NTFS磁盘格式的一个特性,在NTFS文件系统下,每个文件都可以存在多个数据流,就是说除了主文件流之外还可以 ...

  9. 关于tp5全局过滤

    在config里面. // 默认全局过滤方法 用逗号分隔多个'default_filter' => 'htmlspecialchars',

  10. jquery ajax的getJSON使用

    getJSON的定义和用法 通过 HTTP GET 请求载入 JSON 数据. 在 jQuery 1.2 中,您可以通过使用 JSONP 形式的回调函数来加载其他网域的 JSON 数据,如 " ...