【发布时间】:2016-06-03 21:11:03
【问题描述】:
我使用 JSP。
我需要在会话关闭时运行一个方法,即,每当浏览器关闭时。
我怎么做这个?
【问题讨论】:
-
发布您尝试过的代码?
-
@HagaHood 尝试查看此解决方案以获取帮助,stackoverflow.com/a/3943485/5593725
标签: java jsp session-state
我使用 JSP。
我需要在会话关闭时运行一个方法,即,每当浏览器关闭时。
我怎么做这个?
【问题讨论】:
标签: java jsp session-state
您必须在 javascript 中检测浏览器关闭事件。请参阅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 注解添加到侦听器的类或将侦听器添加到 web.xml
<listener>
<listener-class>com.example.MySessionListener</listener-class>
</listener>
关闭浏览器时不会调用监听器,会话超时时会调用监听器。
【讨论】: