Cookie
一、会话
默认情况下,用户打开一个浏览器访问web资源到关闭一个浏览器称之为会话。
会话技术要解决的问题是:浏览器和服务器会话过程中,服务器对用户数据的保存问题。
二、概述
一种客户端技术,服务器把每个用户的数据以Cookie小文件的形式发送给用户各自的浏览器。当用户使用浏览器再去访问服务器的web资源时,再带着各自的Cookie过去。实现服务器对用户数据的客户端保存。应用场景:自动登陆,记录用户上次浏览时间和浏览的商品
三、Servlet Cookie API
1.创建Cookie
Cookie cookie = new Cookie("user","Lshare");
2.设置Cookie
- setMaxAge(seconds)
必须设置最大的有效时间,因为默认Cookie是会话级别的,值为0,保存在内存中
- setPath(uri)
设置有效路径,浏览器据此决定是否发送Cookie,默认当前工程
cookie.setMaxAge(24*60*60);//保存一天
cookie.setPath(this.getServletPath());
3.添加Cookie
添加Cookie到Response对象中,浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie限制大小为4KB。
response.addCookie(cookie);
4.获取Cookie
Cookie cookie = request.getCookies();//取得所有相关的Cookie
cookie.getName();//取得Cookie名
cookie.getMaxAge();//取得Cookie有效时间
cookie.getPath();//取得Cookie有效路径
cookie.getValue();//取得Cookie值
5.删除Cookie
生成一个有效时间为0的同名的有效路径一致的Cookie
Cookie[] cookies = request.getCookies();
for(Cookie cookie:cookies){
if("user".cookie.getName()){
cookie.setMaxAge(0);//删除名为user的Cookie
response.add(cookie);
}
}