# Session 概述
- Session:在一次会话的多次请求间共享数据,将数据保存在服务器端的对象 HttpSession 中
- 原理:Session 的实现是依赖于 Cookie 的
# Session 使用
# 获取 HttpSession 对象
HttpSession session = request.getSession();
# 使用 HttpSession 对象
void setAttribute(String name, Object value)
Object getAttribute(String name)
void removeAttribute(String name)
# Session 细节
# session 是否为同一个
当客户端关闭后,服务器不关闭,两次获取的 session 是否为同一个
- 默认:不是
- 持久化存储:创建 Cookie 键为 JESSIONID,设置最大存活时间,让 cookie 持久化保存
客户端不关闭,服务器关闭后,两次获取的 session 是同一个吗
- 不是同一个,但数据相同
- session 的钝化:在服务器正常关闭之前,将 session 对象序列化到硬盘上
- session 的活化:在服务器启动后,将 session 文件转化为内存中的 session 对象
# session 销毁时间
- 服务器关闭
- session 对象调用 invalidate ()
- session 默认失效时间 30 分钟
选择配置修改
<session-config>
<sesstion-timeout>30</sesstion-timeout></session-config>
# Session 特点
- session 用于存储一次会话的多次请求的数据,存在服务器端
- session 可以存储任意类型,任意大小的数据
session | cookie |
---|---|
存储数据在服务器端 | 存储数据在客户端 |
没有数据大小限制 | 有数据大小限制 |
数据安全 | 数据相对于不安全 |