Cookie

====理论====
Cookie描述
Cookie是一个存在于客户端的存储机制,和Session一样也是Map结构的,但Cookie的value不能像Session一样
可以存Object,它只能存储String值,SessionID就存于Cookie中,而Cookie存于客户端硬盘上。


Cookie和Session的区别
Session是存储于服务器端的,由服务器去销毁和创建
Cookie是存储于客户端的,可以由服务器端去销毁和创建也可以客户端去销毁
Cookie可以和Session一样,浏览器关闭时销毁
Session也可以和Cookie一样,保存长时间,只要SessionID不丢,Session的存活时间够长就可以实现。
Session是可以存储Object value的Map,而Cookie只能存储String value。
Session是单例的,Cookie就很随意了,但是request中中的Cookie数组只有一个。


====应用====
获取Cookie
request.getCookies();
返回的是一个Cookie[]的引用,并不是一个新的Cookie数组,而是request中Cookie[]的引用。
所以会出现以下情况:
Cookie cks[] = request.getCookies();
cks[0].setMaxAge(30*60);
print(request.getCookies()[0].getMaxAge());
//其结果为1800,而不是原有的request的Cookie中0索引下的MaxAge,所以断定getCookies()返回的是request中
//的Cookie数组的引用。


创建Cookie
Cookie ck = new Cookie("key","value"); 只能存储String的value

删除Cookie
ck.setMaxAge(0);//表示 立刻删除
ck.setMaxAge(-1);//表示 浏览器关闭后删除JSESSIONID的MaxAge为-1

添加Cookie到客户端
response.addCookie(Cookie ck);
Cookie必须要执行这句代码才会被写入客户端的硬盘。

存储SessionID的Cookie
创建HttpSession后,会连Cookie一起创建,Cookie name为"JSESSIONID",值为SessionID"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值