Java Web应用程序 "Event Listener for Expired Sessions"

标签 java tomcat

有没有办法在 HttpServletRequest Session 过期后运行 Java 代码?

如果 session 过期,我需要进行数据库调用。

回调和监听器将可用。

最佳答案

javax.servlet.http.HttpSessionListener

Jakarta Servlet specification提供 session 过期的监听器接口(interface):HttpSessionListener .

您编写一个类来实现该接口(interface)上的两个方法。使用注释 @WebListener 标记您的类让你的类由你的 servlet container 自动实例化。当 session 过期时,Servlet 容器会自动调用sessionDestroyed类实例上的方法。

在那里sessionDestroyed方法,您可以执行任何您想要的操作,例如写入数据库。


Jakarta Servlet 规范提供了其他几个这样的监听器接口(interface)。您可以看到它们列在 @WebListener 上。注释的 Javadoc。

特别是,ServletContextListener为您提供 Web 应用程序(Servlet 术语中的“上下文”)启动时以及 Web 应用程序关闭时的钩子(Hook)。因此您可以执行应用程序范围内的设置和拆卸操作。这些操作将进入您在实现该接口(interface)的类中编写的两个方法。

关于Java Web应用程序 "Event Listener for Expired Sessions",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62576658/

相关文章:

java - 如何在 Spring 非托管类上使用@Value

tomcat - 错误显示时间过滤器 kibana 3 (utc)

tomcat - 在 Tomcats Server.xml 中使用占位符

java - 挂起的 JVM 占用 100% CPU

Java 错误 : Only a type can be imported. XYZ 解析为一个包

java - 在 Swing UI 中嵌入 webkit 的真正快速和肮脏的解决方案?

java - 带 Tomcat 的 Eclipse $$EnhancerByCGLIB$$ 'Unable to install breakpoint'

java - 如何在多线程 HTTP Client 环境中使用基本身份验证?

java - 实现相同接口(interface)的多个类的相同方法

java - Web 服务器属性加载