Servlet作业1-实现注册登录
1,注册功能
注册页面zhuce.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 5 <title>注册页面</title> 6 7 <script type="text/javascript"> 8 //js方法,验证用户名,昵称,密码是否为空,两次密码输入是否一致 9 function yanzh() 10 { 11 if(form1.user.value == "") 12 { 13 alert("用户名不能为空"); 14 return false 15 } 16 else if(form1.passw.value == "") 17 { 18 alert("密码不能为空"); 19 return false 20 } 21 else if(form1.nich.value == "") 22 { 23 alert("昵称不能为空"); 24 return false 25 } 26 else if(form1.passw.value != form1.passw1.value) 27 { 28 alert("两次输入密码不一致"); 29 return false 30 } 31 else 32 { 33 return true 34 } 35 36 } 37 38 </script> 39 40 </head> 41 <body> 42 <!-- 注册表单 --> 43 <form action="Zhcchl" name="form1" id="form1" onsubmit="return yanzh()" method="post"> 44 45 请注册 46 <br> 47 用户名:<input type="text" name="user" id="user"> 48 <br> 49 昵称:<input type="text" name="nich" id="nich"> 50 <br> 51 密码:<input type="password" name="passw" id="passw"> 52 <br> 53 确认密码:<input type="password" name="passw1" id="passw1"> 54 <br> 55 <input type="submit" value="注册"> 56 57 </form> 58 59 </body> 60 </html>
注册处理Servlet: Zhcchl.java
1 package com.hanqi; 2 3 import java.io.IOException; 4 5 import javax.servlet.ServletContext; 6 import javax.servlet.ServletException; 7 8 import javax.servlet.http.HttpServlet; 9 import javax.servlet.http.HttpServletRequest; 10 import javax.servlet.http.HttpServletResponse; 11 import com.hanqi.*; 12 13 /** 14 * Servlet implementation class Zhcchl 15 */ 16 public class Zhcchl extends HttpServlet { 17 private static final long serialVersionUID = 1L; 18 19 20 /** 21 * @see HttpServlet#HttpServlet() 22 */ 23 public Zhcchl() { 24 super(); 25 // TODO Auto-generated constructor stub 26 } 27 28 /** 29 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 30 */ 31 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 32 //解决中文乱码 33 response.setCharacterEncoding("GBK"); 34 //request.setCharacterEncoding("GBK"); 35 //response.setContentType("text/html;charset=GBK"); 36 37 // 接收表单提交信息 38 String user = request.getParameter("user"); 39 String nich = request.getParameter("nich"); 40 String passw = request.getParameter("passw"); 41 42 43 44 45 //判断接收信息合法性 46 if(user == null || user.trim().length() == 0) 47 { 48 response.getWriter().append("用户名不能为空"); 49 response.setHeader("refresh", "3;URL=zhuce.html"); 50 } 51 else if(nich == null || nich.trim().length() == 0) 52 { 53 response.getWriter().append("昵称不能为空"); 54 response.setHeader("refresh", "3;URL=zhuce.html"); 55 } 56 else if(passw == null || passw.trim().length() == 0) 57 { 58 response.getWriter().append("密码不能为空"); 59 response.setHeader("refresh", "3;URL=zhuce.html"); 60 } 61 else 62 { 63 ServletContext application = this.getServletContext(); 64 65 if(application.getAttribute(user) != null) 66 { 67 response.getWriter().append("用户已存在"); 68 response.setHeader("refresh", "3;URL=zhuce.html"); 69 70 } 71 else 72 { 73 //实例化Zhcxx类 74 Zhcxx zc = new Zhcxx(); 75 //将信息存入zc对象 76 zc.setUser(user); 77 zc.setNich(nich); 78 zc.setPassw(passw); 79 80 //将用户注册信息写入application 81 82 application.setAttribute(user, zc); 83 84 response.getWriter().append("注册成功"); 85 86 response.setHeader("refresh", "3;URL=index.html"); 87 } 88 } 89 //response.getWriter().append("Served at: ").append(request.getContextPath()); 90 } 91 92 /** 93 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 94 */ 95 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 96 // TODO Auto-generated method stub 97 doGet(request, response); 98 } 99 100 }
自定义存储用户注册信息的类:Zhcxx.java
1 package com.hanqi; 2 3 public class Zhcxx { 4 5 private String user; 6 7 public String getUser() { 8 return user; 9 } 10 11 public void setUser(String user) { 12 this.user = user; 13 } 14 15 private String nich; 16 public String getNich() { 17 return nich; 18 } 19 20 public void setNich(String nich) { 21 this.nich = nich; 22 } 23 24 private String passw; 25 public String getPassw() { 26 return passw; 27 } 28 29 public void setPassw(String passw) { 30 this.passw = passw; 31 } 32 33 34 35 }
2登录功能
登录页面index.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 5 <title>登录页</title> 6 7 <script type="text/javascript"> 8 9 //js方法验证用户名密码是否为空 10 function yanzh() 11 { 12 if(form1.user.value == "") 13 { 14 alert("用户名不能为空"); 15 return false; 16 } 17 else if(form1.password.value == "") 18 { 19 alert("密码不能为空"); 20 return false; 21 } 22 else 23 { 24 return true; 25 } 26 } 27 </script> 28 29 </head> 30 <body> 31 32 <!-- 登录表单 --> 33 <form action="Logac" name="form1" id="from1" onsubmit="return yanzh()" method="post"> 34 35 请登录 36 <br> 37 用户名:<input type="text" name="user" id="user"> 38 <br> 39 密码:<input type="password" name="password" id="password"> 40 <br> 41 <input type="submit" value="登录"> 42 <a href="zhuce.html">注册</a> 43 </form> 44 45 </body> 46 </html>
登录处理Servlet:logac.java
1 package com.hanqi; 2 3 import java.io.IOException; 4 5 import javax.servlet.ServletContext; 6 import javax.servlet.ServletException; 7 import javax.servlet.http.HttpServlet; 8 import javax.servlet.http.HttpServletRequest; 9 import javax.servlet.http.HttpServletResponse; 10 11 /** 12 * Servlet implementation class Logac 13 */ 14 public class Logac extends HttpServlet { 15 private static final long serialVersionUID = 1L; 16 17 /** 18 * @see HttpServlet#HttpServlet() 19 */ 20 public Logac() { 21 super(); 22 // TODO Auto-generated constructor stub 23 } 24 25 /** 26 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 27 */ 28 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 29 // 指定中文字符集 30 response.setCharacterEncoding("GBK"); 31 //request.setCharacterEncoding("GBK"); 32 //response.setContentType("text/html;charset=GBK"); 33 //接收表单信息 34 String user = request.getParameter("user"); 35 36 String passw = request.getParameter("password"); 37 38 //判断获取信息合法性 39 if(user == null || user.trim().length() == 0) 40 { 41 response.getWriter().append("用户名非法"); 42 response.setHeader("refresh", "3;URL=index.html"); 43 } 44 else if(passw == null || passw.trim().length() == 0) 45 { 46 response.getWriter().append("密码非法"); 47 response.setHeader("refresh", "3;URL=index.html"); 48 } 49 else 50 { 51 //创建application对象 52 ServletContext application = this.getServletContext(); 53 //取出以user为名存储的对象 54 Object obj = application.getAttribute(user); 55 //如果对象不存在说明用户名不存在 56 if(obj == null) 57 { 58 response.getWriter().append("用户名不存在"); 59 response.setHeader("refresh", "3;URL=index.html"); 60 } 61 else 62 { 63 //实例化Zhcxx 64 Zhcxx zhc = (Zhcxx)obj; 65 //从zhc对象取出密码,昵称 66 String ipsw = zhc.getPassw(); 67 String inch = new String(zhc.getNich().getBytes("ISO-8859-1"),"UTF-8"); 68 //判断密码是否正确 69 if(passw.trim().equals(ipsw.trim())) 70 { 71 response.getWriter().println("欢迎" + inch +"登录"); 72 } 73 else 74 { 75 response.getWriter().println("密码错误"); 76 response.setHeader("refresh", "3;URL=index.html"); 77 } 78 } 79 } 80 81 //response.getWriter().append("Served at: ").append(request.getContextPath()); 82 } 83 84 /** 85 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 86 */ 87 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 88 // TODO Auto-generated method stub 89 doGet(request, response); 90 } 91 92 }