主页
<a href="${pageContext.request.contextPath }/register.jsp">注册</a>
<a href="${pageContext.request.contextPath }/login.jsp">登陆</a>
注册页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'reg.jsp' starting page</title>
</head>
<body>
<form action="${pageContext.request.contextPath }/Zhuce" method="post">
<table border="1" align="center">
<tr>
<td>用户名</td>
<td><input name="username"></td>${name}
</tr>
<tr>
<td>密码</td>
<td><input type="password" name="password"></td>${pwd }
</tr>
<tr>
<td>确认密码</td>
<td><input type="password" name="repassword"></td>${repwd }
</tr>
<tr>
<td>生日</td>
<td><input name="birthday"></td>
</tr>
<tr>
<td>简介</td>
<td><input name="jj"></td>
</tr>
<tr>
<td><input type="submit" value="注册"></td>
<td><input type="reset" value="取消"></td>
<%--<td><a href="${pageContext.request.contextPath }/index.jsp">退出</a></td>
--%>
</tr>
</table>
</form>
</body>
</html>
注册servlet
这里写代码片
```package cn.servlet;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.Date;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.dom4j.DocumentException;
import sun.security.util.Password;
import cn.itheimadomain.User1;
import cn.service.User1service;
public class Zhuce extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 得到提交的数据进行封装到userBean 中
// post 设置请求编码
request.setCharacterEncoding("utf-8");
// 前端校验
String name = request.getParameter("username");
String pwd = request.getParameter("password");
String repwd = request.getParameter("repassword");
if (!name.matches("\\w{3,6}")) {
request.setAttribute("name", "用户名不符合要求");
request.getRequestDispatcher("/reg.jsp").forward(request, response);
return;
}
if (!pwd.matches("\\w{3,6}")) {
request.setAttribute("pwd", "密码不符合要求");
request.getRequestDispatcher("/reg.jsp").forward(request, response);
return;
}
if (!pwd.equals(repwd)) {
request.setAttribute("repwd", "2个密码不一样");
request.getRequestDispatcher("/reg.jsp").forward(request, response);
return;
}
User1 u = new User1();
try {
// 注册一个日期转换器 自定义 类实现Converter 接口
ConvertUtils.register(new myconver(), Date.class);
BeanUtils.populate(u, request.getParameterMap());
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
// 校验封装成功没有
Map<String, String> map = u.getmap();
if(map.size()>0) {//说明有错误信息
request.setAttribute("cuo", map);
request.getRequestDispatcher("/reg.jsp").forward(request, response);
return;
}
// 执行添加操作
User1service us = new User1service();
try {
us.add(u);
// 注册成功
// 跳转到登陆页面
response.sendRedirect(request.getContextPath() + "/denglu.jsp");
} catch (DocumentException e) {
e.printStackTrace();
// 走这里添加失败 请求转发回去注册页面提示错误
request.setAttribute("zc", "注册失败");
request.getRequestDispatcher("/reg.jsp").forward(request, response);
}
}
}
中转站service
<div class="se-preview-section-delimiter"></div>
这里写代码片
“`
package cn.service;
import org.dom4j.DocumentException;
import cn.dao.User1dao;
import cn.itheimadomain.User1;
public class User1service {
public void add(User1 u) throws DocumentException {
User1dao ud = new User1dao();
ud.add(u);
}
public User1 find(String name, String pwd) {
User1dao ud = new User1dao();
User1 u=ud.find(name,pwd);
return u;
}
}
操作数据层dao
package cn.dao;
import java.util.Date;
import java.util.List;
import org.apache.commons.beanutils.converters.DateConverter;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import cn.itheimadomain.User1;
import cn.util.Datecon;
import cn.util.Dom4jutil;
public class Userdao {
public void add(User1 u) {
//写入xml
Document document = Dom4jutil.getdoc("c:/tt/Xml.xml");
StringBuilder sb = new StringBuilder();
sb.append("<usr>").append("<username>").append(u.getUsername()).append("</username>");
sb.append("<password>").append(u.getPassword()).append("</password>");
sb.append("<brithday>").append(Datecon.DateToS(u.getBirthday())).append("</brithday>");
sb.append("<jj>").append(u.getJj()).append("</jj>");
sb.append("</usr>");
try {
Document text = DocumentHelper.parseText(sb.toString());
Element root = document.getRootElement();
root.add(text.getRootElement());
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Dom4jutil.writedoc(document, "c:/tt/Xml.xml");
}
public User1 find(String username, String password) {
Document document = Dom4jutil.getdoc("c:/tt/Xml.xml");
Element root = document.getRootElement();
List<Element> list = root.elements();
User1 u =null;
for (Element e : list) {
String name =e.elementText("username");
String pwd =e.elementText("password");
if(name.equals(username)&&pwd.equals(password)) {
u = new User1();
u.setUsername(name);
u.setJj(e.elementText("jj"));
String s1=e.elementText("brithday");
Date date = Datecon.Stringtod(s1);
u.setBirthday(date);
}
}
return u;
}
}