为了账号安全,请及时绑定邮箱和手机立即绑定

浏览器关闭并不会执行sessionDestroyed,在线人数不会减少,怎么解决呢

设置

0

后,浏览器关闭并不会执行sessionDestroyed,在线人数不会减少,怎么解决呢?!请告知

正在回答

4 回答

session是有一个超时时间的,浏览器关闭其实对于web服务器来说是不知道的,所以他需要等待超时时间到了之后自动销毁,上面关闭浏览器之后只所以没有促发sessionDesroyed,就是因为默认的超时时间没到。

默认超时时间太长了,所以在sessionCreated中添加如下代码,改小超时时间:

        arg0.getSession().setMaxInactiveInterval(5);

这样只要用浏览器访问该站点,然后5s不刷新之后,sessionDestroyed就会被自动调用了。


0 回复 有任何疑惑可以回复我~

同问,有哪位高手愿意解答下吗

0 回复 有任何疑惑可以回复我~

你可能没在sessionDestroyed方法中 再次设置userNumber,

即未添加该代码:arg0.getSession().getServletContext().setAttribute("userNumber", userNumber);

0 回复 有任何疑惑可以回复我~

老师应该讲过了,在xml中定义session延时 当时讲的是定时1分钟, 并不是真的就1分钟就销毁,而是一分半。老师说了,这个时间有延时!!!

0 回复 有任何疑惑可以回复我~
#1

1sos1 提问者

感谢回答,我的意思是如果对在线用户数量做出实时性的统计,应该怎么做?因为现在是不准的
2017-05-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

浏览器关闭并不会执行sessionDestroyed,在线人数不会减少,怎么解决呢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信