最近研究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]
分享到:
相关推荐
Tomcat是Apache软件基金会下的一个开源项目,是一个广泛使用的Java Servlet容器,特别因为其轻量级、高效能和稳定性而闻名。它实现了Java Servlet和JavaServer Pages(JSP)规范,使得开发者能够用Java语言来编写...
Tomcat7、Tomcat8和Tomcat9是不同版本的Tomcat,每个版本都有其特性和改进。 **Tomcat7**: Tomcat7是2011年发布的,它主要支持Java Servlet 3.0和JSP 2.2规范。这个版本引入了一些重要改进,包括增强的安全性、更...
Tomcat 7 和 Tomcat 8 是两个非常重要的版本,它们是Apache软件基金会开发的开源Java Servlet容器,主要用于运行Java Web应用程序。这两个版本都遵循Java EE(Enterprise Edition)规范,但各自具有不同的特点和改进...
tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat...
标题中的“tomcat7.0下的64位的tomcat7.exe 和tomcat7w.exe”指的是Apache Tomcat服务器在7.0版本中为64位操作系统提供的可执行文件。Tomcat是Apache软件基金会的一个开源项目,它是一个流行的Java Servlet容器,...
《深入理解Tomcat-Redis-Session-Manager:在Tomcat7和Tomcat8中的应用》 在现代Web应用程序开发中,session管理是一个至关重要的环节,它涉及到用户会话的持久化和跨请求的数据共享。传统的session管理方式在高...
**Idea Tomcat Runner插件详解** 在Java开发领域,IntelliJ IDEA是一款备受推崇的集成开发环境(IDE),尤其以其高效、智能的代码编辑功能和丰富的插件生态而著称。对于使用Java Web应用的开发者来说,Tomcat服务器...
### Tomcat打补丁方法详解 #### 一、前言 Apache Tomcat是一款开源的Servlet容器,它能够作为Web服务器独立运行,也可以与Apache等其他Web服务器配合使用。Tomcat因其简单性和灵活性,在中小型项目中得到了广泛...
Apache Tomcat 7.0是Java Servlet和JavaServer Pages(JSP)的开源Web应用程序服务器,由Apache软件基金会开发和维护。它是最流行的轻量级应用服务器,特别适合部署Java Web应用程序。Tomcat 7.0是7.x系列的一个版本...
《Tomcat深入剖析》这本书是理解Apache Tomcat服务器工作原理的宝贵资料,它由美国作者撰写并被翻译成中文,适合各个层次的开发者阅读。通过深入学习,读者能够对Tomcat的内部机制有全面而深入的理解,从而更好地...
《深入理解Tomcat-Juli与Juli-Adapters》 在Apache Tomcat服务器的运行环境中,`tomcat-juli.jar`和`tomcat-juli-adapters.jar`是两个至关重要的组件,它们对于日志管理和适配器功能起着关键作用。这两个JAR文件的...
Apache Tomcat是一款开源的Java Servlet容器,主要用于运行Java Web应用程序,包括JSP和Servlet。Tomcat8.5是其在2017年发布的一个稳定版本,提供了许多增强的功能和性能改进。在这个“apache-tomcat-8.5.23.tar.gz...
tomcat下满足一下条件的: 1、单独部署项目可以正常运行的情况。 2、多个项目一起部署仅部分系统可以使用。 解决办法:检查每个系统的web.xml配置文件,文件位置: Tomcat服务器下../webapps/项目名称/WEB-INF/web....
在Linux(CentOS7)操作系统中安装Apache Tomcat并将其设置为开机启动是一项常见的任务,特别是在部署Java web应用时。本篇文章将详细讲解如何在CentOS7上安装Tomcat8并将其配置为自启动服务。 首先,我们来了解...
《SmartTomcat插件在IDEA中的安装与使用详解》 SmartTomcat是专为IntelliJ IDEA(简称IDEA)设计的一款强大的Tomcat服务器管理插件,版本为3.8.5。它极大地简化了开发者在IDEA中部署、运行和调试Java Web应用程序的...
Apache Tomcat 7.0.52 是一个广泛使用的开源软件,它是一个实现了Java Servlet、JavaServer Pages(JSP)和Java EE的Web应用程序容器。这个版本是免安装的,这意味着用户无需经过复杂的安装过程,只需解压到指定目录...
在Java Web应用中,Tomcat是一个广泛使用的开源应用服务器,它提供了Servlet容器和JSP引擎等核心功能。在处理数据库连接方面,Tomcat提供了一种高效且可管理的数据源实现,名为“tomcat-jdbc数据源”。这个数据源是...
关于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-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-...
版本:apache-tomcat-10.1.23 Tomcat 10 是 Apache Tomcat 的一个版本,它引入了一些新的功能和改进。以下是一些关键的新增功能: 1. JDK 11 支持:Tomcat 10 支持 JDK 11,这意味着它可以用于 JDK 11 的项目中。 2....