我有一个小的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
    }
}

10-08 01:35