HttpSessionListener一直在工作吗?

时间:2014-01-15 12:15:54

标签: java http tomcat servlets listener

我有一个关于在我的tomcat web applet中使用这些会话监听器的非常基本的问题。我对它们的运作方式缺乏基本的了解。他们一直在运作吗?他们可以以某种方式检测用户何时退出而未明确单击“注销”按钮,该按钮会使其会话无效吗?例如,当他处于非活动状态30分钟(默认情况下)时会发生这种情况。他们如何在用户登录时注册? (这只能在我的网络应用中明确完成,因为需要登录帐户)。

我问这个是因为我想要实现某种“在线”列表,类似于聊天应用程序或社交网站使用的列表,所有用户都可以查看。如果这很重要,在线用户信息将存储在数据库中。

2 个答案:

答案 0 :(得分:2)

它不是"网络小程序"。

HttpSessionListener仅响应2个事件。创建和销毁会话。如果手动或自动创建会话,第一个显然会被调用,如果您手动销毁会话,或者超时,则会调用第二个会话。无法知道用户是否已退出"如果他没有主动按下退出按钮(他本可以关闭他的电脑)。

所以基本上它取决于会话超时,你可以显示在线用户的准确程度。

答案 1 :(得分:1)

如果创建了一个新会话,比如request.getSession() / LogIn,则会调用侦听器的sessionCreated()。 如果会话被销毁,如会话的超时/ session.invalidate() / Logout,将调用sessionDestroyed()。 (即,它如何在更广泛的视野中起作用)