gpt4 book ai didi

java - 当用户关闭浏览器时,sessionlistner 不工作

转载 作者:行者123 更新时间:2023-12-02 07:27:03 24 4
gpt4 key购买 nike

在下面的代码中,当创建新 session 时,sessionCreated 就会起作用。但 sessionDestroyed 仅当我们调用 session.invalidate(); 时才起作用。在以下情况下我怎样才能让它发挥作用**

1)用户关闭浏览器

2)系统关机

3) session 超时**

 import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SesListener implements HttpSessionListener
{
long sttime,endtime;
public void sessionCreated(HttpSessionEvent se)
{
sttime=System.currentTimeMillis();
HttpSession ses=se.getSession();
ServletContext sc=ses.getServletContext();
sc.log("session started at "+new Date());
System.out.println("session started at "+new Date());
}

public void sessionDestroyed(HttpSessionEvent se)
{

endtime=System.currentTimeMillis();
HttpSession ses=se.getSession();
ServletContext sc=ses.getServletContext();
sc.log("session ended at "+new Date());
System.out.println("session ended at "+new Date());
}
}

我的 .xml 文件是

 <listener>
<listener-class>SesListener</listener-class>
</listener>

最佳答案

我们没有可靠的方法可以联系服务器以使 session 无效,例如:网络丢失/断电:(无法联系服务器)

但是在浏览器关闭时,您可以使用 onunload 事件捕获用户的浏览器关闭事件并触发注销请求。

此外,在 session 超时期间,监听器的 sessionDestroyed() 将被执行

关于java - 当用户关闭浏览器时,sessionlistner 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13428056/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com