Session:在多次请求和响应(一次会话)中间利用服务端共享数据
HttpSession session = request.getSession();
方法 | 描述 |
---|---|
Object getAttribute(String name) | |
void setAttribute(String name, Object value) | |
void removeAttribute(String name) |
原理
Session在服务器内存中有唯一的ID,这个ID会通过cookie的方式保存客户端中。在cookie中存的key是"JSESSIONID"。
Cookie c = new Cookie(“JSESSIONID”,session.getId());
c.setMaxAge(60*60);
response.addCookie©;
生命周期
Session默认有效时间是30分钟,可以在配置里修改。
<session-config>
<session-timeout>30</session-timeout>
</session-config>
客户端关闭,服务器不关闭,两次Session不同。想要相同要通过cookie,在原理里有讲
客户端不关闭,服务器关闭,两次Session不同。想要相同要将Session序列化到硬盘,Tomcat自动完成。
大小与数量
可以存放任意类型,任意数量数据