HTTP协议使用的是无状态的连接
对容器而言,每一个请求都来自于一个新的客户
服务器可以为客户端创建并维护一个Session对象,用于存放数据。 Object
在创建Session对象的同时,服务器将会为该 Session对象产生一个唯一编号,这个编号称之为SessionID
服务器以Cookie的方式将SessionID存放在客户端。
当浏览器再次访问该服务器时,会将SessionID作为Cookie信息带到服务器,服务器可以通过该SessionID检索到以前的Session对象,并对其进行访问
1:发送请求
2:服务器端创建session对象
3:发送保存了JSessionId的cookie存储于客户端
4:再次请求的时候就携带了JSessionId
5:通过令牌sessionId找到相对应的
setAttribute(java.lang.String, java.lang.Object):在Session对象中用一个名字绑定一个对象。
getAttribute(java.lang.String):通过名字获取Session对象中保存的对象。
removeAttribute(java.lang.String):在Session中删除与一个名字对应的对象。
getCreationTime():返回第一次创建会话的时间。
getLastAccessedTime():返回容器最后一次得到该会话ID的请求时间。
setMaxInactiveInterval(int interval):对于会话指定客户请求的最大间隔时间,以秒为单位。-1表示永不过期
getMaxInactiveInterval(int interval):返回客户请求的最大间隔时间。
invalidate():会话结束,当前存在在会话中的所有会话属性也会解除绑定。
getId():此方法返回每个session唯一的标识
销毁session
设置会话超时。
在Session对象上调用invalidate()方法。
服务器重启
设置session时间
<session-config>
<session-timeout>15</session-timeout>
</session-config>
实例:
保存状态:
使用: