2016-03-30 73 views
0

出于测试目的,我做了以下在web.xml中的条目现在的Java SessionDestroyed不叫当会话处于非活动状态

<session-config> 
     <session-timeout>1</session-timeout> 
</session-config> 

,问题是,1分钟后在活动,但该用户越来越登出我的Session Listener的sessionDestroyed方法没有被调用。当我手动注销时,每件事情都很好。

有没有什么办法可以解决这个问题?

使用Tomcat 8

在此先感谢帮助。

+0

你用什么servlet容器? – wero

+0

我正在使用tomcat 8 –

+0

在没有耐心之前等了多久? – BalusC

回答

1

根据Servlet规范11.2.1当

HttpSession已创建HttpSessionListener被告知,无效,或超时。

但是你不应该期待servlet容器在超时后立即调用sessionDestroyed - 它将使用后台线程定期检查会话有效性。

在您的设置中,当您在超时后向服务器发送请求并尝试访问会话时,您应该看到被破坏的事件。在这种情况下,servlet容器将检查有效性,调用监听器的sessionDestroyed并返回空会话。

相关问题