cookie保存在浏览器客户端
session保存在服务器端
Cookie类:保存会话数据
1)创建Cookie对象,用于保存会话数据
new Cookie(java.lang.String name,java.lang.String value)
2)设置Cookie对象
void setPath(java.lang.String uri) 设置cookie有效路径
voidsetMaxAge(int expiry) 设置cookie的有效时长
voidsetValue(java.lang.String newValue) 设置cookie的值
3)发送Cookie数据到浏览器保存
response.addCookie(cookie);
4)接收浏览器发送的Cookie数据
Cookie[] request.getCookies()
1)服务器端创建Cookie数据,然后通过set-cookie的响应头把cookie数据发送给浏览器保存
响应头:例如: set-cookie: name=eric
2)浏览器得到服务器发送cookie数据,保存在浏览器目录中。
3)浏览器在下次访问服务器时,会带着cookie数据访问服务器。通过cookie的请求头把cookie数据发送给服务器端
请求头:例如: cookie: name=eric
4)服务器可以接受浏览器发送的cookie数据
request.getCookies();
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1,创建cookie对象,保存会话数据 //如果要发送中文,必须先使用URLEncoder进行加密 String n = URLEncoder.encode("张三","utf-8"); Cookie c = new Cookie("name", "zdh"); Cookie c1 = new Cookie("email", "11mqzdh2013@163.com"); //设置有效路径,默认情况下,设置当前项目的根目录下 //c.setPath("/day11"); /*设置cookie的有效时长 * 正整数: 表示超过了正整数的数值的时间,cookie就会丢失!!(cookie保存浏览器的缓存 目录)单位:秒 负整数: 表示如果浏览器关闭了,cookie就会丢失!(cookie保存浏览器内存) (默认情况) 0 : 表示删除同名的cookie */ //c.setMaxAge(10);//10秒后cookie消失 c.setMaxAge(-1); //关闭浏览器cookie消失。也是默认情况 c1.setMaxAge(50); //2,把cookie数据发送给浏览器,通过响应头携带cookie数据给浏览器(set-cookie) //response.setHeader("set-cookie", "name=zzz"); //简化版本 response.addCookie(c); response.addCookie(c1); //3,浏览器在下次访问的时候携带了cookie数据,通过请求头发送给服务器(cookie) //4,浏览器获取浏览器发送的cookie数据,// String name = request.getHeader("cookie");// System.out.PRintln(name); Cookie[] cookie = request.getCookies(); if(cookie!=null){ for(Cookie ck:cookie){ String name = ck.getName(); String value = ck.getValue(); System.out.println(name+"="+value); } }else{ System.out.println("没有cookie 信息!!"); } }
需要注意:
1)设置cookie有效路径: setPath(uri) 。如果cookie在有效路径下,那么浏览器在下次访问该有效路径时就会带着cookie数据到服务器。
2)设置cookie的有效时长: setMaxAge(整数)
正整数:cookie数据保存在浏览器的缓存目录中(硬盘中)。例如10。10秒之后就cookie 就会丢失。(从最后一次访问cookie开始计算)
负整数: cookie数据保存在浏览器的内存中,浏览器关闭cookie数据就会丢失。
零: 删除同名的cookie
3)可以同时往浏览器发送多个cookie数据,必须是字符串类型的。浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。
新闻热点
疑难解答