`
eneve520
  • 浏览: 55326 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

同一tomcat下不同web项目session共享方法()

    博客分类:
  • J2SE
阅读更多

声明:是一个tomcat下的不同web项目,不是不同tomcat不同项目的,所有这里不会说用什么集群的方法....

     其实也很简单,就是将session保存在ServletContext里面就可以了。

     在项目A中:

   session.setAttribute("user",user);

   ServletContext ContextA =session.getServletContext();
   ContextA.setAttribute("session", session);

 

在项目B中:添加一个过滤器(web.xml配置就不写了)

 

  1. public class SessionFilter implements Filter {   
  2.   
  3.     private static final long serialVersionUID = 1L;   
  4.   
  5.     @Override  
  6.     public void destroy() {   
  7.            
  8.     }   
  9.   
  10.     @Override  
  11.     public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,   
  12.             FilterChain chain) throws IOException, ServletException {   
  13.         HttpServletRequest request = (HttpServletRequest)servletRequest;   
  14.         HttpServletResponse response = (HttpServletResponse)servletResponse;   
  15.            
  16.         HttpSession session1 =request.getSession();   
  17.         ServletContext Context = session1.getServletContext();   
  18.         ServletContext Context1= Context.getContext("/项目A名称");     
  19.         if(Context1 !=null && !Context1.equals("")){       
  20.             HttpSession session =(HttpSession)Context1.getAttribute("session");   
  21.   
  22.             String user = null;   
  23.             try{   
  24.             user =(String) session.getAttribute("user");   
  25.             }catch (Exception e) {             
  26.             }   
  27.             request.setAttribute("user", user);   
  28.   
  29.         }                  
  30.         chain.doFilter(request, response);         
  31.   
  32.            
  33.     }   
  34.   
  35.     @Override  
  36.     public void init(FilterConfig arg0) throws ServletException {   
  37.         System.out.println("sessionFilter");   
  38.     }   
  39.   
  40.   
  41. }  

这样在项目A登陆用户 保存session,在项目B就可以获取A的session信息了。当然这只是单向的,双向的方法也一样了

注:   <Context path="/xxx" docBase="xxx" debug="0" reloadable="true" crossContext="true"/>

crossContext必须设置为true,否则没用!!!!

转载http://blog.csdn.net/lgm277531070/archive/2009/12/02/4923358.aspx

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics