Session
对于服务器而言,每一个连接到它的客户端都是一个 session
一、Session的作用
Session 的作用就是为了标识一次会话,或者说确认一个用户;并且在一次会话(一个用户的多次
请求)期间共享数据。我们可以通过 req.getSession() 方法,来获取当前会话的 session 对象。
HttpSession session = req.getSession();
二、作为域对象
Session 用来表示一次会话,在一次会话中数据是可以共享的,这时 session 作为域对象存在 .
三个操作属性的方法
setAttribute(name,value)
getAttribute(name)
removeAttribute(name)
数据存储在 session 域对象中。
三、Session的销毁
1) 、默认时间到期
当客户端第一次请求 servlet 并且操作 session 时,session 对象生成,Tomcat 中 session 默认的
存活时间为 30min ,一旦有操作,session 会重新计时 。
2)、 自己设定到期时间
HttpSession session = req.getSession();
session.setMaxInactiveInterval(5);//单位为秒
3)、 立即失效
session.invalidate();
4)、关闭浏览器
从前面的 JESSION 可知道,session 的底层依赖 cookie 实现,并且该 cookie 的有效时间为关闭浏
览器,从而 session 在浏览器关闭时也相当于失效了(因为没有 JSESSION 再与之对应)。
5)、关闭服务器
当非正常关闭服务器时,session 销毁;
当正常关闭服务器时,Session 将被序列化到磁盘上,在工作空间 work 目录下的 SESSION.ser 文件中,
如果对象被保存在了 Session 中,服务器在关闭时要把对象序列化到硬盘,
这个对象就必须实现 Serializable 接口,下次启动服务时,自动加载到内存。