前提:项目用的是Jboss4.0作为容器,使用Struts1.0+EJB3.0。
问题:系统登录时要保存用户的权限信息到session中,进入子系统时要求能读取到登录系统中保存的session信息
尝试解决方案:
1)将权限信息写到文件保存到服务器,进入每个子系统时再读出来写到各自的session中
致命缺点:写文件速度太慢,测试支持同时登录的并发数只有3、40人(写文件都保存在同一个文件夹下,磁盘头都需要被占用)
2)将权限信息保存到客户端cookie中,每次发送请求时都能同时带过去
无法实现:①至少需要保存用户名和权限code(很多字符串),这些东西需要特殊字符分隔,之前使用“;”号,cookie无法写入成功,上网查原来cookie中不能使用逗号分号之类的特殊字符(即使使用“&”这些没有被禁止的字符好像也不行,反正尽量就是不要使用特殊字符才行)
②解决上面的问题后依然不成功,原来cookie也有大小限制,最多只能保存4K的字符串,而权限code的大小不确定,超出这个范围cookie写入也不成功。
最后得出结论,cookie不适合保存大量信息,只能用于用户名密码这些小信息的保存。
3)每次进入子系统都重新查询一下权限信息
缺点:由于权限信息的SQL查询语句较多,视图也比较复杂,每次查询会有点慢,影响系统性能(具体影响多少没有实际资料显示)
最终:在网上查了关于Tomcat的两个应用session共享的解决方案,通过配置server.xml中的Context可以实现,但是Jboss是否提供类似功能却无法查询,有空继续寻求解决方案(网上都提到单点登录能解决,可是我搜到的单点登录解决的只是多个系统共用一个登陆系统,具体到保存信息却没有提到)
相关推荐
7. **Shiro-Redis**:Shiro-Redis2.9是Shiro的一个扩展,它将session数据存储在Redis缓存中,解决了在分布式环境下的session共享问题。Redis是一个高性能的键值数据库,具有丰富的数据结构支持,适合存储session这样...
总之,"session共享项目测试"是一个旨在解决分布式系统中Session共享问题的实践项目,通过利用Redis的特性,实现了高效、可靠的Session管理,对于理解和提升分布式环境下的用户体验和系统架构有着重要意义。
Springboot实现多服务器session共享是指在分布式系统中,每个服务器上的Session可以共享,实现 Session 的同步和共享,从而解决了在分布式环境中Session不一致的问题。下面是关于Springboot实现多服务器session共享...
然而,当涉及到跨域(即不同域名)的Session共享时,问题就变得稍微复杂了。本篇文章将深入探讨C#中如何实现不同域名之间的Session共享,以及这一功能的重要性和应用场景。 Session共享的主要目的是在多个网站或...
在实现 session 共享之前,需要在项目中引入相关依赖项,包括: * Spring Data Redis:用于与 Redis 进行交互 * Jedis:用于连接 Redis * Shiro Spring:用于权限控制 3. Redis 配置 在使用 Redis 之前,需要进行...
本文将详细讲解如何在Spring Boot应用中解决跨域session共享的问题,并探讨防止SQL注入的相关策略。 首先,让我们理解什么是跨域。跨域是指由于浏览器的同源策略限制,不同域名、协议或端口之间的页面无法直接通信...
通过这样的集成,我们可以构建出一个可扩展、高可用的分布式Web应用,有效解决了Session共享问题。同时,结合Nginx的负载均衡能力,能够进一步提高系统的稳定性和处理能力。对于大型Web应用来说,这是一种常见的解决...
使用 Tomcat 实现 J2EE 同域中跨项目 Session 共享 Tomcat 是一个流行的 Web 服务器软件,它提供了强大的 Session 管理机制。Session 是一种保存用户状态的机制,允许 Web 应用程序存储和访问用户的状态信息。然而...
除了memcache,还有其他如Redis等分布式存储系统也可用于session共享,它们各有优缺点,选择哪种取决于具体项目的需求和资源。 总的来说,"PHP实现多服务器session共享之memcache共享"这个主题涵盖的知识点包括:...
而Redis则是一个高性能的键值存储系统,常用于实现分布式环境下的session共享,以解决单体应用或微服务架构中的session粘滞性问题。 描述中提到的"数据库、redis改为本地"意味着在配置中,Redis服务器可能被设置为...
在IT行业中,Session管理是Web应用中的重要环节,它用于在服务器端存储用户会话信息,...通过对"redissession共享代码"的深入研究和实践,开发者可以掌握这一技术,并将其应用到实际项目中,提升用户体验和系统稳定性。
以下是这些技术及其在会话共享中的作用: 1. **Nginx**:Nginx是一款高性能的反向代理服务器,通常用作负载均衡器。它能够接收用户的HTTP请求,并根据预设策略将请求转发到后端的Tomcat服务器。在session共享场景中...
Spring Session 是一个开源项目,由 Pivotal Software 开发,旨在提供一种在分布式环境中实现Session共享的解决方案。在传统的Web应用中,Session信息通常存储在单个服务器的内存中,当应用部署在集群或者分布式环境...
在这个项目中,Redis被用作Session存储,解决了分布式环境下的Session共享问题。当用户在集群中的任一服务器上登录后,其Session信息会被存储在Redis中,其他服务器可以通过访问Redis获取该用户的信息,保证了会话的...
在Java Web开发中,Session是服务器用来存储用户会话状态的一种机制。当用户登录后,服务器将用户信息存储在Session中,然后通过Session ...在实际应用中,可以根据项目需求和资源状况,选择最合适的Session共享策略。
当我们在同一台服务器上部署多个Web项目时,有时需要实现不同Web项目之间的session共享,以便用户在访问一个项目时的数据能够在其他项目中继续有效。本篇文章将深入探讨如何在Tomcat服务器上实现在不同Web项目之间...
在现代Web应用开发中,session共享是一个至关重要的需求,特别是在分布式系统中,多个服务器节点需要共享用户的状态信息。Spring Session + Redis的结合提供了一个高效且可靠的解决方案,它允许跨服务器节点透明地...
在分布式系统中,Session共享是一个常见的挑战,尤其是在多个服务器或应用之间需要保持用户状态时。本文将深入探讨一种实现方式——使用Tomcat8与Redis相结合的Session共享方案。该方案旨在确保用户在集群中的任意一...
在项目中引入Redis客户端库,如Jedis,以及对应的session共享jar包,以便Tomcat能够与Redis通信。 3. 配置Redis 确保Redis服务器已经安装并运行,配置文件`redis.conf`中未禁止对远程客户端的连接,并根据`server....