我实现了一个 SessionListener 来跟踪我的网络服务器的打开会话
我设置在我的web.xml
:
<listener>
<listener-class>demo.MyHttpSessionListener</listener-class>
</listener>
<session-config>
<session-timeout>1</session-timeout>
</session-config>
我的 demo.MyHttpSessionListener.groovy:
class MyHttpSessionListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent event) {
...
}
@Override
public void sessionDestroyed(HttpSessionEvent event) {
...
}
}
当我去我的网站sessionCreated被调用。当我关闭浏览器并等待会话超时时调用sessionDestroyed 。
当我登录我的网站并关闭浏览器时会出现问题。在这种情况下sessionDestroyed在超时后永远不会被调用。为什么当用户登录并关闭浏览器时,会话永远不会被删除?在关闭浏览器并等待超时时间后,我该怎么做才能删除已登录用户的过期会话?