Cookie
- Cookie是什么?
1)完成会话跟踪的一种机制,采用的是在客户端保持Http状态信息的方案
2)Cookie是在浏览器访问WEB服务器的某个资源时,由WEB服务器在Http响应消息头中附带传送给浏览器的一个小的文本文件。
3)一旦WEB浏览器保存了某个Cookie,那么它以后每次访问该WEB服务器时,都会在http请求头中将这个Cookie回传给WEB服务器
4)底层实现的原理:WEB服务器通过在HTTP响应消息中增加Set-Cookie响应字段将Cookie消息发送给浏览器,浏览器则通过在HTTP请求消息中增加Cookie请求字段将Cookie回传给WEB服务器
- Cookie相关的API
1)向客户端浏览器写入Cookie
//1.创建一个Cookie对象
Cookie cookie = new Cookie(“name”,”value”);
//2.setMaxAge:设置Cookie的最大时效,以秒为单位,若为0,表示立即删除该Cookie
Cookie.setMaxAge(30);
//3.设置Cookie的作用范围:默认可以作用的范围为当前目录和当前目录的子目录,但不能作用与当前目录的上一级目录
cookie.setPate(request.getContextPath());
//4.调用response的一个方法把Cookie传给客户端
response.addCookie(cookie);
2)从浏览器中读取Cookie
//1.接受Cookie
Cookie[] cookies = request.getCookies();
for(Cookie cookie:cookies){
//获取获取name和value值
out.print(Cookie.getName()+”:”+cookie.getValue());
}
- 会话Cookie和持久化Cookie
1)如果不设置时间,则表示这个Cookie生命周期为浏览器会话结束,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览器会话期的Cookie。会话Cookie一般不保存在硬盘上而是保存在内存里
2)如果设置了过期时间,浏览器就会把Cookie保存在硬盘上,关闭后再次打开浏览器,这些Cookie依然有效,知道超过设置的过期时间