1、创建工程 2、创建package com.demo1.java包 3、user类 package com.demo1.java; import java.util.HashMap; import java.util.Map; public class User { private Map<String,String> userMap = new HashMap<String, String>(); private static User user = null; private User(){ userMap.put("韩春", "123456##abcdefg@163.com"); } public static User getInstance(){ if(user == null){ user = new User(); } return user; } public Map<String, String>getUserMap(){ return userMap; } } 4、创建package com.demo1.servlet;包,以下均创建servlet: package com.demo1.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; public class ErrorServlet extends HttpServlet { private static final long serialVersionUID = 1l; public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); resp.setCharacterEncoding("utf-8"); PrintWriter out = resp.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.print("<h2>新会员增加失败</h2> "); @SuppressWarnings("unchecked") List<String> list = (List<String>)req.getAttribute("errors"); if(list != null){ for(String str:list){ out.println(str + "</br>"); } } out.println("<a href=\"" + req.getContextPath() + "/index.jsp\">返回注册页面</a> " ); //注意这边的解析!!! out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } } package com.demo1.servlet; import java.io.IOException; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.demo1.java.User; public class LoginServlet extends HttpServlet { public static final long serialVervletUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String userName = request.getParameter("userName"); String password = request.getParameter("password"); if(checkLogin(userName, password)){ request.getRequestDispatcher("/member.html").forward(request, response); }else{ response.sendRedirect("/Demo1/jsp/front/Login.jsp"); } } public boolean checkLogin(String userName, String password)throws NullPointerException{ User user = User.getInstance(); Map<String, String> map = user.getUserMap(); if(userName != null && !"".equals(userName) && password != null && !"".equals(password)){ String[] arr = map.get(userName).split("##"); if(arr[0].equals(password)){ return true; } } return false; } } package com.demo1.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class MemberServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); response.setCharacterEncoding("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>Welcome</TITLE></HEAD>"); out.println(" <BODY>"); out.print("<h2 align=\"center\">" + request.getParameter("userName")+ " 您好,欢迎您哦" + "</h2>"); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } } package com.demo1.servlet; import com.demo1.java.User; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @SuppressWarnings("serial") public class RegisterServlet extends HttpServlet { public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String userName = req.getParameter("userName"); String password = req.getParameter("password"); String conPassword = req.getParameter("conPassword"); String email = req.getParameter("email"); List<String> errors = new ArrayList<String>(); //装载错误信息 if(!isValidUsername(userName)){ errors.add("用户名为空或者已经存在"); } if(!isValidEmail(email)){ errors.add("无效的邮箱号码"); } if(isValidPassword(password, conPassword)){ errors.add("密码为空或者两次输入不一样"); } if(errors.isEmpty()){ User user = User.getInstance(); Map<String, String> map = user.getUserMap(); map.put(userName, password+"##"+email); req.getRequestDispatcher("/success.html").forward(req, resp); }else{ req.setAttribute("errors", errors); req.getRequestDispatcher("/error.html").forward(req, resp); } } public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } public boolean isValidUsername(String username){ User user = User.getInstance(); Map<String, String> map = user.getUserMap(); if(username != null){ //暂时先这样改 这里是有问题的,不能很好地判断 return true; }else{ return false; } } public boolean isValidPassword(String password, String conPassword){ return password == null || conPassword == null || password.length() < 6 || !password.equals(conPassword); } public boolean isValidEmail(String email){ boolean flag = false; if(email == null || "".equals(email)){ flag = false; }else{ flag = email.matches("^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"); } return flag; } } package com.demo1.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.Iterator; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @SuppressWarnings("serial") public class SuccessServlet extends HttpServlet { @SuppressWarnings("unused") private static final long serivalVersionUID = 1L; public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); resp.setCharacterEncoding("utf-8"); PrintWriter out = resp.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.print("<h2>新会员增加成功</h2> "); out.println("<a href=\"" + req.getContextPath() + "/Login.jsp\">返回登陆页面</a> " ); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); out.flush(); out.close(); } public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } } 5、创建jsp文件 (1)index.jsp <%@page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <html> <head> <title>注册页面</title> <meta name="keywords" content="注册网页,西安电子科技大学,韩春"> <meta name="description" content="a simple demo to Web APP"> <meta name="content-type" content="text/html; charset=UTF-8"> </head> <body> <h2 align=center>注册页面</h2> <center> <form action="<%=path %>/register.html" method="post"> <table border="1"> <tr> <td>登录名:</td> <td><input name="userName"></td> </tr> <tr> <td>密码:</td> <td><input name="password" type="password"></td> </tr> <tr> <td>重复密码:</td> <td><input name="conPassword" type="password"></td> </tr> <tr> <td>邮箱地址:</td> <td><input name="email"></td> </tr> <tr align="center"> <td colspan="2"><input type="submit" value="提交注册"></td> </tr> </table> </form> 您有账号?<a href="<%=path %>/jsp/front/Login.jsp"><front color="GREEN" >点击直接登录</front></a> </center> </body> </html> (2)Login.jsp <%@page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <html> <head> <title>登陆页面</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta name="keywords" content="注册网页,西安电子科技大学,韩春"> <meta name="description" content="a simple demo to Web APP"> <meta name="content-type" content="text/html; charset=UTF-8"> </head> <body> <h2 align=center>欢迎您</h2> <center> <form action="<%=path %>/login.html" method="post"> <table border="1"> <tr> <td>用户名:</td> <td><input name="userName"></td> </tr> <tr> <td>密码:</td> <td><input name="password" type="password"></td> </tr> <tr align="center"> <td colspan="2"><input type="submit" value="点击登陆"></td> </tr> </table> </form> 还没注册?<a href="<%=path%>/index.jsp">点击注册吧</a> </center> </body> </html> 6、在success中创建servlet得到web.xml项目,粘贴以下内容替换 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www./2001/XMLSchema-instance" xmlns="http://xmlns./xml/ns/javaee" xsi:schemaLocation="http://xmlns./xml/ns/javaee http://xmlns./xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>Demo1</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>RegisterServlet</servlet-name> <servlet-class>com.demo1.servlet.RegisterServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>RegisterServlet</servlet-name> <url-pattern>/register.html</url-pattern> </servlet-mapping> <servlet> <servlet-name>ErrorServlet</servlet-name> <servlet-class>com.demo1.servlet.ErrorServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ErrorServlet</servlet-name> <url-pattern>/error.html</url-pattern> </servlet-mapping> <servlet> <servlet-name>SuccessServlet</servlet-name> <servlet-class>com.demo1.servlet.SuccessServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>SuccessServlet</servlet-name> <url-pattern>/success.html</url-pattern> </servlet-mapping> <servlet> <servlet-name>TestServlet</servlet-name> <servlet-class>com.demo1.servlet.TestServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>/test.html</url-pattern> </servlet-mapping> <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>com.demo1.servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/login.html</url-pattern> </servlet-mapping> <servlet> <servlet-name>MemberServlet</servlet-name> <servlet-class>com.demo1.servlet.MemberServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MemberServlet</servlet-name> <url-pattern>/member.html</url-pattern> </servlet-mapping> </web-app> |
|
来自: weixiaofeng01 > 《技术方法》