Jsp的session对象

Jsp的session对象

1.session对象是什么

是一个服务器默认生成的对象。

什么时候创建?

首次发出请求时,服务端产生session对象,并将它的唯一ID通过Cookie在响应时发送给客户端(JSESSIONID)。

Jsp的session对象

客户端二次请求时,会将客户端本地Cookie(包含服务端发送的JSESSIONID)发送给服务端,服务端根据JSESSIONID就可以知道这个请求与第一次的请求来自于同一个客户端,这就是JSP实现会话跟踪的原理。

Jsp的session对象

关闭会话跟踪

< %@page session = false % >

再次进行请求时,发现服务端响应时,没有将JSESSIONID通过Cookie发送给客户端。

通过上述指令,客户端不会生成session对象

Jsp的session对象

2.session的常用方法

绑定对象

public void setAttribute(String name, Object value) 
使用指定的名称和值来产生一个对象并绑定到session中

public Object getAttribute(String name)
返回session对象中与指定名称绑定的对象,如果不存在则返回null

public void removeAttribute(String name)
移除session中指定名称的对象

在一次会话(打开浏览器-->关闭浏览器)中,绑定到session中的对象一直有效(除非使session无效,或者移除绑定到session中的对象)

也就是说,一次会话中,任意的页面中(本项目),都可以拿到session中绑定的对象。最常见的一个例子:保持登录状态,直到关闭浏览器或者手动退出(使session无效)

使session无效的方法

public void invalidate()
使整个session无效(例如退出登陆)

public void setMaxInactiveInterval(int interval)
设置最大非活动时间,参数是秒。
一段非活动时间后,session自动失效

配置web.xml文件

  <session-config>
    <session-timeout>15</session-timeout>
  </session-config>

这里的单位是分钟,也就是说如果客户端15分钟处于非活动状态,session自动失效