cookie的使用

使用说明:

1.未连接数据库,用户名和密码默认为tom和123

2.记住我30天需要正确输入一次账号,并且选中“记住我30天”

3.当Cookie记录完成后,需要输入用户名并选中“记住我30天”实现免密码登录

 

IE浏览器测试图(按测试顺序):

项目结构:

 

各项代码:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="UTF-8">
 5 <title>记住密码登录</title>
 6 <!-- <script>
 7 function getCookie(name){
 8     var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
 9     if(arr=document.cookie.match(reg))
10     return unescape(arr[2]);
11     else
12     return null;
13 }
14 </script> -->
15 </head>
16 <body>
17     <form action="rLogin" method="post">
18         <input type="text" name="uid"><br>
19         <input type="password" name="upassword"><br>
20         <input type="checkbox" name="rememberMe" value="yes">记住我30天
21         <input type="submit" value="登录">
22     </form>
23 </body>
24 </html>
Login.html
 1 package com.a;
 2 
 3 import java.io.IOException;
 4 import java.io.PrintWriter;
 5 
 6 import javax.servlet.ServletException;
 7 import javax.servlet.annotation.WebServlet;
 8 import javax.servlet.http.Cookie;
 9 import javax.servlet.http.HttpServlet;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12 import javax.validation.constraints.Null;
13 
14 /**
15  * Servlet implementation class rLogin
16  */
17 @WebServlet("/rLogin")
18 public class rLogin extends HttpServlet {
19     private static final long serialVersionUID = 1L;
20        
21     /**
22      * @see HttpServlet#HttpServlet()
23      */
24     public rLogin() {
25         super();
26         // TODO Auto-generated constructor stub
27     }
28 
29     /**
30      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
31      */
32     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
33         doPost(request, response);
34     }
35 
36     /**
37      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
38      */
39     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
40         //设置请求和响应的字符集编码
41         response.setContentType("text/html; charset=UTF-8");
42         request.setCharacterEncoding("UTF-8");
43         PrintWriter out = response.getWriter(); //获得输出流
44         
45         String strID=request.getParameter("uid");
46         String strPassword=request.getParameter("upassword");
47         String isRemember=request.getParameter("rememberMe");
48         
49         boolean isExist=false;
50         boolean isLogin=false;
51         //校验Cookie中有无登录名信息
52         Cookie[] cookies=request.getCookies();
53         if (cookies==null){
54             out.print("没有Cookie");
55         }
56         else {
57             for(int i=0;i<cookies.length;i++){
58                 if(cookies[i].getName().equals("uid"));
59                 isExist=true;
60                 out.println("拥有Cookie");
61             }
62         }
63         
64         //检查登录信息是否正确
65         if("tom".equals(strID)&&"123".equals(strPassword)){
66             isLogin=true;
67         }
68         
69         //若已选择记住我且Cookie中无信息,则写入Cookie信息
70         if("yes".equals(isRemember)&&isExist==false&&isLogin==true){
71             Cookie user_id=new Cookie("uid", strID);
72             Cookie user_password=new Cookie("upassword", strPassword);
73             user_id.setMaxAge(60*60*24*30);
74             user_password.setMaxAge(60*60*24*30);
75             response.addCookie(user_id);
76             response.addCookie(user_password);
77         }
78         
79         
80         if(isExist&&!"yes".equals(isRemember)&&isLogin==false){
81             out.println("且登录失败");
82         }
83         //登录信息正确或Cookie中有数据,都可登录
84         else if(isExist||isLogin){
85             out.println("且成功登录");
86         }
87         else{
88             out.println("且登录失败");
89         }
90     }
91 
92 }
servlet中dopost方法

 

链接:https://pan.baidu.com/s/1RmNUFVNaTGg7caSCezqK7w
提取码:hwey
复制这段内容后打开百度网盘手机App,操作更方便哦

posted @ 2019-04-02 17:46  Joker_zou  阅读(175)  评论(0编辑  收藏  举报