我有一个小的Java应用程序。我想在其中存储在线用户的详细信息。为此,我创建了一个地图并存储了与sessionId对应的用户详细信息。这样就可以了。但是我的问题是我如何知道用户浏览器的过期时间?我想从sessiopn不再存在的地图中删除那些用户详细信息。请你帮助我好吗。
最佳答案
只需注册HttpSessionListener,然后按照@Scary Wombat的建议从地图中删除不再存在sessiopn的那些用户详细信息
web.xml:
<web-app ...>
<listener>
<listener-class>com.x.y.z.MySessionListener</listener-class>
</listener>
</web-app>
HttpSessionListener:
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
}
}