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>