我写了一个HttpSessionListener的监听器,监听用户session过期的动作.Listener里维护着用户sessionsList这个列表(里面存放着用户session),但是上线后,奇怪的事情发生了.居然有的session一直不会销毁,也就是在Tomcat里给挂住了(session一直有效,就是不销毁),因为我通过这个session(不论游客还是注册用户)还能取到除sessionId以外的其它值,证明还没有经过sessionDestroyed这一层.我也就搞不懂了,为什么session会永远不过期呢,我设置了过期时间的,15分钟..我郁闷啊,这个困扰了我快一个月了...有没有谁知道httpSession或是tomcat session机制的,劳帮我解析一下是什么原因呢.

解决方案 »

  1.   

    我是问为什么会卡住?Tomcat偶尔不去销毁某个session,这个session的最后使用时间距离现在已经很久了,可以确认是超过了最大空闲时间。
      

  2.   

    request.getSession().invalidate();//让以前的session失效(不需要关闭当前的浏览窗口)。
    但是一般情况下,当一次会话结束(网页关闭时),session就会结束
      

  3.   

    你们说的都是手动地去销毁它,但是我有一点不明白,销毁session不是容器去干的事么.
    为什么容器会不销毁session,难道是容器的session轮询机制有问题?我用的tomcat5.0