Cookie

本文详细阐述了Cookie的创建、销毁过程,如何通过setMaxAge设置其持久化存储,以及路径设定对资源访问的影响。重点讲解了Cookie的实现原理和常见细节,包括发送和接收多个Cookie,以及不同maxAge值的存储效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Cookie的生命周期:
创建:客户端第一次发送请求给服务器资源
销毁:默认是客户端与服务器断开连接
简单的说,打开浏览器,访问服务器,直到浏览器关闭,称为一次会话
可以通过setMaxAge(int seconds)设置cookie的存在:
正数:将cookie数据写到硬盘文件中。并指定cookie存活时间,时间到后,cookie文件自动失效(从存入cookie开始算)
负数:默认值(客户端与服务器断开连接)
零:存入后就删除cookie数据
Cookie携带路径:默认为当前文件的目录 即:当前Servlet的虚拟路径的上一级
Cookie是请求自动携带的;
创建Cookie对象

Cookie cookie = new Cookie("name","zhangsan");//创建Cookie对象
cookie.setMaxAge(60*60*24);//保存一天,一天后自动删除 ,常用于登录
//cookie.setPath("/");当前服务器内的所有资源
//cookie.setPath(req.getContextPath());当前web应用下的所有资源
cookie.setPath("/aa/bb");//"/aa/bb"目录下的资源能访问到cookie
response.addCookie(cookie);//发送到客户端  实际上就是response.setHeader("Set-Cookie","name=zhangsan");
Cookie[] cookies = request.getCookies();//没有得到任何Cookie cookies就是null getHeader("Cookie")
if(cookies != null){
	for(Cookie c: cookies){
		System.out.println(cookie.getName+"--"+cookie.getValue);//Cookie和Map一样
	}
}

Cookie的实现原理:基于响应头set-cookie和请求头cookie实现
Set-Cookie:“name=zhangsan”
Cookie:“name=zhangsan”
Cookie的细节:
1.一次可以发送和接收多个cookie
2.cookie默认情况下是当浏览器关闭后,Cookie数据销毁
但可以持久化存储 setMaxAge(int seconds)
正数:将Cookie数据写到硬盘的文件中去,并指定cookie存活时间,时间到后,
cookie文件自动失效
负数,表示此cookie只是存储在浏览器内存里,只要关闭浏览器,此cookie就会消失。maxAge默认值
为-1
零:删除cookie信息 即即时失效实现删除Cookie的效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值