`
zhu_chen001
  • 浏览: 22170 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

关于Tomcat的LastAccessedTime

阅读更多
最近研究WEB页面锁屏,发现一个方法就是去后台验证session的LastAccessedTime和当前时间比较是否超过最大的约束。但是关键是每次去验证LastAccessedTime后会发现LastAccessedTime修改成当前时间了。就是说每次的AJAX验证都会激活LastAccessedTime更新,这样反而达不到超时锁屏的目的了。 看了Tomcat的源代码发现我们的sessaion的实例都是StandardSessionFacade,而StandardSessionFacade里面的真正的seesion实例是StandardSession,他的LastAccessedTime是保护私有与,没有显示的set方法,无奈只能霸王硬上弓了,反射修改吧。 [code="java"] public static void keepSessionLastAccessTime(StandardSessionFacade session) { try { long oldTime = session.getLastAccessedTime(); Field field = StandardSessionFacade.class.getDeclaredField("session"); boolean old1 = field.isAccessible(); field.setAccessible(true); StandardSession ss = (StandardSession)field.get(session); Field thisAT = StandardSession.class.getDeclaredField("thisAccessedTime"); boolean old2 = thisAT.isAccessible(); thisAT.setAccessible(true); thisAT.setLong(ss, oldTime); // 访问限制倒回 field.setAccessible(old1); thisAT.setAccessible(old2); } catch (SecurityException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (Throwable e) { e.printStackTrace(); } } [/code]
分享到:
评论
1 楼 hll127 2018-12-17  
我搞定了,感谢提供思路,另外,要设置一下org.apache.catalina.session.StandardSession.LAST_ACCESS_AT_START为true,否则应该不行。我的tomcat版本是7.0.64,源码中判断了这个值,为true才把thisaccesstime设置为lastaccesstime,这方法才能奏效。不会的联系我57454144。

相关推荐

    tomcat7tomcat8tomcat9

    Tomcat是Apache软件基金会下的一个开源项目,是一个广泛使用的Java Servlet容器,特别因为其轻量级、高效能和稳定性而闻名。它实现了Java Servlet和JavaServer Pages(JSP)规范,使得开发者能够用Java语言来编写...

    tomcat7,tomcat8,tomcat9

    Tomcat7、Tomcat8和Tomcat9是不同版本的Tomcat,每个版本都有其特性和改进。 **Tomcat7**: Tomcat7是2011年发布的,它主要支持Java Servlet 3.0和JSP 2.2规范。这个版本引入了一些重要改进,包括增强的安全性、更...

    tomcat 7 和 tomcat 8

    Tomcat 7 和 Tomcat 8 是两个非常重要的版本,它们是Apache软件基金会开发的开源Java Servlet容器,主要用于运行Java Web应用程序。这两个版本都遵循Java EE(Enterprise Edition)规范,但各自具有不同的特点和改进...

    tomcat5.5tomcat最新客户端

    tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat...

    tomcat7.0下的64位的tomcat7.exe 和tomcat7w.exe

    标题中的“tomcat7.0下的64位的tomcat7.exe 和tomcat7w.exe”指的是Apache Tomcat服务器在7.0版本中为64位操作系统提供的可执行文件。Tomcat是Apache软件基金会的一个开源项目,它是一个流行的Java Servlet容器,...

    tomcat-redis-session-manager的jar包-包含Tomcat7和Tomcat8

    《深入理解Tomcat-Redis-Session-Manager:在Tomcat7和Tomcat8中的应用》 在现代Web应用程序开发中,session管理是一个至关重要的环节,它涉及到用户会话的持久化和跨请求的数据共享。传统的session管理方式在高...

    idea tomcat runner插件

    **Idea Tomcat Runner插件详解** 在Java开发领域,IntelliJ IDEA是一款备受推崇的集成开发环境(IDE),尤其以其高效、智能的代码编辑功能和丰富的插件生态而著称。对于使用Java Web应用的开发者来说,Tomcat服务器...

    tomcat打补丁方法

    ### Tomcat打补丁方法详解 #### 一、前言 Apache Tomcat是一款开源的Servlet容器,它能够作为Web服务器独立运行,也可以与Apache等其他Web服务器配合使用。Tomcat因其简单性和灵活性,在中小型项目中得到了广泛...

    Tomcat7.0 tomcat最新版本

    Apache Tomcat 7.0是Java Servlet和JavaServer Pages(JSP)的开源Web应用程序服务器,由Apache软件基金会开发和维护。它是最流行的轻量级应用服务器,特别适合部署Java Web应用程序。Tomcat 7.0是7.x系列的一个版本...

    Tomcat深入剖析pdf+源码(Tomcat运行原理)

    《Tomcat深入剖析》这本书是理解Apache Tomcat服务器工作原理的宝贵资料,它由美国作者撰写并被翻译成中文,适合各个层次的开发者阅读。通过深入学习,读者能够对Tomcat的内部机制有全面而深入的理解,从而更好地...

    tomcat-juli.jar和tomcat-juli-adapters.jar

    《深入理解Tomcat-Juli与Juli-Adapters》 在Apache Tomcat服务器的运行环境中,`tomcat-juli.jar`和`tomcat-juli-adapters.jar`是两个至关重要的组件,它们对于日志管理和适配器功能起着关键作用。这两个JAR文件的...

    apache-tomcat-8.5.23.tar.gz 【Tomcat服务器,Tomcat8.5 linux版】

    Apache Tomcat是一款开源的Java Servlet容器,主要用于运行Java Web应用程序,包括JSP和Servlet。Tomcat8.5是其在2017年发布的一个稳定版本,提供了许多增强的功能和性能改进。在这个“apache-tomcat-8.5.23.tar.gz...

    关于tomcat部署多系统仅部分系统正常说明及解决办法

    tomcat下满足一下条件的: 1、单独部署项目可以正常运行的情况。 2、多个项目一起部署仅部分系统可以使用。 解决办法:检查每个系统的web.xml配置文件,文件位置: Tomcat服务器下../webapps/项目名称/WEB-INF/web....

    Linux(CentOS7)安装Tomcat与设置Tomcat为开机启动项(tomcat8为例)

    在Linux(CentOS7)操作系统中安装Apache Tomcat并将其设置为开机启动是一项常见的任务,特别是在部署Java web应用时。本篇文章将详细讲解如何在CentOS7上安装Tomcat8并将其配置为自启动服务。 首先,我们来了解...

    SmartTomcat-3.8.5.zip

    《SmartTomcat插件在IDEA中的安装与使用详解》 SmartTomcat是专为IntelliJ IDEA(简称IDEA)设计的一款强大的Tomcat服务器管理插件,版本为3.8.5。它极大地简化了开发者在IDEA中部署、运行和调试Java Web应用程序的...

    apache-tomcat-7.0.52 解压免安装版tomcat7

    Apache Tomcat 7.0.52 是一个广泛使用的开源软件,它是一个实现了Java Servlet、JavaServer Pages(JSP)和Java EE的Web应用程序容器。这个版本是免安装的,这意味着用户无需经过复杂的安装过程,只需解压到指定目录...

    tomcat-jdbc数据源所需jar包tomcat-jdbc.jar+tomcat-juli.jar

    在Java Web应用中,Tomcat是一个广泛使用的开源应用服务器,它提供了Servlet容器和JSP引擎等核心功能。在处理数据库连接方面,Tomcat提供了一种高效且可管理的数据源实现,名为“tomcat-jdbc数据源”。这个数据源是...

    tomcat9.0.83压缩包

    关于Tomcat 9.0.83与Jenkins的部署,以下是一些关键知识点: 1. **环境准备**:确保系统已安装Java Development Kit (JDK),因为Tomcat和Jenkins都需要Java运行环境。 2. **解压Tomcat**:将下载的`apache-tomcat-...

    tomcat-redis-session-manager-1.2-tomcat-7-java-7

    tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-...

    Tomcat 10 软件及其源码

    版本:apache-tomcat-10.1.23 Tomcat 10 是 Apache Tomcat 的一个版本,它引入了一些新的功能和改进。以下是一些关键的新增功能: 1. JDK 11 支持:Tomcat 10 支持 JDK 11,这意味着它可以用于 JDK 11 的项目中。 2....

Global site tag (gtag.js) - Google Analytics