转载地址:http://developer.51cto.com/art/201106/269493.htm

Session对象是HttpSessionState的一个实例。该类为当前用户会话提供信息,还提供对可用于存储信息会话范围的缓存的访问,以及控制如何管理会话的方法。下面介绍设置session失效的几种方法。

在系统登录后,都会设置一个当前session失效的时间,以确保在用户长时间不与服务器交互,自动退出登录,销毁session。
具体设置很简单,方法有三种:

(1)在主页面或者公共页面中加入:session.setMaxInactiveInterval(900);参数900单位是秒,即在没有活动15分钟后,session将失效。

这里要注意这个session设置的时间是根据服务器来计算的,而不是客户端。所以如果是在调试程序,应该是修改服务器端时间来测试,而不是客户端。

(2)也是比较通用的设置session失效时间的方法,就是在项目的web.xml中设置

  1. <!-- 设置session失效,单位分 -->
  2. <session-config>
  3. <session-timeout>1</session-timeout>
  4. </session-config>

(3)直接在应用服务器中设置,如果是tomcat,可以在tomcat目录下conf/web.xml中找到<session-config>元素,tomcat默认设置是30分钟,只要修改这个值就可以了。

需要注意的是如果上述三个地方如果都设置了,有个优先级的问题,从高到低:(1)>(2)>(3)

在一般系统中,也可能需要在session失效后做一些操作,

(1)控制用户数,当session失效后,系统的用户数减少一个等,控制用户数在一定范围内,确保系统的性能。

(2)控制一个用户多次登录,当session有效时,如果相同用户登录,就提示已经登录了,当session失效后,就可以不用提示,直接登录了。

那么如何在session失效后,进行一系列的操作呢?

这里就需要用到监听器了,即当session因为各种原因失效后,监听器就可以监听到,然后执行监听器中定义好的程序就可以了。

监听器类为:HttpSessionListener类,有sessionCreated和sessionDestroyed两个方法

自己可以继承这个类,然后分别实现。

sessionCreated指在session创建时执行的方法

sessionDestroyed指在session失效时执行的方法

给一个简单的例子:

  1. public class SessionListener implements HttpSessionListener{
  2. public void sessionCreated(HttpSessionEvent event) {
  3. HttpSession ses = event.getSession();
  4. String id=ses.getId()+ses.getCreationTime();
  5. SummerConstant.UserMap.put(id, Boolean.TRUE); //添加用户
  6. }
  7. public void sessionDestroyed(HttpSessionEvent event) {
  8. HttpSession ses = event.getSession();
  9. String id=ses.getId()+ses.getCreationTime();
  10. synchronized (this) {
  11. SummerConstant.USERNUM--; //用户数减一
  12. SummerConstant.UserMap.remove(id); //从用户组中移除掉,用户组为一个map
  13. }
  14. }
  15. }

然后只需要把这个监听器在web.xml中声明就可以了

  1. <listener>
  2. <listener-class>
  3. com.demo.SessionListener
  4. </listener-class>
  5. </listener>

三种方法,到这里介绍完了,希望对你有帮助。

转载于:https://www.cnblogs.com/csshaw/p/3700825.html

【转】介绍设置Session失效的几种方法相关推荐

  1. 设置session失效的几种方法

    在系统登录后,都会设置一个当前session失效的时间,以确保在用户长时间不与服务器交互,自动退出登录,销毁session. 具体设置很简单,方法有三种: 在主页面或者公共页面中加入:session. ...

  2. win10定时关机c语言,Win10系统怎么定时关机?Windows10设置定时关机的两种方法

    最近,有位刚刚升级win10系统的用户反映自己在使用完电脑后经常会忘记手动关机,因此为了能够更好地保护电脑,希望在新系统中设置定时关机.这该如何操作呢?接下来,小编就向大家分享Windows10设置定 ...

  3. vue修改http请求头_vue-resouce设置请求头的三种方法

    本文主要介绍了vue-resouce设置请求头的三种方法,分享给大家,具体如下: 第一种:在Vue实例中设置 var vm = new Vue({ el:'#rrapp', data:{ showLi ...

  4. w10怎么共享计算机文件共享,win10系统如何共享文件夹?windows10设置共享文件夹的两种方法...

    最近,有一些刚刚安装win10正式版系统的用户反映自己因为工作需求想要在局域网内设置文件夹共享,却又不知道该如何操作.这该怎么办呢?接下来,小编就向大家介绍windows10正式版系统中快速设置共享文 ...

  5. web集群时session同步的3种方法

    web集群时session同步的3种方法 在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话 ...

  6. 设置环境变量的三种方法【转载】

    文章目录 1 设置环境变量的三种方法 1.1 临时设置 1.2 当前用户的全局设置 1.3 所有用户的全局设置 2 测试当前环境变量 3 脚本解析 3.1 打开的文件如下: 3.2 脚本解析说明 3. ...

  7. android设置自动开关机,Android开发之设置开机自动启动的几种方法

    Android开发之设置开机自动启动的几种方法 方法一: android:name=".AutoStartReceiver"为处理开机启动后所做操作的AutoStartReceiv ...

  8. 计算机被填充背景花束纹理在那,为艺术字设置纹理填充的两种方法

    Word2007系统中的纹理效果同样可以应用于艺术字的填充.文字表面添加纹理填充使文字看起来富于质感和立体感,word文档自带的已经有很多可供选择的漂亮纹理,用户在使用中根据其展示效果选择需要的纹理填 ...

  9. win10定时关机c语言,win10定时关机在哪?win10设置定时关机的三种方法

    win10定时关机在哪?很多win10用户可能还不会设置定时关机,下面脚本之家小编就给大家带来win10设置定时关机的三种方法,一起来看看吧! 方法一:Win10定时关机命令:shutdown –s ...

最新文章

  1. Cent0S 7上的图形安装
  2. linux基础知识和命令试题,Linux基础试题及答案
  3. 多年前的树莓派 B+ 重新工作
  4. xp系统的WINS服务器设置,WindowsXP系统设置
  5. c#.net——c#.net异步实现网页信息爬取
  6. 18.外部相机校准——刚体变换,变换和旋转,外参数矩阵 测验_3
  7. numpy合并两个ndarry或多个
  8. 【面试题】面试问红黑树,我脸都绿了。。
  9. 【翻译】如何在Ext JS 6中使用Fashion美化应用程序
  10. Android 布局系列篇
  11. Byshell:无进程无DLL无硬盘文件无启动项
  12. 超有趣的灵魂都在看什么?
  13. Google的黑科技你知道那些?
  14. 【知识产权基础】北邮国际学院大三下期末复习
  15. Postgres-XL 简析
  16. 【2】模块参数与模块之间的通信
  17. java基础最全(包括jdk,ecilpse各个软件的安装下载步骤以及下载地址)
  18. 查询每个学生的总成绩的各个科目的分数和姓名,按总成绩排序
  19. 【Linux学习笔记(十八)】之 压缩,打包 zip,gz, bz2, tar,tar.gz, tar.bz2
  20. 在win10/win7 64位系统上安装 hp laserjet 1015对应的打印机驱动

热门文章

  1. 嘉年华回顾丨阿里云吕漫漪带你一览POLARDB整体架构设计...
  2. 银行推出一年存1万连着存5年,利率4.5%,能存吗?
  3. 调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试调试
  4. 贷款审批到底会考核哪些内容?
  5. 哪些行为会影响个人征信?
  6. 男人是消耗品,女人是战利品?
  7. 无法复制winevt中的文件_u盘文件无法复制怎么解决 u盘文件无法复制解决方法【详细步骤】...
  8. c语言的有趣小程序,一个有趣的小程序
  9. 浙江等高等学校计算机,2010年浙江省高等学校计算机等级考试
  10. LeetCode 240. 搜索二维矩阵