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

来源:5-1 统计在线用户及人数

1sos1

2017-05-12 13:28

设置

0

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

写回答 关注

4回答

  • 早川君
    2019-11-02 16:01:30

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

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

            arg0.getSession().setMaxInactiveInterval(5);

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


  • weibo_慕村6171340
    2019-01-29 15:16:19

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

  • XiaoADream
    2017-05-13 17:58:22

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

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

  • 莱恩的小把戏
    2017-05-12 17:40:49

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

    1sos1

    感谢回答,我的意思是如果对在线用户数量做出实时性的统计,应该怎么做?因为现在是不准的

    2017-05-22 16:44:51

    共 1 条回复 >

JAVA Web开发技术应用——监听器

本课程从Java Web中的监听器的概念和用途入手,结合实例讲解

76034 学习 · 155 问题

查看课程

相似问题