如何在java中获取以前的会话ID

时间:2014-10-21 08:35:39

标签: java session

我有一个小的java应用程序。其中我想存储在线用户的详细信息。为此,我创建了一个地图并存储了与sessionId相对应的用户详细信息。这样可以正常工作。但我的问题是我如何知道用户浏览器会话过期?我想从sessiopn将不再存在的地图中删除这些用户详细信息。你能帮我吗?

2 个答案:

答案 0 :(得分:1)

查看HttpSessionListener

HttpSessionEvent参数中,您可以获得实际会话。

答案 1 :(得分:1)

只需注册HttpSessionListener并从地图中删除这些用户详细信息,其中sessiopn将不再存在,如@Scary Wombat所建议

的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
    }
}