`
zjcheng
  • 浏览: 91288 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

同一个Tomcat不同Web应用之间共享Session

 
阅读更多
由于项目需要,产生了如题的需求,上网查了一些资料,自己整理并测试通过之后,把心得记录一下。

1.首先,修改Tomcat---conf----server.xml文件
      <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false"
     xmlValidation="false"></Host> 修改为:

 <Host appBase="webapps" autoDeploy="true" name="localhost"  unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">

    <Context path="/项目A" reloadable="false" crossContext="true"></Context>
     <Context path="/项目B" reloadable="false" crossContext="true"></Context>

  </Host>

  这里的crossContext是关键,值要设置为true。

2.然后,在项目A中,写入以下代码:

  //一下内容用于测试同一tomcat下不同项目之间共享session
     servletRequest.getSession().setAttribute("base.user", user.getLoginName());
     ServletContext ContextA =servletRequest.getSession().getServletContext();
     ContextA.setAttribute("session", servletRequest.getSession());
    //测试代码到此结束

3.在项目B中,写入以下代码取出Session

  HttpSession session1 =request.getSession();  
        ServletContext Context = session1.getServletContext();  
        ServletContext Context1= Context.getContext("/base");
        //System.out.println(Context1);
        HttpSession session2 =(HttpSession)Context1.getAttribute("session");
        //System.out.println("base传过来的user为:"+session2.getAttribute("base.user"));



以上的第三点,可以放入一个Filter中,进行过滤,这些是经过测试可用的,呵呵,大家可以试一下,这里不牵涉Tomcat集群的问题。

转自:http://lwq2010.iteye.com/blog/575018
分享到:
评论

相关推荐

    Tomcat 同一服务器上 不同web项目共享session的

    本篇文章将深入探讨如何在Tomcat服务器上实现在不同Web项目之间共享session。 首先,理解session的基本概念是关键。Session是在服务器端保存用户状态的一种机制,它通过在客户端(浏览器)存储一个唯一的session ID...

    nginx实现多个tomcat7直接session共享所需jar包

    标题中的“nginx实现多个tomcat7直接session共享所需jar包”指的是在分布式系统环境中,使用Nginx作为反向代理服务器,将用户请求分发到多个Tomcat7应用服务器上,同时实现用户会话(Session)在这些服务器之间的...

    nginx+tomcat+redis完成session共享

    2. **Tomcat**:Tomcat是一个广泛使用的Java Servlet容器,用于运行基于Java的Web应用程序。在多台Tomcat服务器环境中,如果session不能共享,用户在切换服务器时可能会失去登录状态。通过引入session共享,即使用户...

    Tomcat8(Tomcat9)+redis实现Session共享(支持Redis集群)

    在单个服务器上,Session可以通过内存来管理,但在分布式环境下,多个服务器无法共享同一个内存中的Session,这就需要引入外部存储来实现Session共享。 Redis是一个高性能的键值数据库,常被用作缓存和会话存储解决...

    tomcat8集群实现session共享,内含session共享包

    在IT行业中,尤其是在Web服务器领域,Tomcat是一个广泛使用的开源应用服务器,特别是对于Java Servlet和JavaServer Pages(JSP)的应用。在这个场景中,我们关注的是如何在Tomcat集群环境中实现Session共享,以便...

    tomcat7集群实现session共享

    在IT行业中,Tomcat是一个广泛使用的Java应用服务器,特别是对于Servlet和JSP应用程序。当我们谈论“Tomcat7集群实现session共享”时,我们关注的是如何在多个Tomcat实例之间有效地同步用户会话信息,以便在集群环境...

    tomcat7tomcat8做redis session共享jar包

    标题中的“tomcat7tomcat8做redis session共享jar包”指的是在Tomcat 7和Tomcat 8这两种不同的Web服务器环境中,通过集成Redis来实现Session的共享功能。Redis是一种高性能的键值存储系统,常被用作分布式环境下的...

    memcached实现多个tomcat 共享一个session

    标题中的“memcached实现多个tomcat共享一个session”是指在分布式系统中,通过使用memcached作为session存储介质,实现多台Tomcat服务器之间的session共享。这样可以确保用户在集群中的任意一台服务器上登录后,其...

    Tomcat之间Session共享

    Tomcat 之间的 Session 共享是指在分布式 Tomcat 环境中,多个 Tomcat 实例之间共享 Session 数据,以确保用户登录状态的一致性。在使用 Nginx+Tomcat 进行负载均衡时,使用轮询方式进行负载可能会导致用户退出登录...

    Tomcat7+Redis+Session 负载之后session 共享 tomcat jar包

    标题 "Tomcat7+Redis+Session 负载之后session 共享 tomcat jar包" 涉及的是在使用Nginx做负载均衡时,如何通过集成Redis来实现Tomcat7服务器之间的Session共享,从而确保用户在不同服务器之间切换时仍然能够保持...

    tomcat7+redis单点 session共享jar

    在现代Web应用开发中,确保用户会话在多个服务器之间无缝切换是一项重要的任务。这通常通过session共享技术来实现,特别是在分布式系统环境中。本资源"tomcat7+redis单点 session共享jar"提供了针对Tomcat7服务器和...

    nginx+tomcat shiro实现多tomcat下session共享

    "nginx+tomcat shiro实现多tomcat下session共享"这一主题,就是探讨在这样的架构中,如何有效管理和共享session。 1. **Nginx的作用**: Nginx是一个高性能的HTTP和反向代理服务器,常用于负载均衡,可以将用户的...

    tomcat9+apr+redissession共享

    - **测试和优化**:部署应用后,测试Session是否能够正确地在不同的Tomcat实例之间共享。根据实际需求,可能还需要调整Redis的过期策略、连接池大小等配置,以优化性能和资源利用率。 通过这种方式,你可以在分布式...

    tomcat8-redis-session共享

    这是一个常见的需求,特别是在分布式系统中,为了保持用户会话的一致性,需要将Session数据在多台服务器之间共享。Redis作为一个高性能、内存中的键值数据库,常被用作Session的中央存储,因为它提供了高效的数据...

    memcached+tomcat7共享session所需要的jar包

    标题中的“memcached+tomcat7共享session所需要的jar包”是指使用Memcached作为分布式缓存系统,实现Tomcat7服务器间的Session共享。这通常是为了在集群环境中解决Session复制或粘滞会话的问题,提高Web应用的可扩展...

    tomcat实现session共享

    在IT行业中,尤其是在Web应用开发领域,服务器集群和session共享是一个关键问题。当多个服务器共同处理用户请求时,保持用户会话(session)的一致性是必要的,以确保用户在不同服务器之间切换时不会丢失登录状态或...

    tomcat7 集群通过redis共享session 所需jar包

    在构建高可用的Tomcat7集群中,一个关键问题是如何在不同的服务器实例之间共享用户Session信息,以确保用户状态在集群中的无缝切换。在这种场景下,我们可以利用Redis作为中间件来实现Session的共享。以下是对这个...

    tomcat8-redis实现session共享jar包

    然而,随着微服务架构的普及,多个独立的Tomcat实例可能部署在不同的服务器上,这时就需要一种方法来跨服务器共享session数据。 这就是`Redis`的角色。Redis是一个高性能的键值数据库,常被用作缓存系统。由于它...

    tomcat6 memcache session manager session共享 jar包下载

    标题中的“tomcat6 memcache session manager session共享 jar包下载”揭示了这个压缩包与Tomcat6服务器有关,特别地,它涉及到一个基于Memcache的Session管理器,用于实现跨多个应用服务器的Session共享。Session在...

    tomcat中Nginx+memcached实现session共享

    在分布式系统中,Session共享是一个常见的挑战,尤其是在多个应用服务器如Tomcat之间。为了实现这一目标,我们可以结合Nginx反向代理服务器和memcached内存缓存系统来达到高效、可靠的Session共享。以下是对这个主题...

Global site tag (gtag.js) - Google Analytics