cookie的生命周期 和 路径设置

//设置cookie的销毁时间 参数是以秒为单位
		cookie.setMaxAge(60*60);
		

Cookie会在客户端存活多久呢?这就是Cookie的生命了。默认情况下,Cookie只在浏览器的内存中存活,也就是说,当你关闭浏览器后,Cookie就会消失!

可以使用Cookie#setMaxAge(int expiry)来设置Cookie的存活时间。参数expiry表示Cookie存活的秒数。

l  cookie.setMaxAge(60*60):表示cookie对象可存活1小时。就算关闭浏览器,就算重启客户端电脑,cookie也会存活1小时。因为当maxAge大于0时,浏览器不仅会把cookie保存在浏览器内存中,还会把cookie保存到硬盘上。

l  cookie.setMaxAge(-1):cookie的maxAge属性的默认值就是-1(其实只要是负数都是一个意思),表示只在浏览器内存中存活。一旦关闭浏览器窗口,那么cookie就会消失。

l  cookie.setMaxAge(0):cookie被作废!表示cookie即不在内存中存活,也不在硬盘上存活,这样的cookie设置只有一个目的,那就是覆盖客户端原来的这个cookie,使其作废。

------------------------------------------------------------------------------------------

cookie路径

------------------------------------------------------------------------------------------

 

到现在我们还没说过Cookie的path有什么用,现在我们来聊聊path的作用。首先声明一点,path不是指Cookie在客户端存放的路径!!!不同的浏览器存放Cookie的路径是不同的!!!你不能通过Cookie的path来指定Cookie文件的存放路径!!!

那么Cookie的path是干什么的呢?假设你的浏览器当前已经有了两个Cookie:

l  c1:name=id; value=itcast;path=/day07_03/;

l  c2:name=name;value=qdmmy6; path=/day07_03/servlet/。

 

当访问http://localhost/day07_03/*时,请求头中会包含c1,而不会包含c2。

当访问http://localhost/day07_03/servlet/*时,请求头中会包含c1和c2。

也就是说,在访问子路径时,会包含其父路径的Cookie,而在访问父路径时,不包含子路径的Cookie。



如果你想在BServlet中设置的Cookie,在客户端访问AServlet时也包含在请求头中,那么就需要设置BServlet中的Cookie的path:

l  c2.setPath(“/day07_03/”):硬编码;

l  c2.setPath(request.getContextpath() + “/”):活编码。

 

cookie2.setPath("/cookie_demo3/a/b/");

这样就可以设置Cookie的路径,保存在访问AServlet时,也会包含BServlet中添加的Cookie。

 

CookieSetPath设置cookie的路径,这个路径直接决定服务器的请求是否会从浏览器中加载某些cookie

首先默认情况如果不设置cookiepath,默认是 /项目名称/当前路径的上一层地址如:请求路径:/cookie_demo/servlet/login cookie的路径:/cookie_demo/servlet

如果我们设置path,如果当前访问的路径包含了cookie的路径(当前访问路径在cookie路径基础上要比cookie的范围小)cookie就会加载到request对象之中。






  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值