通过sessionId获取session

    xiaoxiao2021-04-15  37

    通过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);

    转载请注明原文地址: https://ju.6miu.com/read-671908.html

    最新回复(0)