cookie的生命周期

本文介绍了如何通过setMaxAge方法设置Java cookie的生命周期,区分负数、0和正数的过期策略,以及它们对浏览器存储的影响。理解会话cookie与持久化cookie的区别,以及如何在代码中实现1分钟过期时间的示例。
摘要由CSDN通过智能技术生成

java可以通过cookie对象的setMaxAge方法来设置cookie的生命周期

setMaxAge() 的参数单位是秒,默认值为-1

//这是cookie源代码 
private int maxAge = -1; // ;Max-Age=VALUE ... cookies auto-expire

有三种情况:

1.参数为负数:表示浏览器关闭后则删除cookie,这种方式cookie存在于浏览器的内存中,

注意是关闭浏览器才会删除,而不是关闭当前页面。

代码演示:

public class CookieTest extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //添加cookie
        Cookie cookie = new Cookie("key", "value");
        //这里没有设置过期时间,默认为-1
        resp.addCookie(cookie);
    }
}

xml中设置的访问路径为:

 <servlet>
        <servlet-name>TestCookie</servlet-name>
        <servlet-class>servlet.CookieTest</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>TestCookie</servlet-name>
        <url-pattern>/testCookie</url-pattern>
    </servlet-mapping>

 现在打开浏览器访问该路径:localhost:8080/test/testCookie

 ps: 工程路径为:/test 

可以看到浏览器已经存储了我们的设置的cookie对象

操作一:如果这个时候打开一个新的标签页访问百度  并查看页面的cookie发现无法找到我们设置的cookie。

操作二:如果这个时候关闭访问localhost:8080/test/testCookie的标签页,然后重新打开一个标签页访问该路径,会发现能够找到我们设置的cookie。

操作三:关闭浏览器,重新打开访问localhost:8080/test路径,发现cookie找不到了。

总结:

1.关闭一个页面后并不会删除会话cookie,关闭浏览器才会删除内存中的会话cookie

2.在某个页面打开控制台看到的cookie只是和该页面有关的cookie,并不会展示内存中的所有cookie.

3.参数为正数:

        到指定时间才会删除cookie,即使关闭了浏览器,也会被持久化到硬盘上,下次访问相关页面,任然会加载到内存中。

     将上面代码修改一下,设置过期时间为1分钟。

      访问 localhost:8080/test/testCookie

可以看到这时的cookie不是会话cookie,而是有一个明确的过期时间。

在一分钟之内完成重启浏览器访问该路径的操作,会发现还是能找到设置的cookie 

 一分钟过后,则会删除该cookie

2.参数为0:

表示立刻删除该cookie

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值