Java根据sessionId获取Session对象
1. 建立一个自己的SessionContext:
?
程序代码:
?
package com.session.core;import javax.servlet.http.HttpSession;import java.util.HashMap;public class MySessionContext { private static MySessionContext instance; private HashMap mymap; private MySessionContext() { mymap = new HashMap(); } public static MySessionContext getInstance() { if (instance == null) { instance = new MySessionContext(); } return instance; } public synchronized void AddSession(HttpSession session) { if (session != null) { mymap.put(session.getId(), session); } } public synchronized void DelSession(HttpSession session) { if (session != null) { mymap.remove(session.getId()); } } public synchronized HttpSession getSession(String session_id) { if (session_id == null) return null; return (HttpSession) mymap.get(session_id); }}
?
2.新建一个Session监听
?
程序代码
?
package com.session.core;import javax.servlet.http.HttpSessionListener;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSession;import java.util.HashMap;import java.util.Map;public class SessionListener implements HttpSessionListener { public static Map userMap = new HashMap(); private MySessionContext myc=MySessionContext.getInstance(); public void sessionCreated(HttpSessionEvent httpSessionEvent) { myc.AddSession(httpSessionEvent.getSession()); } public void sessionDestroyed(HttpSessionEvent httpSessionEvent) { HttpSession session = httpSessionEvent.getSession(); myc.DelSession(session); }}
?
3.在web.xml中配置
?
程序代码
?
<listener> <listener-class>cn.org.jshuwei.session.core.SessionListener</listener-class></listener>
?
4.使用
?
程序代码
?
MySessionContext myc= MySessionContext.getInstance();HttpSession sess = myc.getSession(sessionId);
文章转载自http://www.sadtojoy.com/aspx/Detail.aspx?id=3697
?