本文实例为大家分享了java用户注册功能,供大家参考,具体内容如下
主页面:
浏览器显示:
代码实现:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> < html > < head > < title >用户信息管理</ title > </ head > < body > 用户注册:< br /> <!-- 相对路径 --> < form action = "reg" method = "post" > 姓名:< input type = "text" name = "name" />< br /> 密码:< input type = "password" name = "pwd" />< br /> < input type = "submit" value = "注册" /> </ form > <!-- 绝对路径 --> < a href = "/usersWeb/reg" >查看所有用户</ a > <!-- GET方式:超链接和在url后面添加参数 --> </ body > </ html > |
注册功能:
浏览器显示:
1)注册成功:
2)注册失败:
代码实现:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
package cn.hncu.user.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import cn.hncu.user.dao.UserDao; import cn.hncu.user.dao.UserDaoImpl; import cn.hncu.user.domain.User; public class RegServlet extends HttpServlet { //注入 UserDao dao= new UserDaoImpl(); public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List<User> users=dao.queryAllUsers(); response.setContentType( "text/html;charset=utf-8" ); PrintWriter out = response.getWriter(); out.println( "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">" ); out.println( "<HTML>" ); out.println( " <HEAD><TITLE>注册结果页面</TITLE></HEAD>" ); out.println( " <BODY>" ); out.println( "<table cellspacing=0 border=1px><tr><th>操作</th><th>姓名</th></tr>" ); for (User u:users){ out.println( "<tr><td><a href='/usersWeb/del?id=" +u.getId()+ "'>删除</a></th>" ); out.println( "<th>" +u.getName()+ "</th></tr>" ); } out.println( "</table>" ); out.println( " </BODY>" ); out.println( "</HTML>" ); out.flush(); out.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding( "utf-8" ); String name=request.getParameter( "name" ); String pwd=request.getParameter( "pwd" ); User user= new User(); user.setName(name); user.setPwd(pwd); boolean boo=dao.reg(user); response.setContentType( "text/html;charset=utf-8" ); PrintWriter out = response.getWriter(); out.println( "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">" ); out.println( "<HTML>" ); out.println( " <HEAD><TITLE>注册结果页面</TITLE></HEAD>" ); out.println( " <BODY>" ); if (boo){ out.println( "恭喜您(" +name+ ")注册成功了..." ); } else { out.println( "您(" +name+ ")注册失败了...<br/>用户名已存在,请换一个注册" ); } out.println( "<a href='javascript:history.go(-1)'>返回</a>" ); out.println( " </BODY>" ); out.println( "</HTML>" ); out.flush(); out.close(); } } |
查看所有用户功能:
浏览器显示:
代码实现: RegServlet类的doGet方法实现
删除操作功能:删除成功会重定向到主页面
代码实现:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
package cn.hncu.user.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import cn.hncu.user.dao.UserDao; import cn.hncu.user.dao.UserDaoImpl; public class DelServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String id=request.getParameter( "id" ); // System.out.println("del-id:"+id); UserDao dao= new UserDaoImpl(); dao.delUser(id); //转到主页--重定向 response.sendRedirect( "/usersWeb/index.jsp" ); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } } |
配置文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
<? xml version = "1.0" encoding = "UTF-8" ?> < web-app version = "3.0" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> < display-name ></ display-name > < servlet > < servlet-name >RegServlet</ servlet-name > < servlet-class >cn.hncu.user.servlet.RegServlet</ servlet-class > </ servlet > < servlet > < servlet-name >DelServlet</ servlet-name > < servlet-class >cn.hncu.user.servlet.DelServlet</ servlet-class > </ servlet > < servlet-mapping > < servlet-name >RegServlet</ servlet-name > < url-pattern >/reg</ url-pattern > </ servlet-mapping > < servlet-mapping > < servlet-name >DelServlet</ servlet-name > < url-pattern >/del</ url-pattern > </ servlet-mapping > < welcome-file-list > < welcome-file >index.jsp</ welcome-file > </ welcome-file-list > </ web-app > |
domain包的User对象
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
package cn.hncu.user.domain; public class User { private String id; private String name; private String pwd; public String getName() { return name; } public void setName(String name) { this .name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this .pwd = pwd; } public String getId() { return id; } public void setId(String id) { this .id = id; } @Override public int hashCode() { final int prime = 31 ; int result = 1 ; result = prime * result + ((id == null ) ? 0 : id.hashCode()); return result; } @Override public boolean equals(Object obj) { if ( this == obj) return true ; if (obj == null ) return false ; if (getClass() != obj.getClass()) return false ; User other = (User) obj; if (id == null ) { if (other.id != null ) return false ; } else if (!id.equals(other.id)) return false ; return true ; } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", pwd=" + pwd + "]" ; } } |
逻辑层dao:
接口
1
|
|
实现类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
package cn.hncu.user.dao; import java.util.ArrayList; import java.util.List; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.Node; import cn.hncu.user.domain.User; import cn.hncu.user.utils.DomFactory; import cn.hncu.user.utils.IDGenerate; public class UserDaoImpl implements UserDao{ Document dom=DomFactory.getDom(); @Override public boolean reg(User user) { // //title[@lang='eng']选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。 // dom.selectSingleNode("//user[fn:lower-case(@name)='"+user.getName().toLowerCase()+"']"); Node node=dom.selectSingleNode( "//user[name='" +user.getName()+ "']" );//user节点下值为user.getName()的name元素 //"name[='"+user.getName().toLowerCase()+"']" if (node!= null ){ return false ; } Element root=dom.getRootElement(); Element eUser=root.addElement( "user" ); String id=IDGenerate.getID(); eUser.addAttribute( "id" , id); eUser.addElement( "name" ).setText(user.getName()); eUser.addElement( "pwd" ).setText(user.getPwd()); DomFactory.save(); return true ; } @Override public List<User> queryAllUsers() { List<User> users= new ArrayList<User>(); List<Element> en=dom.selectNodes( "//user" ); for (Element e:en){ String id=e.attributeValue( "id" ); String name=e.elementText( "name" ); User user= new User(); user.setId(id); user.setName(name); users.add(user); } return users; } @Override public void delUser(String id) { // System.out.println(id); String xpath= "//user[@id='" +id+ "']" ; Node node=dom.selectSingleNode(xpath); if (node!= null ){ // System.out.println("del..."); node.getParent().remove(node); DomFactory.save(); } } } |
工具包utils:
获取用户id
1
2
3
4
5
6
7
8
9
10
11
12
13
|
package cn.hncu.user.utils; import java.util.UUID; public class IDGenerate { private IDGenerate(){ } public static String getID(){ // return UUID.randomUUID().toString(); return UUID.randomUUID().toString().replace( "-" , "" ); } } |
对数据库users.xml的dom获取和保存方法
这里用dom4j的包,,,所以要把dom4j两个包导入的相应的位置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
package cn.hncu.user.utils; import java.io.FileOutputStream; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; public class DomFactory { private static Document dom; private static String fileName; static { try { SAXReader r= new SAXReader(); fileName=DomFactory. class .getClassLoader().getResource( "users.xml" ).getPath(); System.out.println( "users.xml的路径:" +fileName); ///D:/apache-tomcat-7.0.30/webapps/usersWeb/WEB-INF/classes/users.xml //注意:获取tomcat中当前项目classpath下的资源方式 dom=r.read(fileName); } catch (DocumentException e) { e.printStackTrace(); } } public static Document getDom(){ return dom; } public static void save(){ XMLWriter w; try { w = new XMLWriter( new FileOutputStream(fileName)); w.write(dom); w.close(); } catch (Exception e) { e.printStackTrace(); } } } |
数据库:
1
2
3
4
|
<? xml version = "1.0" encoding = "UTF-8" ?> < users > </ users > |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。