我有一个关于在我的tomcat web applet中使用这些会话监听器的非常基本的问题。我对它们的运作方式缺乏基本的了解。他们一直在运作吗?他们可以以某种方式检测用户何时退出而未明确单击“注销”按钮,该按钮会使其会话无效吗?例如,当他处于非活动状态30分钟(默认情况下)时会发生这种情况。他们如何在用户登录时注册? (这只能在我的网络应用中明确完成,因为需要登录帐户)。
我问这个是因为我想要实现某种“在线”列表,类似于聊天应用程序或社交网站使用的列表,所有用户都可以查看。如果这很重要,在线用户信息将存储在数据库中。
答案 0 :(得分:2)
它不是"网络小程序"。
HttpSessionListener
仅响应2个事件。创建和销毁会话。如果手动或自动创建会话,第一个显然会被调用,如果您手动销毁会话,或者超时,则会调用第二个会话。无法知道用户是否已退出"如果他没有主动按下退出按钮(他本可以关闭他的电脑)。
所以基本上它取决于会话超时,你可以显示在线用户的准确程度。
答案 1 :(得分:1)
如果创建了一个新会话,比如request.getSession()
/ LogIn,则会调用侦听器的sessionCreated()。
如果会话被销毁,如会话的超时/ session.invalidate()
/ Logout,将调用sessionDestroyed()。
(即,它如何在更广泛的视野中起作用)