HTTP是一种无状态协议,也就是说客户端向服务器发送一个请求,服务端接收请求并响应,该对话就结束了,服务器并不保存相关的信息。
这个就是说你打开淘宝,登陆后浏览,之后再打开某一个网页,同一浏览器下,你发现再打开淘宝,你的登录信息又不见了。
这给用户带来了不便,为了弥补这一缺点,HTTP协议提供了session。
通过session可以在应用程序的Web页面间进行跳转时,使整个用户会话一直存在,保存用户的状态,直到关闭浏览器。
但是如果在一个会话中,客户端长时间不向服务器发送请求,session对象就会自动消失。具体时间取决于服务器。Tomcat默认为30分钟。不过这个时间可以通过编码改变。
1、创建及获取客户的会话
通过session对象的setAttribute()和getAttribute()方法可以存储或读取客户相关的信息。
session.setAttribute(String name,Object obj); //将信息保存到session范围内
session.getAttributr(String name); //获取session范围内的信息
2、从会话中移动指定的绑定对象
session.removeAttribute();
3、销毁session
虽然session对象经历一段时间后,会自动消失,但是有时候我们也需要手动销毁session。
session.invalidate();
4、会话超时的管理
用户登录网站后,在session的有效期外进行相应操作,用户会看到一张错误的界面。这样的情况是可以避免的。在session对象中,提供了设置会话生命周期的方法。
getLastAccessedTime(); //返回客户端最后一次与会话相关联的请求时间
getMaxInactiveInterval(); //以秒为单位,返回一个会话内两个请求的最大时间间隔
setMaxInactiveInterval(); //以秒为单位,设置session的有效时间