Java中如何通过SessionId获取Session

1、MySessionContext.java

public class MySessionContext {

    private static HashMap<String,Object> sessionIdMap = new HashMap<String,Object>();

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

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

    public static synchronized HttpSession getSession(String session_id) {
        if (sessionIdMap.containsKey(session_id)){
        return (HttpSession) sessionIdMap.get(session_id);
        }else{
        return null;
        }
    }
}

2、MySessionListener.java

public class MySessionListener implements HttpSessionListener{

public void sessionCreated(HttpSessionEvent httpSessionEvent) {
MySessionContext.addSession(httpSessionEvent.getSession());
}

public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
HttpSession session = httpSessionEvent.getSession();
MySessionContext.delSession(session);
}

}

3、web.xml

<!-- 自定义监听器:session监听 -->
  <listener>
  <listener-class>MySessionListener</listener-class>

  </listener>

4、根据sessionId获得session对象

HttpSession hs = MySessionContext.getSession(sessionId);

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值