Java Web Session
本文将介绍在 Java Web 中如何使用和操作 Session。
一、Sesion
具体请看:
二、获取 Session
1 |
|
三、Session 方法
方法 | 说明 |
---|---|
void setAttribute(String name, Object obj) | 存储数据 |
Object getAttribute(String name) | 通过键获取值 |
void removeAttribute(String name) | 通过键移除键值对 |
四、Session 的维持
1. 客户端关闭后开启,服务器始终开启
默认情况下,浏览器中 session_id cookie 会在浏览器关闭后消失,因此,客户端关闭再开启后将无法获取到相同的 Session。
如果希望获取相同的 Session,可以手动设置 Cookie 的保存时长。
1 |
|
2. 客户端不关闭,服务器关闭后开启
因为 Session 是在服务器的内存中存储,它将会随着服务器的关闭而被销毁,因此不是同一个 Session。
确保数据不因 Session 的销毁而丢失的方法:
- 钝化:在服务器正常关闭之前,将 Session 对象序列化到硬盘上
- 活化:在服务器重新启动后,将硬盘中的 Session 信息重新转化至内存中
Tomcat 默认会做 Session 的钝化与活化,直接使用 Tomcat 启动项目,可以使保存在 Session 中的数据不丢失;
在 IDEA 中通过 Tomcat 启动项目时,默认会在每次启动时删除硬盘中钝化的数据,因此数据将随着 Session 的销毁而丢失。
五、Session 的销毁
- 服务器关闭
- 对 Session 对象调用
Invalidate()
方法 - 如果 30 分钟不发生活动,Session 对象将会失效