1.会话管理概念
HTTP是一种无状态协议,每次客户端访问web页面时,客户端打开一个单独的浏览器窗口连接到web服务器,由于服务器不会自动保存之前客户端请求的相关信息,所有无法识别一个HTTP请求是否为第一次访问。这就引进了web客户端和服务器端之间的会话,这就是会话管理。
2.Cookies
Cookies是存储在客户端计算机上的文本文件,其中保留了各种跟踪信息。
在Servlet中操作Cookie:
1.通过Servlet设置Cookie
//创建一个Cookies对象
Cookie cookie = new Cookes("key","value");
//设置最大生存周期
cookie.setMaxAge(60*60*24);
//发送Cookie到HTTP响应头
response.addCookie(cookie);
2.通过Servlet读取Cookie
①通过HTTPServletRequest的getCookies()方法创建一个javax.servlet.http.Cookie对象的数组
②循环遍历数组
③使用getName()和getValue()方法来访问每一个cookie和关联的值
3.通过servlet删除Cookie
//把cookie最大生命周期设置为0
cookie.setMaxAge(0);
//添加到响应头
response.addCookies(cookie);
3.Cookie的局限性
①cookie可能被浏览器禁用
②cookie保存在客户端,可能被删除
③大小受限制
④安全性不高存储形式是存文本类型,信息不安全
4.Session
4.1Session简介
- Session是指使用HttpSession对象实现会话跟踪的技术,是一种在服务器端保持会话跟踪的解决方案。
- Session的工作原理:服务器在创建会话对象时,会为其分配一个唯一的会话标识——SessionId,以“JSESSIONID”的属性名保存在客户端Cookie中,在用户随后的请求中,服务器通过读取Cookie中的JSESSIONID属性值来识别不同的用户,从而实现对每个用户的会话跟踪。
2.Cookie和Session主要的区别: