前一段时间有好几个问题,提到怎么判断session是否过期。

接触jsp已经很久了,但是还真没有想过这个问题,当时也就没有找到一个满意的答案给人家。

当时,我提到一个方法,就是实现HttpSessionListener接口,然后在sessionDestroyed()方法中执行一些操作,表示session要过期了,因为这个方法是session.invalidate()之前监听器调用的方法。这个判断的方法显然不能让人满意。

我当时问了些人,但是也没有得到一个准确的答案。

正好偶然间看到,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,原因我想大家应该是显然的。

以上是个人拙见,希望大家指正。

原文转自:http://www.ltesting.net

一个判断session是否过期的小技巧_Java相关推荐

  1. 一个判断session是否过期的小技巧

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. Session一直是我们做web项目经常使用的,以前没太注意,这次又细致的看了下! 1.sessio ...

  2. go 自定义error怎么判断是否相等_Go Web 小技巧(二)GORM 使用自定义类型

    不知道大家在使用 Gorm 的时候,是否有遇到过复杂类型 ( map, struct...) 如何映射到数据库的字段上的问题? 本文分别介绍通过实现通用接口和 Hook 的方式绑定复杂的数据类型. 一 ...

  3. 前缀码的判断(个人摸索的小技巧)

    前缀码的判断 前缀码的判断小技巧 判断是否为前缀码,最重要是看队中的数的数的后尾加0或1是否会变为队中另外一个数,如果会变成,那么就是不是前缀码,如果会变成,那么就是前缀码 例如 { 0, 100, ...

  4. 好几张图片合成一个PDF,不能错过的小技巧!

    图片可以说是我们日常生活中就经常接触的文件啦,我们只要拥有摄像设备,在很多不同场景下都可以实现拍照自由.可是随着我们的图片文件的增多,我们会更多使用一些方法来更好保存这些比较珍贵的图像.比较常用的有把 ...

  5. 计算机里的硬盘怎么隐藏文件,如何在电脑上创建一个隐藏硬盘|电脑隐藏文件的小技巧...

    ‍ 如果我们想要保护一些重要的文件,可以通过加密.隐藏等等方法实现,但是这样总还是会让别人发现,如果可以创建一个隐藏的空间,然后把自己重要的数据放到里面,那应该就是很理想的方法了.所以接下来系统城小编 ...

  6. 如何在eplan里面画一个伺服驱动器_EPLAN几个使用小技巧,非常有用.doc

    EPLAN几个使用小技巧,非常有用 Eplan P8的一些小技巧??? 1.页名后缀由字母变数字? ??? 选项-设置-项目-管理-页-页名-子页标识??? ??? 2.修改自动连接电缆颜色???? ...

  7. python判断空文件夹_python小技巧—自动判断并删除目录下的空文件夹

    一.效果展示 首先我在 E:\新建文件夹\test 创建了64个文件夹 然后我在1-10文件夹中创建一个新文件夹(此时他们就不是空文件夹了) 此时我们执行代码 如果此时目录就只剩下新建文件夹1-10 ...

  8. 安卓手机卡顿怎么解决_手机卡顿?分享一个解决安卓手机卡顿的小技巧

    用安卓手机的小伙伴们都会发现一个现象,几乎所有的安卓手机用久了都会卡,哪怕是到了今天,安卓的手机运存已经达到了惊人的12GB,当后台运行的程序过多的时候还是惠有一丝丝的卡顿,这是为什么呢? 其实其归根 ...

  9. 一个提升敲代码效率的小技巧

    输入法通常默认使用shift快捷键来切换中英文输入,而在敲代码的过程中,我们经常会用到shift来输入括号和运算符等,一不小心常常会切换掉输入法,下次输入突然变成中文符号,又得删了切换回英文重新输入. ...

最新文章

  1. github不用输入用户密码即可登录
  2. centos 卸载ffmpeg_Linux下ffmpeg的完整安装
  3. 使用Java 8进行分组,转换和归约
  4. Pandas数据可视化工具:图表工具-Seaborn
  5. windows10完全删除mysql_Windows 10系统下彻底删除卸载MySQL的方法教程
  6. 解决Surface Pro外接移动硬盘经常睡眠的问题
  7. Linux 基本命令(六)--pwd 常用命令
  8. 利用CAM350快速完成拼板
  9. Latex三线表格制作及相关问题
  10. 热门好用的IP归属地API
  11. 复杂边坡的ansys三维建模
  12. Ubuntu 22.04下安装配置rime五笔输入法
  13. 生物信息学仿真软件SInC的初步使用教程
  14. RK3568平台开发系列讲解(安卓篇)WakeLock分析
  15. 小白学 Python(1):开篇
  16. 单核到多核的转变无疑是沧桑巨变
  17. 国内从事视觉领域的公司
  18. Android Studio的报错提示:SSL peer shut down incorrectly
  19. 阿里云下载镜像失败:ERROR: certificate common name “img.ucdl.pp.uc.cn” doesn’t match requested host name “mirr
  20. Linux基础知识问题解答

热门文章

  1. django url 中的namespace详解
  2. 求一个数的二进制逆序之后所对应的数
  3. JS 中对象的简单创建和继承
  4. Linux 下安装配置 JDK7
  5. 如何从Mac OS X连接 ×××
  6. 【Programming Clip】点分十进制IP和长整型转换
  7. ALinq 让Mysql变得如此简单
  8. 尽快更新!Chrome 修复两个已遭在野利用的 0day
  9. 安全机构未清理 PDF 文件,暴露敏感信息
  10. 刚刚GitHub 收购 npm,旨在提升开源软件供应链安全