`

Tomcat 同一服务器上两个不同web项目共享session的简单方法

阅读更多

Tomcat 同一服务器上两个不同web项目共享session的简单方法

常常有这样的情况,一个大项目被分割成若干小项目开发,为了能够互不干扰,要求每个小项目作为一个单独的web应用程序开发,可是到了最后突然发现某几个小项目之间需要共享一些信息,或者想使用session来实现SSO (single sign on),在session中保存login的用户信息,最自然的要求是应用程序间能够访问彼此的session。
然而按照Servlet规范,session的作用范围应该仅仅限于当前应用程序下,不同的应用程序之间是不能够互相访问对方的session的。各个应用服务器从实际效果上都遵守了这一规范,但是实现的细节却可能各有不同,因此解决跨应用程序session共享的方法也各不相同。

有一种较为方便的做法,就是把一个应用程序的session放到 ServletContext中,这样另外一个应用程序就可以从ServletContext中取得前一个应用程序的引用。示例代码如下,
应用程序A
context.setAttribute("appA", session);
应用程序B
contextA = context.getContext("/appA");
HttpSession sessionA = (HttpSession)contextA.getAttribute("appA");
值得注意的是这种用法不可移植,因为根据ServletContext的JavaDoc,应用服务器可以处于安全的原因对于context.getContext("/appA");返回空值,以上做法在Weblogic Server 8.1/ tomcat4.1x 中通过。

 

 

分享到:
评论
4 楼 michaellou 2011-04-08  
测了下tomcat6下不行误导我了,,
3 楼 youjianbo_han_87 2009-12-03  
一看就知道是随便转的文章。。。。
2 楼 a258131561 2009-05-25  
可移植性太差
1 楼 wmj2003 2008-06-26  
测试过了吗?就忽悠人

相关推荐

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

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

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

    这个解决方案的优势在于,当你的Web应用部署在多台Tomcat服务器上时,每台服务器都能访问到同一份Session数据,从而实现了Session的跨服务器共享。此外,Redis的高并发性能和持久化能力也能保障在高负载下的服务稳定...

    tomcat-session共享

    在构建分布式系统时,Session共享是一个关键问题,特别是在使用Linux上的Tomcat服务器集群与Nginx作为反向代理的情况。标题“tomcat-session共享”和描述中提到的问题,主要是指如何在多台Tomcat服务器之间以及通过...

    Tomcat集群Session的Redis共享存储

    在IT行业中,尤其是在Web服务器和应用服务器的管理与优化中,Tomcat集群和Session管理是两个重要的主题。这里我们关注的是如何在Tomcat集群中利用Redis实现Session的共享存储,以此提高系统的可扩展性和可用性。 ...

    Tomcat7+redis实现session共享

    1. **安装和配置redis**:首先确保在所有需要共享session的服务器上都安装了`redis`,并启动服务。为了提高可用性和可靠性,通常还会配置`redis`集群或主从复制。 2. **配置Tomcat的session复制策略**:在`Tomcat7`...

    tomcat8+redis+session共享jar包

    描述中提到的“tomcat8 redis session共享 jar包下载,使用tomcat8.0 tomcat8.5”,表明这个jar包适用于Tomcat 8.0和8.5两个版本,提供了一种将session数据存储到Redis的方法。这种集成通常涉及到一个中间件或适配器...

    Nginx+tomcat6+memcache配置集群session共享所需jar包

    在构建高性能、高可用性的Web应用系统时,集群和会话共享是两个关键点。这里我们关注的是如何通过Nginx、Tomcat6和Memcached实现集群中的session共享。这个压缩包“Nginx+tomcat6+memcache所需jar包”提供了实现这一...

    nginx-tomcat-redis负载均衡,session共享依赖jar包

    在构建大型分布式Web应用时,负载均衡和会话共享是两个关键的技术环节。本文将详细介绍如何使用`nginx`、`Tomcat`和`Redis`来实现负载均衡和跨服务器的session共享,以及在这个过程中可能涉及的依赖jar包。 首先,`...

    tomcat+redis共享session所需jar包

    4. **测试**:重启Tomcat,然后通过访问不同Tomcat实例的同一应用,检查Session是否能够正确共享。 **五、注意事项** - 确保Tomcat和Redis之间的网络连接畅通。 - 考虑到性能和安全,可以配置Redis集群或主从复制。...

    lvs+keepalived+nginx+tomcat+memcached实现服务负载均衡及session共享

    在构建高可用、高性能的Web服务系统中,服务负载均衡和session共享是两个关键环节。本文将详细探讨如何使用lvs(Linux Virtual Server)、keepalived、nginx、tomcat以及memcached来实现这一目标。 首先,lvs是...

    Tomcat+memcached+Nginx实现session共享

    Tomcat、Nginx和memcached的组合是常见的Web服务器架构,其中session共享是解决多服务器间用户状态同步的关键问题。本方案主要通过MSM(Memcached Session Manager)来实现这一功能。 1. **MSM原理**: MSM是一个...

    session共享tomcat7 memcached 文档

    通过Nginx、Tomcat、MySQL和Memcached的结合使用,不仅可以实现动静态页面的有效分离,还可以通过Memcached Session Manager实现Session的高效共享,从而构建一个高性能、高可用的Web服务架构。

    Windows+Nginx+Tomcat做负载均衡同时实现session共享Demo2

    在这个配置中,`ip_hash`指令保证了来自同一客户端的请求始终被路由到同一个Tomcat服务器。如果选择使用Redis,需要确保Nginx和Tomcat都配置了相应的Session持久化机制,以便在服务器之间共享Session数据。 文件名...

    Tomcat8 session同步测试,配置好的Tomcat

    在IT行业中,尤其是在Web服务器领域,Tomcat是一个广泛使用的开源应用服务器,特别是对于运行Java Servlet和JavaServer Pages(JSP)的应用程序。标题提到的"Tomcat8 session同步测试"是指在多台Tomcat服务器之间...

    Tomcat服务器集群和负载均衡

    2. **配置通信机制**:Tomcat集群中的节点需要相互通信,这通常通过两种方式实现:共享内存(适用于同一台物理机上的多个Tomcat实例)和基于网络的通信(如JMS,适用于跨网络的节点)。 3. **共享session**:为了...

    通过Nginx搭建Tomcat9集群并实现Session共享

    在不同的服务器上或者同一服务器的不同端口上部署这些实例。对于配置文件`server.xml`,主要关注的是`<Engine>`、`<Host>`和`<Context>`标签,确保每个实例有唯一的名称和虚拟主机配置。 2. **Session复制配置**:...

    Nginx+Tomcat+Redis搭建高性能负载均衡集群Session共享

    解压两个或多个Tomcat实例到同一路径下,本例中解压了两个实例,分别命名为`apache-tomcat-6.0.33-1`和`apache-tomcat-6.0.33-2`。 3. **修改Tomcat启动端口** 打开每个Tomcat的`conf`目录下的`server.xml`文件...

    nginx-1.9.3--tomcat-(6,7)-memcached-session共享负载

    在这里,我们看到有两个版本的Tomcat,6.0.41和7.0.26,分别监听不同的端口(10080、9080和8080)。这种设置允许同时运行不同版本的应用,或者在同一版本上部署多个实例以增加处理能力。 Memcached则是一个广泛使用...

    tomcat+redis+nginx session共享.docx

    ### Tomcat + Redis + Nginx 实现Session共享详解 ...综上所述,通过Tomcat、Redis和Nginx的组合使用,可以有效地解决Web应用在分布式环境下Session共享的问题,同时也能显著提升系统的稳定性和性能表现。

    实现Session共享所需jar包

    6. **使用负载均衡器**:例如Apache mod_jk或Nginx,它们可以负责Session粘滞,确保用户的请求始终被转发到同一台服务器,从而实现逻辑上的Session共享。 在实际操作中,通常还需要`javax.servlet`和`javax.servlet...

Global site tag (gtag.js) - Google Analytics