Cookie的使用

链接: https://pan.baidu.com/s/188chZLe-56VFzg7UvkZKUA

提取码: jvwb 复制这段内容后打开百度网盘手机App,操作更方便哦

 

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>记住密码登录</title>
<!-- <script>
function getCookie(name){
    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
    if(arr=document.cookie.match(reg))
    return unescape(arr[2]);
    else
    return null;
}
</script> -->
</head>
<body>
    <form action="rLogin" method="post">
        <input type="text" name="uid"><br>
        <input type="password" name="upassword"><br>
        <input type="checkbox" name="rememberMe" value="yes">记住我30天
        <input type="submit" value="登录">
    </form>
</body>
</html>

Login.html
package com.a;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.Null;

/**
 * Servlet implementation class rLogin
 */
@WebServlet("/rLogin")
public class rLogin extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public rLogin() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置请求和响应的字符集编码
        response.setContentType("text/html; charset=UTF-8");
        request.setCharacterEncoding("UTF-8");
        PrintWriter out = response.getWriter(); //获得输出流
        
        String strID=request.getParameter("uid");
        String strPassword=request.getParameter("upassword");
        String isRemember=request.getParameter("rememberMe");
        
        boolean isExist=false;
        boolean isLogin=false;
        //校验Cookie中有无登录名信息
        Cookie[] cookies=request.getCookies();
        if (cookies==null){
            out.print("没有Cookie");
        }
        else {
            for(int i=0;i<cookies.length;i++){
                if(cookies[i].getName().equals("uid"));
                isExist=true;
                out.println("拥有Cookie");
            }
        }
        
        //检查登录信息是否正确
        if("tom".equals(strID)&&"123".equals(strPassword)){
            isLogin=true;
        }
        
        //若已选择记住我且Cookie中无信息,则写入Cookie信息
        if("yes".equals(isRemember)&&isExist==false&&isLogin==true){
            Cookie user_id=new Cookie("uid", strID);
            Cookie user_password=new Cookie("upassword", strPassword);
            user_id.setMaxAge(60*60*24*30);
            user_password.setMaxAge(60*60*24*30);
            response.addCookie(user_id);
            response.addCookie(user_password);
        }
        
        
        if(isExist&&!"yes".equals(isRemember)&&isLogin==false){
            out.println("且登录失败");
        }
        //登录信息正确或Cookie中有数据,都可登录
        else if(isExist||isLogin){
            out.println("且成功登录");
        }
        else{
            out.println("且登录失败");
        }
    }

}

servlet中dopost方法

  

posted @ 2019-04-04 12:24  楼南  阅读(169)  评论(0编辑  收藏  举报