• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
戈瑾
博客园    首页    新随笔    联系   管理    订阅  订阅
session对象

session对象

session在网络中被称为会话。由于HTTP协议是一种无状态协议,也就是当一个客户向服务器发出请求,服务器接收请求,并返回响应后,该连接就结束了,而服务器并不保存相关的信息。为了弥补这一缺点,HTTP协议提供了session。通过session可以在应用程序的Web页面间进行跳转时,保存用户的状态,使整个用户会话一直存在下去,直到关闭浏览器。但是,如果在一个会话中,客户端长时间不向服务器发出请求,session对象就会自动消失。这个时间取决于服务器,例如,Tomcat服务器默认为30分钟。不过这个时间可以通过编写程序进行修改。

 

1.创建及获取客户端的会话

 

(1)setAttribute()方法:将信息保存在session范围内

session.setAttribute(String name, Object obj)

参数说明:

  • name:用于指定作用域在session范围内的变量名

  • obj:保存在session范围内的对象

(2)getAttribute()方法:获取保存在session范围内的信息

session.getAttribute(String name)

参数说明:

  • name:指定保存在session范围内的关键字

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


 

2.移除session中指定的对象

session.removeAttribute()方法:移除存储在session会话中的对象

session.removeAttribute(String name)

参数说明:

  • name:指定作用域在session范围内的变量名。一定要保证该变量在session范围内有效,否则将抛出异常。

3.销毁session

session.invalidate()方法:销毁session

session.invalidate()

说明:session对象被销毁后,将不可以再使用该session对象了。如果在session被销毁后,再调用session对象的任何方法,都将报出Session already invalidated异常。


 

4.session会话超时管理

在应用session对象时应该注意session的生命周期。一般来说,session的生命周期在20~30分钟之间。当用户首次访问时将产生一个新的会话,以后服务器就可以记住这个会话状态,当会话生命周期超时时,或者服务器端强制使会话失效时,这个session就不能使用了。在开发程序时应该考虑到用户访问网站时可能发生的各种情况,例如用户登录网站后在session的有效期外进行相应的操作,用户会看到一张错误页面。这样的现象时不允许发生的。为了避免这种情况的发生,在开发系统时应该对session的有效性进行判断。

  session.getLastAccessedTime():返回客户端最后一次与会话相关联的请求时间

  session.getMaxInactiveInterval():以秒为单位返回一个会话内两个请求最大时间间隔

  session.setMaxInactiveInterval():以秒为单位设置session的有效时间

session.getLastAccessedTime();
session.getMaxInactiveInterval();
session.setMaxInactiveInterval(int arg);

参数说明:

    arg:seesion的有效期(单位:秒)

posted on 2021-10-16 14:11  戈瑾  阅读(408)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3