销毁servlet中的会话

时间:2017-04-11 09:14:53

标签: java session servlets

我知道当会话无效时,你可以在HttpSessionListener Servlet的方法sessionDestroyed()中做一些额外的事情,比如打印一条消息或其他东西。

我的问题是:

  1. 如果您打开了浏览器,但是您没有做任何事情,那么您的会话过期...会调用sessionDestroyed()方法吗?
  2. 如果你关闭浏览器并且会话因为你出去太久而到期...将会调用sessionDestroyed()方法吗?
  3. 谢谢!

2 个答案:

答案 0 :(得分:1)

HttpSessionListener用于监控在应用服务器上创建和销毁会话的时间

public void sessionDestroyed(HttpSessionEvent evt)是会话即将失效的通知。

了解更多信息How to call sessionDestroyed when a session times out

答案 1 :(得分:1)

对于这两个问题,答案是:是的。

服务器无法区分这两种情况(假设网页没有通过Ajax自己调用服务器)。 servlet服务器只知道该会话的最后一次调用的时间,并在超时后触发会话销毁。

你可以自己尝试一下。将会话超时设置为较小的值并等待。