HttpSession对象
1、Session的作用
Session的作用就是为了标识一次会话,或者说确认一个用户。
并且在一次会话(一个用户的多次请求)期间共享数据
可以通过req.geySession()方法,来获取当前会话的session对象。
2、JSESSIONID
SessionId是为了标识一次会话的唯一标志。
每当一次请求到达服务器,如果开启了会话(访问了session),服务器第一步会查看是否从客户端回传一个名为JSESSONID的cookie:
1)、如果JSESSIONID不存在,则服务器会新建session对象,并重新标识;
2)、如果JSESSIONID存在,服务器会将客户端回传过来的ID去服务器中查找与之对应的session对象。
1))、如果没找到,则服务器会新建session对象,并重新标识;
2))、如果找到,则获取session对象,响应给客户端
3、Session域对象
通过setAttribute(name,value); 方法向域对象中添加数据。
通过getAttribute(name); 从域对象中获取数据。
通过removeAttribute(name);从域对象中移除数据。
4、Session的失效
1)、达到最大不活动时间
Tomcat中默认最大不活动事件为30min。
可以自行修改默认不活动时间,但不建议。
2)、自己设定过期时间
通过session.setMaxInactiveInterval(int);来设定session的最大不活动时间,单位为秒。
通过getMaxInactiveInterval()方法来查看当前session对象的最大不活动时间。
3)、立即失效
手动销毁session对象
session.invalidate();
4)、关闭浏览器
session的底层依赖于cookie,默认关闭浏览器失效。
5)、关闭服务器
非正常关闭服务器才会失效。
如果是正常关闭服务器,session会被钝化到本地磁盘,下次访问时会从本地磁盘中活化出来。