介绍
便于对象存储的服务器存储技术
原理
用户第一次访问服务器, 服务器会创建一个session对象给用户, 并将该session对象的JSESSIONID使用Cookie技术存储到浏览器中, 保证用户的其他请求能够获取到同一个session对象, 也保证了不同请求能够获取到共享的数据
特点
- 存储在服务器
- 服务器进行创建
- 依赖Cookie技术
- 一次会话
- 默认存储时间是30分钟
作用
解决了用户不同的请求处理的数据共享问题
使用
注意事项
如果服务器中有session对象, 那么返回session对象, 如果没有, 则创建session并返回
JSESSIONID是通过coocies技术存储在浏览器内存中, 每次重启都会有一个新的JSESSIONID, JSESSIONID用来和服务器存储的session进行匹配
如果浏览器存储的JSESSIONID失效了, 服务器会重新创建一个session, 返回JSESSIONID将失效JSESSIONID覆盖
使用时机
一般用户在登录web项目时, 会将用户信息存储在session中, 供用户的其他请求使用
作用域
在session对象和JSESSIONID不失效的情况下为整个项目内
失效处理
将用户请求中的JSESSIONID和后台取得的JSESSIONID进行比对, 如果不同, 则session失效
// 创建或取得session对象
HttpSession session = req.getSession();
System.out.println(session.getId());
// 设置session的失效时间
session.setMaxInactiveInterval(3600);
// 设置session强制失效
session.invalidate();
// 存储数据
session.setAttribute("name", new Object());
// 取得数据
session.getAttribute("name");