Java根据Session Id获取Session对象

原创
2013/12/19 12:40
阅读数 10K
1.建立一个自己的SessionContext:

/**   
* @Title: MySessionContext.java 
* @Package org.cms.system.update.util.session 
* @Description: TODO(用一句话描述该文件做什么) 
* @author 郝鹏
* @date 2013-12-19 上午9:54:54 
* @version V5.0   
*/ 
package org.cms.system.update.util.session;

/** 
 * @ClassName: MySessionContext 
 * @Description: TODO(这里用一句话描述这个类的作用) 
 * @author 郝鹏
 * @date 2013-12-19 上午9:54:54 
 *  
 */
import javax.servlet.http.HttpSession;
import java.util.HashMap;
import java.util.Map;

/**
 * Created with IntelliJ IDEA.
 * User: Administrator
 * Date: 12-12-11
 * Time: 上午10:57
 * To change this template use File | Settings | File Templates.
 */
public class MySessionContext {
	private static MySessionContext instance;
	private static Map<String, Object> mymap;

	private MySessionContext() {
		mymap = new HashMap<String, Object>();
	}

	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 static synchronized HttpSession getSession(String session_id) {
		if (session_id == null) return null;
		return (HttpSession) mymap.get(session_id);
	}

}



2.新建一个Session监听

/**   
* @Title: SessionListener.java 
* @Package org.cms.system.update.util.session 
* @Description: TODO(用一句话描述该文件做什么) 
* @author 郝鹏
* @date 2013-12-19 上午9:56:27 
* @version V5.0   
*/ 
package org.cms.system.update.util.session;

/** 
 * @ClassName: SessionListener 
 * @Description: TODO(这里用一句话描述这个类的作用) 
 * @author 郝鹏
 * @date 2013-12-19 上午9:56:27 
 *  
 */
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import java.util.HashMap;
import java.util.Map;

/**
 * Created with IntelliJ IDEA.
 * User: Administrator
 * Date: 12-12-11
 * Time: 上午10:58
 * To change this template use File | Settings | File Templates.
 */
public class SessionListener implements HttpSessionListener {
    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中配置

 <!--  监听session -->
  <listener>  
      <listener-class>org.cms.system.update.util.session.SessionListener</listener-class>  
  </listener> 


4.使用demo:  MySessionContext.getSession(sessionId)



展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部