0%

session and cookie

  • 我们设置的Cookie浏览器会分path,只有同一path返回的cookie,下一次访问同path时(请求转发也算),浏览器请求头才会带上对应path.
    可以手动设置Cookie.path = xxx eg:req.contextPath来指定path,浏览器默认根据要访问的url依次匹配最接近的1级,2级path的cookie并带上
  • Cookie的值只能是String无法想session一样是object,且无法为中文,需要放中文时需要URLEncode
  • Cookie的有效期Cookie.maxAge = 1000 // 秒为单位
  • JSP中可以通过${cookie.key.value} key为cookie对应的key获取Cookie

Session

Session作用域,浏览器重启或者新session后则刷新,原理是利用Cookie,带了个JSESSIONID=BE09C25AA4F9F1CBDC6B5641F59DBA36, 同一对话
该session id值会一致,java web服务器根据id获取对应session,提供session作用域.
浏览器会自动管理session对应的cookie键值对,会话结束或者浏览器关闭时不进行存储,保证下次新会话不带上。

销毁

2种方式销毁
1:过期,可以配置过期时间
web.xml中配置

1
2
3
4

<session-config>
<session-timeout>100</session-timeout><!--单位为分钟-->
</session-config>

没有配置默认30分钟,在tomcat的web.xml中配置
2:主动销毁调用Session.invalidate()方法