zoukankan      html  css  js  c++  java
  • Java通过sessionId获取Session

    Servlet2.1之后不支持SessionContext里面getSession(String id)方法。
    
    但是,我们可以通过HttpSessionListener监听器和全局静态map自己实现一个SessionContext。
    
    MySessionContext.java:
    
    public class MySessionContext {
        private static HashMap mymap = new HashMap();
    
        public static synchronized void AddSession(HttpSession session) {
            if (session != null) {
                mymap.put(session.getId(), session);
            }
        }
    
        public static 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);
        }
    }
    
    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);
        }
    
    }
    
    web.xml添加一个监听器:
    
    <listener>
    <listener-class>listener.MySessionListener</listener-class>
    </listener>
    
    根据sessionId获取Session对象:
    
    String sessionId = request.getParameter("sessionId");
    
    HttpSession session = MySessionContext.getSession(sessionId);
  • 相关阅读:
    版本控制:SVN中Branch/tag的使用 -摘自网络
    安卓手机修改hosts攻略-摘自网络
    Web Api 2 怎么支持 Session
    几种判断asp.net中session过期方法的比较
    MSDN在线
    JS监听关闭浏览器事件
    VS调试Ajax
    SQL Server LEFT Functions
    Sql Server REPLACE函数的使用;SQL中 patindex函数的用法
    EXCEL公式测试使用Substitute
  • 原文地址:https://www.cnblogs.com/blog411032/p/5909095.html
Copyright © 2011-2022 走看看