0
我有一个HashMap那里我把HttpSession对象作为重点和HashSet的作为价值失败与HttpSession中检索从HashMap中值为键
HashMap<HttpSession, HashSet<String>> map = new HashMap<HttpSession, HashSet<String>>();
我有一个HttpSession监听器,我需要检查天气会话对象存在于地图中
public void sessionDestroyed(HttpSessionEvent se) {
HashMap<HttpSession, HashSet<String>> map = //Get map object
HttpSession session = se.getSession();
if(map.containsKey(session)){
//TODO Code goes here
}
}
即使会话对象在地图中可用(手动检查地图项),IF条件始终返回false。我卡住了!
你应该使用不可移植的对象作为关键在这种情况下,你不能保证基于'HttpSession'实现的平等性,所以使用由[getId()]返回的字符串''id(http://docs.oracle.com/ javaee/5/api/javax/servlet/http/HttpSession.html#getId()) – 2013-03-12 06:50:07
你对你的地图有什么价值,请显示该代码。因为当我们打开时间会话id不同的页面并且在成功登录会话ID成为别的之后。所以请让我知道你的hashmap是如何创建的 – 2013-03-12 06:52:41
//某些代码 HttpSession session = request.getSession(true); HashSet set = new HashSet (); (session.isNew()) map.put(session,set);如果(session.isNew()) //某些代码 –
user1448652
2013-03-12 07:08:00