package com.du.utils;
import java.io.FileOutputStream;
import java.io.IOException;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class XmlTool {
private static String filepath;
static{
filepath=XmlTool.class.getClassLoader().getResource("users.xml").getPath();
//filepath = XmlUtils.class.getClassLoader().getResource("users.xml").getPath();
}
//读取文档
public static Document getDcument() throws DocumentException {
SAXReader reader = new SAXReader();
Document document = reader.read(filepath);
return document;
}
//写入分档
public static void write2Xml(Document document) throws IOException{
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
XMLWriter writer = new XMLWriter(new FileOutputStream(filepath), format );
writer.write( document );
writer.close();
}
}
注意:
1.要写入和读取xml 要用到dom4j开发包。
Dao层:
import java.text.SimpleDateFormat;
import java.util.Date;
import org.dom4j.Document;
import org.dom4j.Element;
import com.du.dao.UserDao;
import com.du.domain.Users;
import com.du.utils.XmlTool;
public class UserDaoImpl implements UserDao {
// 存入user 到xml
/*
* (non-Javadoc)
*
* @see com.du.dao.impl.UserDao#add(com.du.domain.Users)
*/
public void add(Users user) {
try {
Document document = XmlTool.getDcument();
Element root = document.getRootElement();
Element e = root.addElement("user");
e.setAttributeValue("id", user.getId());
e.setAttributeValue("username", user.getUsername());
e.setAttributeValue("password", user.getPassword());
e.setAttributeValue("email", user.getEmail());
e.setAttributeValue("birthday", user.getBirthday() == null ? null
: user.getBirthday().toLocaleString());
e.setAttributeValue("nickname", user.getNickname());
XmlTool.write2Xml(document);
} catch (Exception e) {
// TODO Auto-generated catch block
throw new RuntimeException(e);
}
}
// 根据用户名和秘密查找出这个用户的所有信息
/*
* (non-Javadoc)
*
* @see com.du.dao.impl.UserDao#find(java.lang.String, java.lang.String)
*/
public Users find(String username, String password) {
try {
Document document = XmlTool.getDcument();
Element e = (Element) document
.selectSingleNode("//user[@username='" + username
+ "' and @password='" + password + "']");
if (e == null) {
return null;
}
Users user = new Users();
String date = e.attributeValue("birthday");
if (date == null || date.equals("")) {
user.setBirthday(null);
} else {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = sdf.parse(date);
user.setBirthday(d);
}
user.setId(e.attributeValue("id"));
user.setNickname(e.attributeValue("nickname"));
user.setEmail(e.attributeValue("email"));
user.setUsername(username);
user.setPassword(password);
return user;
} catch (Exception e) {
new RuntimeException(e);
}
return null;
}
// 查询xml中是否有同 用户名的人
// 用于判断是否可以添加到数据库(xml)
/*
* (non-Javadoc)
*
* @see com.du.dao.impl.UserDao#find(java.lang.String)
*/
public boolean find(String username) {
try{
Document document =XmlTool.getDcument();
Element e = (Element) document.selectSingleNode("//user[@username='"+username+"']");
if(e==null){
return false;
}
return true;
}catch (Exception e) {
throw new RuntimeException(e);
}
}
}
注意:
1.不会写的时候看dom4j的开发文档中的快速入门
分享到:
相关推荐
DAO(Data Access Object)模式是一种常见的软件设计模式,它用于封装对数据库的访问操作,将数据访问层与业务逻辑层分离,从而提高系统的可维护性和可扩展性。在这个"用DAO实现的用户登录系统"中,我们可以看到以下...
- 在WebRoot目录下创建了多个JSP文件,如`Emp_insert.jsp`、`Emp_insert_do.jsp`和`Emp_list.jsp`,分别用于用户注册信息输入、数据增加和查询显示。 3. **实验问题**: 在实验过程中,周媛娣遇到了一个问题:在...
在用户注册功能中,Spring可以管理数据库连接、事务控制以及Service和DAO层的对象。AOP则用于实现通用功能,如日志记录、权限检查等,无需在每个方法中重复编写。 Hibernate作为ORM(对象关系映射)框架,使得Java...
在社团网站的背景下,Servlet可能用于处理用户的登录、注册、发布活动等业务逻辑。例如,一个“LoginServlet”会检查用户的用户名和密码,而“ActivityPostServlet”可能负责接收并处理用户提交的活动创建请求。 ...
在用户注册场景中,Spring可能被用来管理数据库连接、事务控制、以及Service层和DAO层的bean实例化。 【知识点三】:Hibernate框架 Hibernate是一个持久化框架,简化了Java对象与数据库表之间的映射关系。在用户...
- **Service层和DAO层支持**:Service层处理用户名可用性检查,并通过DAO层查询数据库来确认用户名是否已经被其他用户注册。 #### 二、技术要点总结 ##### 技术栈 - **前端**: - HTML/CSS/JavaScript/jQuery:...
总结来说,"JSP登录(Struts+DAO+Mysql)"项目是一个综合运用多种技术的实战案例,涵盖了Web开发的核心知识,包括前端交互、后端逻辑处理、数据库操作以及安全措施,对于学习和理解Web开发流程具有很高的价值。...
在实际项目中,这可能是`register.jsp`(用于用户注册的JSP页面)或`RegServlet`(处理注册请求的Servlet)。 总结来说,使用JSP实现的用户登录模块包括前端表单设计、后端数据验证以及用户会话管理等多个环节。这...
总结,`JSPMVC结构注册登陆模块`提供了一个基础的框架,帮助开发者理解MVC模式在Web应用中的运用,以及如何利用MySQL、DAO和服务层处理用户注册和登录。通过学习和实践这个模块,初学者可以掌握核心的Web开发技能,...
【知识点详解】 ...通过这些知识,开发者能够构建一个具备用户注册和登录功能的简单书城系统。在后续的开发中,可能还会涉及到Service层和DAO层的具体实现,以及页面展示和用户交互等功能的完善。
1. **添加留言**: 用户提交留言信息,包括用户名、内容和时间戳等,通过DAO层插入数据库。 2. **显示留言**: 查询数据库并展示所有留言,可能按照时间顺序排列。 3. **删除留言**: 根据留言ID删除指定的留言记录。 4...
2. DAO层:具体实现Hibernate的数据访问,包括Session的管理、事务的处理等。 3. Action层:Struts2的Action类负责接收请求,调用Service层的方法,处理业务逻辑,并返回结果。 4. 视图层:使用JSP展示数据,...
`Test(三层)`可能包含多个服务类,这些类封装了具体业务操作,如用户注册、订单处理等逻辑。 3. 数据访问层(Data Access Layer) 数据访问层是负责与数据库进行交互的,包括数据的读取、插入、更新和删除等操作。...
Action层处理登录请求,Service层验证用户身份,DAO层执行数据库查询。成功后,创建会话并存储用户信息,以便后续请求识别用户状态。 4.3 注销 注销操作主要涉及会话销毁,确保用户退出后无法继续访问受限资源。...
实现微信小程序用户登录功能的持久层和业务层设计 在微信小程序中实现用户...* 实现用户注册功能 * 实现用户信息修改功能 * 实现用户登出功能 * 实现用户权限管理功能 这些功能可以通过扩展业务层和持久层来实现。
- DAO层作为业务处理层与数据库之间的桥梁,确保了数据处理的高效性和安全性。 #### 三、核心功能模块 **1. 即时通讯模块** - 提供实时的文字、语音、图片等多媒体信息传输功能。 - 支持单聊和群聊,便于用户进行...
4. 在Action类中,注入Service层,Service层再注入DAO层,通过Spring管理的对象间依赖关系,实现控制反转和依赖注入。 5. 配置Hibernate的实体类,用@Entity注解标记,同时创建映射文件或使用注解进行表字段的映射。...
### Java EE 企业应用开发:第8章 Ajax用户注册 #### 一、章节概述 本章节主要内容是关于如何使用Ajax技术来改进传统的用户注册流程,从而提升用户体验。传统的用户注册方式是在用户提交表单后,服务器端进行...
在软件开发过程中,特别是在使用Java进行Web应用开发时,数据访问对象(DAO:Data Access Object)模式是一种常用的设计模式,用于实现业务逻辑层与数据访问层之间的解耦。DAO模式提供了一种高效、灵活的方式来处理...
- **控制层** (Controller): 处理业务流程,接受用户请求并调用业务层处理。 - **业务层** (Manager): 实现业务逻辑。 - **持久层** (DAO): 数据访问,执行数据库操作。 2. **流程解析**: - 用户通过前端界面...