在一般系统登录后,都会设置一个当前session失效的时间,以确保在用户长时间不与服务器交互,自动退出登录,销毁session

具体设置的方法有三种:

1.在web容器中设置(以tomcat为例)

在tomcat-7.0\conf\web.xml中设置,以下是tomcat7.0中默认配置:

tomcat默认session超时时间为30分钟,可以根据需要修改,负数或0为不限制session失效时间

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

2.在工程的web.xml中设置

这里的15是指15分钟失效

3.通过java代码设置

session.setMaxInactiveInterval(30*60);//以秒为单位,即在没有活动30分钟后,session将失效

三种方式优先等级:1 < 2 < 3

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

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

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

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

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

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

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

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

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

例子:

1 public class OnlineUserListener implementsHttpSessionListener{2 public voidsessionCreated(HttpSessionEvent event){3 HttpSession session=event.getSession;4 String id=session.getId()+session.getCreationTime();5 SummerConstant.UserMap.put(id,Boolean.TRUE);//添加用户

6 }7

8 public voidsessionDestroyed(HttpSessionEvent event){9 HttpSession session=event.getSession;10 String id=session.getId()+session.getCreationTime();11 synchronized(this){12 SummerConstant.USERNum--;//用户数减-

13 SummerConstant.UserMap.remove(id);//从用户组中移除掉,用户组为一个map

14 }15 }16 }

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

com.demo.OnlineUserListener

java获取session失效时间_Java设置session超时(失效)的时间相关推荐

  1. 1114Selenium web自动化测试经验分享-设置网页超时加载时间set_page_load_timeout()

    最开始学习web自动化测试就遇到一个小困扰,有时候设计的用例可能会打开新浪.腾讯这些网站,等待网页加载完成都要小半分钟.最近重拾web自动化测试,又遇到这个困扰. 个人博客:https://blog. ...

  2. java 设置session超时_Java设置session超时(失效)的三种方式

    转自:http://blog.csdn.net/hu_shengyang/article/details/8021435 1.      在web容器中设置(此处以tomcat为例) 在tomcat- ...

  3. java设置过期时间_java设置session过期时间的实现方法

    本文实例讲述了java设置session过期时间的实现方法,分享给大家供大家参考.具体实现方法如下: 1.Timeout in the deployment descriptor (web.xml) ...

  4. java 获取ftp路径_Java Source 根据输入 ftp 地址 账号 密码 路径 读取提供路径下的文件...

    参考上面的: 引用jar包  ganymed-ssh2-build210.jar jar 包放在   $ORACLE_HOME/sqlj/lib  执行loadjava命令 加载jar包 路径下 执行 ...

  5. php 设置session目录,php设置session保存目录的方法

    php设置session保存目录的方法 发布时间:2020-08-01 14:33:16 来源:亿速云 阅读:74 作者:清晨 小编给大家分享一下php设置session保存目录的方法,希望大家阅读完 ...

  6. php设置session 生命周期,设置session的生命周期(php)

    PHP中,Session变量保存在服务器端(默认以文件格式保存),而Session ID以cookie形式保存在客户端. 销毁session的方法有2种 第一种是通过程序 session_destor ...

  7. java 获取当前年_java中的反射(三) - kelexin

    目录一.反射1.class类2.访问字段3.调用方法4.调用构造方法5.获取继承对象6.动态代理二.sping中的反射 本篇转自:本篇内容spring中的反射 java中的反射(一): java中的反 ...

  8. java word 纸张大小_Java 设置 Word 页边距, 页面大小, 页面方向, 页面边框

    Java 设置 Word 页边距, 页面大小, 页面方向, 页面边框 本文将通过 Java 示例介绍如何设置 Word 页边距 (包括上, 下, 左, 右), 页面大小 (可设置 Letter/A3/ ...

  9. java 获取区间随机数_Java获取随机数的3种方法

    主要介绍了Java获取随机数的3种方法,主要利用random()函数来实现 方法1 (数据类型)(最小值+Math.random()*(最大值-最小值+1))例: (int)(1+Math.rando ...

最新文章

  1. Python自动化运维之5、内置函数
  2. golang defer 关闭文件 报错file may have nil or other unexpected value as its corresponding error
  3. python模块引用
  4. 性能调优工具类TimeStone
  5. P4597-序列sequence【堆】
  6. C++:17---函数指针
  7. ACL’22 | 为大模型定制的数据增强方法FlipDA,屠榜六大NLU 数据集!
  8. Python数据结构与算法(五)--链表
  9. Docker配置国内镜像加速
  10. 爬虫入门五(Phantomjs和selenium)
  11. VC2008 ATL控件 去掉运行库依赖
  12. Ubuntu PIL 安装
  13. 项目风险管理课程学习
  14. Jquery实现验证码功能 完美效果 jsp php 页面均可调用
  15. SQL Server中的窗口函数
  16. 阿里:车联网将成新网络入口
  17. 决策树算法与python——心脏病预测
  18. Yolov5学习笔记(1)——训练出自己的模型
  19. Gartner发布《2023年十大战略技术趋势》
  20. 7000字详解数据指标体系如何从设计到落地

热门文章

  1. vscode和idea默认黑色界面调整鼠标光标颜色
  2. 《Kafka权威指南(第二版)》内容摘要
  3. 自己动手将艺术照变成证件照
  4. 基于MindStudio的3D人体关键点检测
  5. VMware Workstation 16.2.5 Pro Unlocker OEM BIOS for Linux
  6. 软件设计文档示例模板,万能的软件设计文档模板
  7. Java彩球屏保的制作
  8. CC2530串口控制LED灯奇怪玩法
  9. cs231n assignment答案
  10. 中间件-------activityMQ整合springboot