-
session跨应用共享10
现小弟遇到一个这样的问题。
在同一个tomcat下有两个应用项目A和B
怎么样才能拿到对方的session呢?或者其他办法也行..只要能实现多用户权限验证.!
非常感谢.!
问题补充:
我汗。
现在要尽快
合项目我还问啥啊。。
问题补充:
someone 谢谢你答复。。
ServletContext.getContext(String uriPath)取得另外一个WebApp的Context。
怎么取到session呢?
如果一直两个工程共享context 然后用户都从context拿吗?
几个人登陆怎么解决?
问题补充:
还是谢谢了咯。
估计要集群了。
我现在有两个系统 放一起的。
现在客户要加上权限。。
汗~~2008年7月28日 22:48
3个答案 按时间排序 按投票排序
-
采纳的答案
以前在搞jetspeet的时候,曾经涉及到过这个问题。
这个是一个被称为Web cross context的问题,
对于tomcat
首先要设定允许crosscontext。
server.xml
<Context path="/testA" docBase="/testA" debug="0" reloadable="true" crossContext="true"/>
<Context path="/testB" docBase="/testB" debug="0" reloadable="true" crossContext="true"/>
然后用ServletContext.getContext(String uriPath)取得另外一个WebApp的Context。
但是这里面有个问题,因为每个WebApp的Classload是单独不共用的,这样在从Session里面取出来每个自定义的对象时,会出现ClassCastExcept。
解决办法
1,把这些可能通过Session共享的Class让上级Classloader载入,比如放在ShareLib目录下面。这个最简单。但是因为这个上级classloader载入的,所以如果在这些类里面使用了静态变量共享数据的方式的话,就会出现问题。
2,当取得另外一个WebApp的Session数据时,改变其Classloader为自己Webapp的class咯ader。这个处理比较麻烦些,另外只能取得另外一个WebApp的Session数据,无法改变另外一个WebApp的Session数据。2008年7月29日 12:56
-
可一通过 ServletContext的setAttribute,getAttribute来共享数据。
想不通的是,为什么一个WebApp里面为什么会另外一个WebApp里面的其他用户的Session数据?是一个用户通过SSO同时登录到两个WebApp中了?
如果是多WebApp,多用户之间共享数据,通过这种方法可能不是一个好办法。2008年7月30日 21:37
相关推荐
在实际应用中,通常会结合单点登录(Single Sign-On, SSO)系统来实现跨子域共享Session。SSO允许用户在一个子域登录后,其他子域无需再次登录即可访问。实现SSO时,Session共享是关键组成部分,通常会结合Cookie或...
七、跨应用程序的session共享 在分布式环境中,跨服务器的session共享是一个挑战。可以通过以下方式实现: - 使用负载均衡器共享session数据。 - 数据库存储session:将session信息存储在数据库中,所有服务器都能...
本篇文章将深入探讨C#中如何实现不同域名之间的Session共享,以及这一功能的重要性和应用场景。 Session共享的主要目的是在多个网站或应用之间保持用户的登录状态和其他个性化信息,提高用户体验。默认情况下,ASP...
在传统的Web应用中,Session信息通常存储在单个服务器的内存中,当应用部署在集群或者分布式环境时,不同服务器之间无法共享Session数据,导致用户在切换服务器时会丢失Session信息。Spring Session的出现,就是为了...
标题中的“tomcat6 memcache session manager session共享 jar包下载”揭示了这个压缩包与Tomcat6服务器有关,特别地,它涉及到一个基于Memcache的Session管理器,用于实现跨多个应用服务器的Session共享。Session在...
在这个场景中,我们关注的是如何在Tomcat集群环境中实现Session共享,以便提高应用程序的可扩展性和可用性。标题和描述提到的“session共享包”是解决这一问题的关键。 **什么是Session?** 在Web应用中,Session是...
标题中的“tomcat8+memcached session共享”...其他实例在接收到同一用户的请求时,可以从Memcached中获取session数据,从而实现session的跨服务器共享。这种解决方案可以有效提升大型分布式系统的可扩展性和用户体验。
总的来说,通过序列化和反序列化机制实现的跨站点Session共享和单点登录是一种实用的解决方案,尤其适用于那些已有多个网站并且希望实现统一用户管理的ASP.NET 2.0应用程序。但同时,为了确保系统的稳定性和安全性,...
然而,当涉及到多个应用程序时,标准的Session机制通常不会跨应用程序共享数据。本篇文章将深入探讨如何在ASP.NET中实现不同应用程序之间的Session共享。 **1. Session工作原理** Session在ASP.NET中基于HTTP协议的...
Spring-Session可以通过将Session数据存储在Redis这样的分布式存储中,实现不同应用间Session的共享,从而达到SSO的效果。 **Spring-Session与Redis的结合** Spring-Session通过将Session数据持久化到Redis,确保...
这个小例子"nginx+tomcat+redis完成session共享"旨在演示如何通过这三种技术实现跨服务器的用户会话共享,以提升用户体验并简化系统管理。以下是这些技术及其在会话共享中的作用: 1. **Nginx**:Nginx是一款高性能...
将Session与Memcached结合,可以实现跨服务器的Session共享,提高系统的可扩展性和性能。 首先,我们需要了解Session的工作原理。在默认情况下,Session信息是存储在服务器端的一个Map中,每当客户端发送请求时,...
Spring Session + Redis的结合提供了一个高效且可靠的解决方案,它允许跨服务器节点透明地共享session数据。本文将深入探讨如何利用Spring Session与Redis来实现这一功能。 首先,Spring Session是一个开源项目,由...
在Tomcat这样的Java应用服务器中,通过集成Redis,我们可以实现session的跨服务器共享,提高系统的可扩展性和容错性。 要实现Tomcat用Redis共享session,首先需要引入相关jar包。这些jar包通常包括以下几部分: 1....
Spring-Session正是为此而设计的一个框架,它提供了一种机制来存储用户的会话信息至中央数据存储区,如Redis等,从而实现跨服务共享。 #### 一、Spring-Session简介 Spring-Session是Spring框架提供的一个用于管理...
【session共享插件】是一种用于Java应用程序的解决方案,旨在实现跨服务器的会话状态共享。在Web应用中,session是服务器用来存储用户特定信息的一种机制,例如登录状态、购物车内容等。当应用部署在多台服务器上时...
3. **SqlServer**:Session数据存储在SQL Server数据库中,可跨服务器共享,且数据持久化,但增加了数据库压力。 选择不同的Session存储模式,可以根据性能需求、数据安全性和服务器资源进行权衡。例如,InProc模式...
综上所述,结合SSM、Redis和Nginx,我们可以构建一个高可用、高性能的Web应用系统,实现session的跨服务器共享,并通过负载均衡策略确保服务的稳定性和可扩展性。在实际项目中,可以根据业务需求和资源状况,灵活...
这种配置下,Spring Boot项目能够方便地利用Shiro与Redis配合,实现session数据的持久化和跨服务器共享。 首先,我们需要了解Apache Shiro如何处理session。在默认情况下,Shiro将session信息存储在内存中,但这种...
但在分布式环境中,每台服务器都有自己的Session,导致跨服务器时无法共享Session信息。为了解决这个问题,我们可以引入Redis来存储和管理Session。 步骤如下: 1. **配置Redis**:首先确保你已经安装并运行了...