通过sessionId如何获得session?-------------------------------------- 

解决方案 »

  1.   

    HttpSessionContext  SessCon=  request.getSession(false).getSessionContext(); 
    HttpSession  Sess  =  SessCon.getSession(SessionId); 
      

  2.   

    HttpSessionContext SessCon= request.getSession(false).getSessionContext()
    这个方法,过时了
      

  3.   

    好像最保险的方法是通过cookie,session本质上还是一个cookie啊。网上有示例,我忘记怎么做了。祝楼主好远啊
      

  4.   

    1. 建立一个自己的SessionContext: 程序代码:package cn.org.jshuwei.session.core;import javax.servlet.http.HttpSession;
    import java.util.HashMap;public class MySessionContext {
        private static MySessionContext instance;
        private HashMap mymap;    private MySessionContext() {
            mymap = new HashMap();
        }    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 synchronized HttpSession getSession(String session_id) {
            if (session_id == null) return null;
            return (HttpSession) mymap.get(session_id);
        }} 2.新建一个Session监听 程序代码package cn.org.jshuwei.session.core;import javax.servlet.http.HttpSessionListener;
    import javax.servlet.http.HttpSessionEvent;
    import javax.servlet.http.HttpSession;
    import java.util.HashMap;
    import java.util.Map;public class SessionListener implements HttpSessionListener {
        public static Map userMap = new HashMap();
        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中配置 程序代码<listener>
        <listener-class>cn.org.jshuwei.session.core.SessionListener</listener-class>
    </listener> 4.使用 程序代码MySessionContext myc= MySessionContext.getInstance();
    HttpSession sess = myc.getSession(sessionId); 来源地址:http://www.jshuwei.org.cn/article.asp?id=398
    http://www.sadtojoy.com/aspx/Detail.aspx?id=3697
      

  5.   

    没有办法!由于安全原因,HttpSessionContext 早在 Servlet 2.1 时就已经被弃用了,其中的方法根据规范必须返回为空。
      

  6.   


    两个系统间要实现单点登录,在sendRedirect(URL);之后,在跳转的页面里我加了一个filter,可是在filter里确得不到Cookie,request.getCookies();得到的是空。请问各位,该如何在filter里得到Cookie呢?
      

  7.   

    可以,用数据库。sessionId为主键,然后使用序列化把session放入DB。根据sessionId查到该session后再反序列化出来。可以建一个类,然后implements HttpSessionListener来实现上述功能