在服务器终止时调用sessionDestroyed()

Hli*_*lib 3 java tomcat servlets servlet-listeners

为什么sessionDestroyed()只在无效或超时时调用,而在服务器终止时不调用?当服务器终止时,如何在每个会话上进行一些操作?

dce*_*chi 5

Java Servlet 3.0规范规定HttpSessionListener.sessionDestroyed()应在服务器/应用程序关闭时调用(第11.3.4节" 关闭时的通知"):

在应用程序关闭时,将通过与上下文侦听器通知之前的会话侦听器通知,以与其声明相反的顺序通知侦听器.在上下文侦听器收到应用程序关闭通知之前,必须通知会话侦听器会话失效.

Tomcat 7实现了Java Servlet 3.0规范,应该支持您的用例.