java用戶管理注冊功能 含前后臺代碼
本文實例為大家分享了java用戶注冊功能,供大家參考,具體內容如下
主頁面:
瀏覽器顯示:
代碼實現(xiàn):
<%@ 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后面添加參數(shù) --> </body> </html>
注冊功能:
瀏覽器顯示:
1)注冊成功:
2)注冊失敗:
代碼實現(xiàn):
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(); } }
查看所有用戶功能:
瀏覽器顯示:
代碼實現(xiàn): RegServlet類的doGet方法實現(xiàn)
刪除操作功能:刪除成功會重定向到主頁面
代碼實現(xiàn):
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); } }
配置文件:
<?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對象
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:
接口
實現(xiàn)類
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("http://user[fn:lower-case(@name)='"+user.getName().toLowerCase()+"']"); Node node=dom.selectSingleNode("http://user[name='"+user.getName()+"']");//user節(jié)點下值為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("http://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="http://user[@id='"+id+"']"; Node node=dom.selectSingleNode(xpath); if(node!=null){ // System.out.println("del..."); node.getParent().remove(node); DomFactory.save(); } } }
工具包utils:
獲取用戶id
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("-", ""); } }
對數(shù)據庫users.xml的dom獲取和保存方法
這里用dom4j的包,,,所以要把dom4j兩個包導入的相應的位置:
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(); } } }
數(shù)據庫:
<?xml version="1.0" encoding="UTF-8"?> <users> </users>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Java 的 FileFilter文件過濾與readline讀行操作實例代碼
這篇文章介紹了Java 的 FileFilter文件過濾與readline讀行操作實例代碼,有需要的朋友可以參考一下2013-09-09Spring Data JPA使用Sort進行排序(Using Sort)
本篇文章主要介紹了Spring Data JPA使用Sort進行排序(Using Sort),具有一定的參考價值,有興趣的可以了解一下2017-07-07實例解析Json反序列化之ObjectMapper(自定義實現(xiàn)反序列化方法)
這篇文章主要介紹了實例解析Json反序列化之ObjectMapper,json自定義序列化的方法,需要的朋友可以了解下。2017-09-09HttpServletRequestWrapper干預Request處理流程解析
這篇文章主要分析在?Tomcat的處理?http?請求的流程中干預?Request對象,?通過基于HttpServletRequestWrapper和?Filter組合進行干預,有需要的朋友可以借鑒參考下,希望能夠有所幫助2023-09-09SpringBoot整合RabbitMQ及生產全場景高級特性實戰(zhàn)
本文主要介紹了SpringBoot整合RabbitMQ及生產全場景高級特性實戰(zhàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10