web项目是springmvc+spring+hibernate对于每个session我存一个map(session_id,token)然后定时任务,每天去清理掉那些map,如果其session已经失效的话有何方法获得当前web项目内存里驻留的所有存活的httpsession列表?
2 回答
守着星空守着你
TA贡献1799条经验 获得超8个赞
publicclassHttpSessionCollectorimplementsHttpSessionListener{privatestaticfinalMapsessions=newHashMap (); @OverridepublicvoidsessionCreated(HttpSessionEventevent){HttpSessionsession=event.getSession();sessions.put(session.getId(),session);}@OverridepublicvoidsessionDestroyed(HttpSessionEventevent){sessions.remove(event.getSession().getId());}publicstaticHttpSessionfind(StringsessionId){returnsessions.get(sessionId);}}HowdoIgetalistofallHttpSessionobjectsinawebapplication?
阿晨1998
TA贡献2037条经验 获得超6个赞
可以通过实现HttpSessionListener接口来进行session的管理,实现sessionCreated和sessionDestroyed就可以监听session的创建和销毁了,如果不按servlet标准的话看tomcat源码吧,然后反射拿到内部的session集合就行了,之前有这样干过。
添加回答
举报
0/150
提交
取消