鍍金池/ 問答/Java  HTML/ 如何獲得當前web項目內存里駐留的所有存活的http session列表?

如何獲得當前web項目內存里駐留的所有存活的http session列表?

web項目是springmvc + spring + hibernate

對于每個session

我存一個map (session_id, token)

然后定時任務,每天去清理掉那些map,如果其session已經失效的話

有何方法獲得當前web項目內存里駐留的所有存活的http session列表?

回答
編輯回答
巴扎嘿

可以通過實現HttpSessionListener接口來進行session的管理,實現sessionCreated和sessionDestroyed就可以監(jiān)聽session的創(chuàng)建和銷毀了,如果不按servlet標準的話看tomcat源碼吧,然后反射拿到內部的session集合就行了,之前有這樣干過。

2017年3月6日 11:29
編輯回答
孤星

遍歷Session,獲得上一次更新時間,與現在時間比較,大于一定值刪掉.

2017年12月16日 22:11
編輯回答
掛念你
public class HttpSessionCollector implements HttpSessionListener {
    private static final Map<String, HttpSession> sessions = new HashMap<String, HttpSession>();

    @Override
    public void sessionCreated(HttpSessionEvent event) {
        HttpSession session = event.getSession();
        sessions.put(session.getId(), session);
    }


    @Override
    public void sessionDestroyed(HttpSessionEvent event) {
        sessions.remove(event.getSession().getId());
    }

    public static HttpSession find(String sessionId) {
        return sessions.get(sessionId);
    }

}

How do I get a list of all HttpSession objects in a web application?

2017年8月17日 10:34