HttpSessionListener-会话超时时将调用sessionDestroyed方法吗? [重复]

|                                                                                                                   这个问题已经在这里有了答案:                                                      
已邀请:
        Servlet引擎将处理会话超时。 当会话不再有效时,它将自行确定,并将调用“ 0”。 (这可能在用户关闭浏览器后的一段时间内发生)。 其他一些要点: 记录中 也许您可以向sessionCreated和sessionDestroyed方法添加一些日志记录。对于每个sessionCreated,您都应该有一个sessionDestroyed。 例外处理 东西仍然被锁定的事实可能不是由于会话没有被销毁,而是由于sessionDestroyed逻辑中的错误。您在那里有足够的异常处理/日志记录吗? 定时 您是否等待了足够长的时间来检查锁定的资源? (关闭所有客户端,并考虑在应用程序/服务器上配置的会话超时值)。如前所述,服务器无法检测到用户正在关闭浏览器,但服务器会维护其HTTP会话列表,并且在超时后会销毁它们。     
           因此,我怀疑是否有可能不会调用sessionDestroyed?假设会话超时-将调用sessionDestroyed方法吗? 是。会话超时或有人以编程方式使会话过期时(通过
HttpSession.invalidate()
),该会话将被破坏。   假设用户关闭浏览器选项卡而不注销(销毁会话),那么将调用侦听器吗? 否,因为该会话仍然有效。如果该用户再次打开该网站,则他/她的会话仍然有效。 从
HttpSession
javadoc:   绑定方法完成后发送通知。对于无效或过期的会话,在会话无效或过期后发送通知。     

要回复问题请先登录注册