我如何 运行 会话事件 Onclose/onDestroy 中的方法?

How do I run a method in the session event Onclose/onDestroy?

我和 JSP 一起工作。
我需要 运行 每次会话关闭时的方法,即每当浏览器关闭时。
我该怎么做?

您必须在 javascript.see 中检测浏览器关闭事件 Trying to detect browser close event 才能检测浏览器关闭事件

向服务器端发送 ajax 调用,这将使会话无效

在服务器端你可以注册一个HttpSessionListener:

package com.example
public class MySessionListener implements HttpSessionListener {

    public void sessionCreated(HttpSessionEvent event) {
        System.out.println("Session created");
    }

    public void sessionDestroyed(HttpSessionEvent event) {
        System.out.println("Session destroyed");
    }
}

要注册,您可以将@WebListener 注释添加到侦听器的 class 或将侦听器添加到 web.xml

<listener>
    <listener-class>com.example.MySessionListener</listener-class>
</listener>

监听器不会在浏览器关闭的那一刻被调用它会在会话超时时被调用。