1 项目框架分析
1、功能
(1)注册
(2)登录
2、JSP
(1)login.jsp:登录表单
(2)regist.jsp:注册表单
(3)index.jsp:主页(只有登录成功才能看到)
3、Servlet
(1)LoginServlet
(2)RegistServlet
4、Service
(1)UserService:与用户相关的业务类
5、Dao
(1)UserDao:与用户相关的数据类
6、Domain
(1)User(对应数据库,还要对应所有表单)
|——username
|——password
|——verifyCode
7、数据库名:users.xml
<users>
<user username="xxx" password="xxx" />
<user username="xxx" password="xxx" />
</users>
2 项目框架搭建
1、创建空项目
2、导包
(1)CommonUtils
|——commons-beanutils.jar
|——commons-logging.jar
|——dom4j
3、建包
(1)org.lks.user.domian
|——User
(2)org.lks.user.dao
|——UserDao
(3)org.lks.user.service
|——UserService
(4)org.lks.user.web.servlet
|——LoginServlet
|——RegistServlet
4、jsp
(1)login.jsp
(2)regist.jsp
(3)index.jsp
5、在项目路径中创建src/userdata/users.xml文件存储用户数据
(1)添加根元素<users>
(2)保证文件为utf-8编码
3 注册功能流程分析
1、注册
(1)regist.jsp
|——第一步:完成regist.jsp的基本功能
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Register</title>
</head>
<body>
<h1>Register</h1>
${
requestScope.userExceptionMessage}
<form action="${pageContext.request.contextPath }/RegisterServlet" method="post">
Username: <input type="text" name="registerUsername" value="${requestScope.registerUsername }" /><br/>
Password: <input type="password" name="registerPassword" value="${requestScope.registerPassword }"/><br/>
<input type="submit" value="sign up" />
</form>
</body>
</html>
(2)RegistServlet
|——封装表单数据,封装到User对象中
|——调用service的regist()方法
|————如果这个方法没有出问题,给页面显示成功信息。
|————如果这个方法抛出了异常,把错误信息保存到request域,转发到regist.jsp(显示错误信息)。
package org.lks.loginandregister.web.servlet;
import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Iterator;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.lks.loginandregister.service.UserException;
import org.lks.loginandregister.service.UserService;
@WebServlet(name="/RegisterServlet", urlPatterns= {
"/RegisterServlet"})
public class RegisterServlet extends HttpServlet{
/**
* default serial version ID
*/
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
UserService userService = new UserService();
Map<String,String[]> map = request.getParameterMap();
Iterator<String> iter = map.keySet().iterator()