我有一种情况需要知道客户端系统已手动关闭或由于电源故障(无论是相同的LAN还是广泛的网络)。
我需要知道登录到我的应用程序(网络)后,客户端忘记注销并手动关闭系统或因电源故障而关闭。
我将登录的用户状态存储在HashMap中,而不是存储在数据库中,并在单击注销按钮时删除....
如果系统在没有注销的情况下关闭而没有从HashMap中删除。 Java中是否有任何事件监听器来捕获客户端关闭状态?
如何实现这种情况,这可能吗?
我使用Vaadin 7.4.3作为我的网络应用程序的框架。
答案 0 :(得分:0)
将会话销毁侦听器添加到Web应用程序并删除该用户。会话到期时将调用会话destroy侦听器。实际上你应该以一种使会话无效的方式实现注销按钮,因此你需要删除用户的唯一地方是这个会话破坏监听器。