Java根据sessionId获取Session对象

来源:互联网 发布:sql 修改表字段默认值 编辑:程序博客网 时间:2024/06/05 19:12

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


原创粉丝点击