1.session其实就是一个Map,key=value,通过session.getAttribute("name");获得session中设置的参数

2.session的过期时间是从什么时候开始计算的?是从一登录就开始计算还是说从停止活动开始计算?

从session不活动的时候开始计算,如果session一直活动,session就总不会过期。从该Session未被访问,开始计时; 一旦Session被访问,计时清0;

3.设置session的失效时间

a)web.xml中

30

b)在程序中手动设置

session.setMaxInactiveInterval(30 * 60);//设置单位为秒,设置为-1永不过期

c)tomcat也可以修改session过期时间,在server.xml中定义context时采用如下定义:

4.如何判断session过没过期

1.一个是根据 if(session.getAttribute('user')==null)判断是否为空

2.另一个判断session不为空的方法:

request.getSeesion(boolean)方法,这个方法里面传了一个boolean值,

这个值如果是true,那么如果当前的request的session不可用,那么就创建新的会话,如果存在就返回当前的会话。

如果参数是false,那么在request的当前会话不存在的时候就返回null。

这样我们就可以很容易的联想到这个所谓的request的当前会话是否存在和session过期的联系,所以我们就可以“近似地”认为session不存在就是session过期了,那么我们就可以很

容易地判断session是否过期了。方法如下:

if(request.getSession(false)==null)

System.out.println("Session has been invalidated!");

else

System.out.println("Session is active!");

上面有一个“近似地”字眼,也就是说存在特别情况。这个特殊情况就是第一次请求还没有创建会话的时候,那么用这个方法返回的仍然是null,原因我想大家应该是显然的。

也有很多人觉得应该使用javax.servlet.http.HttpSessionBindingListener接口来实现类似功能。

他们的意思是当session创建的时候session.setAttribute("isActive","yes");只要session没有过期,那么我们就可以session.getAttribute("isActive")==null来判断,但是我们如果在过

期以后就不能用这个办法了,因为我们使用过期的session.getAttribute()方法就会抛出java.lang.IllegalStateException,这时候我们就只能通过捕捉这个异常来进行判断,这就会打

乱我们整个程序的逻辑流程。

当然我们也可以在session过期的时候这样处理,在HttpSessionBindingListener接口的onValueUnbound()方法里面通过设置一个flag来标志session已过期,之后盘都都使用这个flag,

那么这个flag一定是要放在application里面,application是HttpServletContex类的对象,所以我们必须对这个flag加入是哪个session过期的信息,这样一来整个的过程就十分麻烦。

关于用监听器实现我要补充一点,我的方法是站在某一个session的角度来实现的。如果说要监测多个session就应该站在application的角度来分析,这时候的最佳选择

就是HttpSessionBindingListener或者HttpSessionListener

mysql会话过期_Session过期、失效时间相关推荐

  1. MySQL的用户密码过期功能详解

    MySQL的用户密码过期功能详解 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 先说明两个术语. Payment Ca ...

  2. mysql登录跳转不了_Session过期后实现自动跳转登录页面

    最近研究如果用原生的filter来判别session存在否或者过期否.来跳转到的页面实例,下载来展示代码. 因为顾虑器是每次请求能会进入的,所以可以设置了,进行拦截判断 1.配置web.xml bac ...

  3. MySQL二进制日志文件过期天数设置说明

    今天在处理业务库中二进制文件的时候,想更改二进制文件的过期天数,发现日期如果设置成2位以上的整数.都会出现如下的警告.不能成功的设置过期日期天数.MySQL版本从5.1到5.5都是一样的. mysql ...

  4. mysql 5.7 密码过期_mysql5.7 密码过期了怎么办

    mysql5.7 密码过期了怎么办 发布时间:2020-05-08 14:11:09 来源:亿速云 阅读:148 作者:三月 下文主要给大家带来mysql5.7 密码过期了怎么办,希望这些文字能够带给 ...

  5. mysql设置用户永不过期_在Navicat Premium中管理MySQL用户 - 第2部分:创建新用户

    第2部分:创建新用户 在第1部分中,我们学习了如何使用Navicat Premium用户管理工具保护MySQL root帐户.本篇文章将讨论设置新用户的帐户详细信息,帐户限制和SSL设置. The G ...

  6. Mysql修改binlog日志过期时间

    1.临时生效 # 查看默认设置的过期时间 show variables like "%expire_logs%"; # 设置保留15天 set global expire_logs ...

  7. mysql判断产品是否过期_7个方法教你判断打开的产品是否已过期

    原标题:7个方法教你判断打开的产品是否已过期 大多数时候你可能不会留意到化妆品上的商标或成分表,但你也许会注意到一个小符号,一般在包装的角落里一个看上像打开盖子的罐子或者瓶子,上面标有M和数字,例如6 ...

  8. php session 过期,session过期是什么意思

    session过期是指用户会话与服务器连接时长时间没有动作,或者是规定时间超过了,此时用户会话session会被清空或回收.session过期时间一般设置为30分钟. session过期什么意思? s ...

  9. mysql会话和事务_MySQL事务熟练使用就够?和腾讯大佬的一席对话,原来考点都在这些方面!...

    苍茫大地一剑尽挽破,何处繁华笙歌落. 难道这普天之下尽没我容纳之处?为何这面试官总要与我争风相对,这不是难为人吗? 每次经历痛领悟,总会悠然南山下,独自愁楚.记录心中一片大海,唯有独自努力,方能实现行 ...

最新文章

  1. qt中定时器Timer的使用
  2. PHP5 $this self parent static的区别
  3. 求助!!让我郁闷纠结恨的状况!!!
  4. 用 Flask 来写个轻博客 (32) — 使用 Flask-RESTful 来构建 RESTful API 之一
  5. html中表单涉及的标记有哪几个,HTML学习笔记--表单标记
  6. Java Arrays.asList()方法详解
  7. 【2014年计划】工作,学习两不误
  8. 2 未匹配到任何借口_拼多多【关键词精确匹配溢价】给你想要的精准流量,让你订单暴增的秘诀...
  9. oracle查看表的命令,Oracle常用查看表结构命令
  10. leetcode 1128. 等价多米诺骨牌对的数量
  11. [转载] Java static关键字与static{}语句块
  12. ISO 审批通过 Ada 2012 语言标准
  13. PHP上传图片重命名6种方案
  14. python中数据处理的格式,json.csv txt excel
  15. 使用Hyperlegder Fabric体验区块链智能合约的乐趣----编写一个简单的BookstoreApp(上)...
  16. unity的Rotation值如何修改
  17. urllib库下载网页源码,图片,视频测试
  18. 算法刷题——字符串| 给定一个字符类型数组chas[],判断chas中是否所有的字符都只出现过一次
  19. Register slice
  20. win7总是显示计算机内存不足怎么办,虚拟内存不足,教您电脑提示虚拟内存不足怎么办...

热门文章

  1. 时钟周期,机器周期,指令周期的相互关系
  2. 喜讯+1!袋鼠云数栈技术团队获“2022年度优秀开源技术团队”
  3. win10下pytorch-gpu环境配置
  4. return 0 与 return 1 与 return -1的用法含义
  5. Jpa数据操作以及@Query和@Modifying注解使用
  6. js点击a标签,打开新窗口预览图片
  7. JavaScript 实现字符串驼峰式与下划线式互相转换
  8. 零Python编程基础,如何在10分钟内合并1000个Excel表格?
  9. 8. 字符串转换整数 (atoi)(leetcode力扣算法 - java / rust)
  10. ionic4使用QR Scanner插件实现二维码、条形码扫描功能