java根据sessionid获取session

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpSession;

/**
 * 
 * ClassName: SessionContext
 * 
 * @Description: 获取sessionID
 * @author liangbo
 * @date 2016-3-18
 */
public class SessionContext {

	private static SessionContext instance;
	private Map<String, HttpSession> sessionMap;

	private SessionContext() {
		sessionMap = new HashMap<String, HttpSession>();
	}

	public static SessionContext getInstance() {
		if (instance == null) {
			instance = new SessionContext();
		}
		return instance;
	}

	public synchronized void addSession(HttpSession session) {
		if (session != null) {
			sessionMap.put(session.getId(), session);
		}
	}

	public synchronized void delSession(HttpSession session) {
		if (session != null) {
			sessionMap.remove(session.getId());
		}
	}

	public synchronized HttpSession getSession(String sessionId) {
		if (sessionId == null)
			return null;
		return sessionMap.get(sessionId);
	}
}

  

import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

/**
 * 
 * ClassName: SessionListener
 * 
 * @Description: sessionid web.xml监听器
 * @author liangbo
 * @date 2016-3-18
 */
public class SessionListener implements HttpSessionListener {

	private SessionContext context = SessionContext.getInstance();

	@Override
	public void sessionCreated(HttpSessionEvent sessionEvent) {
		context.addSession(sessionEvent.getSession());
	}

	@Override
	public void sessionDestroyed(HttpSessionEvent sessionEvent) {
		HttpSession session = sessionEvent.getSession();
		context.delSession(session);
	}

}

  web.xml

<listener>
     <listener-class>hometree.ecs.business.service.util.session.SessionListener</listener-class>
    </listener>
//添加session
SessionContext.getInstance().addSession(server.getSession());

//获取session
HttpSession session = SessionContext.getInstance().getSession(
                    request.getParameter("sessionid"));

 

posted on 2016-03-18 20:47 smile_elims 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/liangbo-/p/5293570.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值