1.
建立一個自己的SessionContext:
程式碼:
package cn.org.jshuwei.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 cn.org.jshuwei.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://blog.sealyu.com/2011/06/21/java%E6%A0%B9%E6%8D%AEsessionid%E8%8E%B7%E5%8F%96session%E5%AF%B9%E8%B1%A1/