1 cookie是以键值对保存在浏览器端,服务器端可以创建、接收、发送 cookie 信息。
request可以接收 cookie, response 可以发送 cookie。
1)cookie 可以设置过期时间cookie.setMaxAge
- 正数,浏览器会将数据保存到硬盘中,如果没有超过过期时间,就可以一直访问。时间单位是秒。
- 负数,浏览器会将数据保存在内存中,关闭浏览器数据就会回收。
- 0,清除同名的cookie。
2)Cookie 可以设置有效路径 cookie.setPath(String path)。浏览器只有在有效路径下才会发送相应的cookie。
3)存放限制:浏览器一般只允许存放300个cookie,只可以存放英文、数字字符串,每个站点最多可以存放20个cookie,每个cookie大小限制为4kb。
2 session 将键值对保存到服务器端,获取session 对象,request.getSession()。
通过 JSESSIONID 的 cookie 值在服务器找 session 对象。该 cookie 值保存在浏览器端的内存中,因此关闭浏览器或者更换浏览器因为没有 sessionID,因此不是同一个会话;但是如果浏览器没有关闭,不同的 table 可以访问同一个session对象。
1) 可以修改 session 对象的保存时间,默认时间是半小时。
session.setMaxInactiveInterval(int) //单位是秒
全局修改session 保存时间,单位是分钟。
<session-fig>
<session-timeout>time</session-timeout>
</session-fig>
2)手动销毁session对象
void session.invalidate() //销毁session对象。