JavaWeb--会话与状态管理1--cookie 基础与自动登录

 连接用户多次请求的

会话ID(SessionID):浏览器对其发出的每个请求消息都进行标识
在 Servlet 规范中,常用以下两种机制完成会话跟踪
  Cookie
  Session

Cookie机制:
  cookie机制采用的是在客户端保持 HTTP 状态信息的方案
  Cookie是在浏览器访问WEB服务器的某个资源时,由WEB服务器在HTTP响应消息头中附带传送给浏览器的一个小文本文件。
  一旦WEB浏览器保存了某个Cookie,那么它在以后每次访问该WEB服务器时,都会在HTTP请求头中将这个Cookie回传给WEB服务器。

利用Cookie自动登录

  

login.jsp

<%--
  Created by IntelliJ IDEA.
  User: Skye
  Date: 2017/12/12
  Time: 9:21
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="index.jsp" method="post">
    loginName: <input type="text" name="loginName"/>
    <input type="submit" name="Submit"/>
</form>
</body>
</html>

index.jsp

<%--
  Created by IntelliJ IDEA.
  User: Skye
  Date: 2017/12/12
  Time: 9:13
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <%
    String name = request.getParameter("loginName");
    if(name != null && !name.trim().equals("")){
        Cookie cookie = new Cookie("name", name);
        cookie.setMaxAge(30);
        response.addCookie(cookie);
    }else{
        Cookie[] cookies = request.getCookies();
        if(cookies != null && cookies.length != 0){
            for(Cookie cookie: cookies){
                if("name".equals(cookie.getName())){
                    String val = cookie.getValue();
                    name = val;
                }
            }
        }
    }

    if(name != null && !name.trim().equals("")){
        out.print("hello" + name);
    }else{
        response.sendRedirect("login.jsp");
    }

  %>
  </body>
</html>

  

原文地址:https://www.cnblogs.com/SkyeAngel/p/7988334.html