JSP session对象

通过session可以在应用程序的Web页面间进行跳转时,保存用户的状态,使整个用户会话一直存下去,直到关闭浏览器。但是,如果在一个会话中,客户端长时间不向服务器发出请求,session对象就会自动消失,这个时间取决于服务器

创建及获取客户的会话

通过session对象可以存储或读取客户相关的信息,可以通过session对象的setAttribute()方法和getAttribute()方法实现

1. setAttribute()方法
该方法用于将信息保存在session范围内,语法格式如下:

session.setAttribute(String name, Object obj)

2. getAttribute()方法
该方法用于获取保存在session范围内的信息,语法格式如下:

session.getAttribute(String name);

Tip:getAttribute()方法返回值是Object类型,如果将获取到的信息赋值给String类型的变量,需要进行强制类型转换或者调用toString()方法

从会话中移动指定的绑定对象

对于存储在session的对象,如果像将其移除,可以使用session对象的removeAttribute()方法,语法格式如下:

session.removeAttribute(String name)
销毁session

对于某些实时统计在线人数的网站,每次都等session过期后才能统计出准确的人数,是远远不够的,因此还需要手动销毁session。

通过session对象的invalidate()方法可以销毁session,语法格式如下:

session.invalidate();
会话超时的管理

一般来说,session的生命周期在20-30分钟之间,如果用户登录网站后在session的有效期外进行相应操作,用户会得到一个错误页面,这是不允许的。

为了避免这种情况,在开发系统时应该对session的有效性进行判断

在session对象中提供了设置会话生命周期的方法,如下:

  • getLastAccessedTime():返回客户端最后一次与会话相关联的清秋时间
  • getMaxInactiveInterval():以秒为单位返回最后一个会话内两个请求最大时间间隔
  • setMaxInactiveInterval():以秒为单位设置session的有效时间

eg:

session.setMaxInactiveInterval(1000)  // 有效期为1000秒

你可能感兴趣的:(Java,Web,Java,JSP)