Cookie 生命周期控制

Cookie 的生命控制指的是如何管理 Cookie 什么时候被销毁(删除)

setMaxAge()

  • 正数,表示在指定的秒数后过期
  • 负数,表示浏览器一关,Cookie 就会被删除(默认值是-1)
  • 零,表示马上删除 Cookie

servlet程序:

/**
 * 默认的会话级别的Cookie,浏览器一关,Cookie 就会被删除(
 * @param req
 * @param resp
 * @throws ServletException
 * @throws IOException
 */
protected void defaultLife(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    Cookie cookie = new Cookie("defaultLife", "defaultLife");
    cookie.setMaxAge(-1);//设置存活时间
    resp.addCookie(cookie);
}

/**
 * 马上删除一个Cookie
 * @param req
 * @param resp
 * @throws ServletException
 * @throws IOException
 */
protected void deleteNow(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    // 先找到你要删除的Cookie对象
    Cookie key1 = CookieUtils.findCookie("key1", req.getCookies());

    if(key1 != null){
        // 调用setMaxAge(0);
        key1.setMaxAge(0);// 表示马上删除,都不需要等待浏览器关闭
        // 调用response.addCookie(cookie);
        resp.addCookie(key1);
    }

    resp.getWriter().write("key1的Cookie已经被删除");
}
/**
 * 设置存活1个小时的Cookie
 * @param req
 * @param resp
 * @throws ServletException
 * @throws IOException
 */
protected void life3600(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    Cookie cookie = new Cookie("life3600", "life3600");
    cookie.setMaxAge(60 * 60);// 设置Cookie一小时之后被删除。无效
    resp.addCookie(cookie);
    resp.getWriter().write("已经创建了一个存活一小时的Cookie");
}

cookie.html页面:

<ul>
	<li><a href="cookieServlet?action=defaultLife" target="target">Cookie的默认存活时间(会话</a></li>
	<li><a href="cookieServlet?action=deleteNow" target="target">Cookie立即删除</a></li>
	<li><a href="cookieServlet?action=life3600" target="target">Cookie存活3600秒(1小时</a></li>
</ul>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值