记:为何我设置了session为永久保存,但是并没有什么卵用

在重启浏览器的情况下,其实不论你讲session的时间设置为多久,都无法无法获取相同的session。这个时间指的是session值在内存中保存的时间,并不是sessionid的时间。

    HttpSession session = request.getSession();
    session.setAttribute("list", list);
    //session设置为永久
    session.setMaxInactiveInterval(-1);

因为,默认情况下,session的id会存到cookie中,返回给浏览器,但是这个cookie的有效时间为,关闭浏览器前有效
因此,重启浏览器就无法获取相同的sessionid,也就无法获取相同的session。

这里写图片描述

//如果要获取相同的session,那你必须将sesion的id存到cookie当中,设置cookie的时间,这样就能获取相同的session了

    Cookie cookie = new Cookie("JSESSIONID", session.getId());
    cookie.setMaxAge(60*60);
    response.addCookie(cookie);

这里写图片描述

总结:

session的两个时间:
1,session值的时间,你设置session的时间就是这个session值存在服务器中的保存时间。
2,JSESSIONID的时间,这是个cookie,如果你不对sessionid进行设置,拿他默认就是浏览器关闭前有效。
如果想让session在浏览器关闭后仍然为同一个session,那就得将JSESIONID放到cookie当中,修改他的保存时间。
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值