在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  HTML/ 如何獲得當(dāng)前web項目內(nèi)存里駐留的所有存活的http session列表?

如何獲得當(dāng)前web項目內(nèi)存里駐留的所有存活的http session列表?

web項目是springmvc + spring + hibernate

對于每個session

我存一個map (session_id, token)

然后定時任務(wù),每天去清理掉那些map,如果其session已經(jīng)失效的話

有何方法獲得當(dāng)前web項目內(nèi)存里駐留的所有存活的http session列表?

回答
編輯回答
巴扎嘿

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

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

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

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