我有一个小的java应用程序。其中我想存储在线用户的详细信息。为此,我创建了一个地图并存储了与sessionId相对应的用户详细信息。这样可以正常工作。但我的问题是我如何知道用户浏览器会话过期?我想从sessiopn将不再存在的地图中删除这些用户详细信息。你能帮我吗?
答案 0 :(得分:1)
从HttpSessionEvent参数中,您可以获得实际会话。
答案 1 :(得分:1)
只需注册HttpSessionListener并从地图中删除这些用户详细信息,其中sessiopn将不再存在,如@Scary Wombat所建议
<web-app ...>
<listener>
<listener-class>com.x.y.z.MySessionListener</listener-class>
</listener>
</web-app>
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class MySessionListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent e) {
System.out.println("sessionCreated");
}
@Override
public void sessionDestroyed(HttpSessionEvent e) {
System.out.println("sessionDestroyed");
// e.getSession()
// remove users details from map
}
}