有没有办法在 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/