有时我们会遇到一个大点的项目,为了方便实现有些功能,我们会把项目拆成不同的独立web项目。
但我们在管理这些项目时,只有一个登陆口,然后在其他项目取session来实现身份的验证。
1、配置tomcat下 conf/server.xml文件,在<Host></Hoser>配置如下:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<!-- aa 和bb 为两个不同的web项目 -->
<Context path="/aa" reloadable="true" crossContext="true" />
<Context path="/bb" reloadable="true" crossContext="true"/>
</Host>
2、 在 aa项目存入session
session.setAttribute("user",new Date().toString()+"weiqingli");
ServletContext ContextA =session.getServletContext();
ContextA.setAttribute("session", session);
3、在bb 项目取出 session
HttpSession session1 =request.getSession();
ServletContext Context = session1.getServletContext();
ServletContext Context1= Context.getContext("/aa");
if(Context1 !=null && !Context1.equals("")){
HttpSession sess =(HttpSession)Context1.getAttribute("session");
out.println(sess.getAttribute("user"));
}
大家可能很容易看得出这个是单向传的session,其实要实现双向,将上面的程序反写就可以实现从bb存入,aa取出了。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/weiqingli190949353/archive/2011/06/22/6562312.aspx
分享到:
相关推荐
配置完成后,重启Tomcat服务器,现在你的应用应该能够使用Redis来存储和共享session了。这种方式可以避免单点故障,提高session的可用性和可靠性,同时减少服务器内存的压力,因为session数据不再存储在每个Tomcat...
在这样的配置中,确保用户会话(Session)在多个 Tomcat 实例之间共享是至关重要的,以保证用户在访问过程中不会因为服务器切换而丢失登录状态或其他个性化信息。本文将详细介绍如何在 Nginx 和 Tomcat 集群中实现 ...
在集群环境中,多台Tomcat服务器共享相同的Web应用,并且互相协作,当一台服务器出现故障时,其他服务器可以接管其工作,保证服务的连续性。 实现Tomcat集群的关键是session的复制。由于用户的session数据通常存储...
首先,理解Session共享的必要性:当Web应用部署在多台服务器上,用户可能在不同服务器间切换,如果不能共享Session,会导致用户状态丢失,比如购物车信息、登录状态等。因此,Tomcat的Cluster机制应运而生,它允许在...
本解决方案将详细介绍如何在`CentOS7`上配置`Nginx`以实现`Tomcat`的负载均衡,并利用`Redis`进行Session共享,以提高系统的可扩展性和用户会话的一致性。 首先,我们需要在`CentOS7`上安装`Nginx`。可以使用`yum`...
这个解决方案的优点在于,它不仅可以提高系统的扩展性,还能够确保在多台Tomcat服务器之间共享Session,实现了负载均衡下的会话持久化。同时,由于Redis提供了丰富的数据结构,还可以支持更复杂的Session管理策略,...
- 确保所有Tomcat实例共享相同的session ID命名空间,这通常通过设置相同的`jvmRoute`属性来完成。 - 为了减少网络开销,可以考虑只复制活动的session,而不是全部session。 - 考虑使用持久化存储来备份session,以...
在分布式系统中,Session共享是一个常见的需求,尤其是在多个应用服务器之间。`Tomcat7`是一个广泛使用的Java Servlet容器,而`Redis`则是一款高效的键值存储系统,常用于缓存和分布式数据共享。本教程将详细讲解...
2. 添加Redis Session Manager:在Tomcat的`webapps/yourapp/WEB-INF/classes/META-INF`目录下创建`context.xml`文件(如果不存在的话),然后添加以下配置: ```xml <!-- 配置Redis连接工厂 --> ...
【Apache+Tomcat 集群与负载均衡及Session绑定】是将多个Apache和Tomcat服务器配置成一个集群,以实现更高的服务可扩展性和可用性。集群的基本思想是通过将工作负载分散到多个服务器,避免单点故障,提高系统的整体...
2. **共享Session数据**:集群中的服务器需要共享用户Session数据,这可以通过诸如基于内存的`replicatedManager`或基于数据库的`PersistentManager`等策略实现。 3. **负载均衡器**:在集群前部署一个负载均衡器,...
在使用Tomcat作为Web服务器运行多个Java Web应用程序时,经常需要实现多个应用程序之间的会话共享。本文将详细介绍如何在Tomcat中实现多个Web应用共享会话的解决方案。 ### 会话共享的重要性 在多应用环境下,用户...
Tomcat8的集群配置涉及到共享session数据和应用的同步。这需要配置`context.xml`和`server.xml`文件。首先,确保每个Tomcat实例都配置了相同的session域存储(例如,使用JNDI Realm)。其次,在`server.xml`中配置`...
为了在Nginx和Tomcat之间共享Session,我们需要使用一个名为`Jedis`的Java库来连接Redis,并配置Tomcat的`Manager`类。以下是一些关键步骤: - 在Tomcat的`conf/context.xml`或特定应用的`META-INF/context.xml`中...
对于开发者而言,Tomcat还提供了丰富的管理工具,如`Manager App`和`Host Manager App`,它们分别用于管理应用部署和虚拟主机设置。这些工具可以通过浏览器访问`http://localhost:8080/manager/html`和`...
2. **配置共享目录**:为确保集群内的节点共享session信息,需要设置一个共享的目录,如`shared/classes`和`shared/lib`,用于存放集群间通信所需的类和库。 3. **配置server.xml**:在每个Tomcat实例的`server.xml...
使用 sticky session 或共享session存储(如memcached或Redis)来确保用户在集群中的会话不中断。 2. 配置server.xml: 每个Tomcat实例都需要有自己的session ID,避免冲突,可通过设置`useIPVHosts="true"`和`...
在安全性方面,Tomcat 8.5.32修复了多个安全漏洞,包括跨站脚本攻击(XSS)、跨站请求伪造(CSRF)和远程代码执行等问题。因此,保持Tomcat版本的更新对于维护系统安全至关重要。 总的来说,Apache Tomcat 8.5.32是...
9. **集群和负载均衡**:高级用户可以配置Tomcat集群,实现多台服务器间的 session 共享和故障转移,提高可用性和可扩展性。 10. **监控和管理**:Tomcat内置的Manager App和Host Manager App允许通过Web界面进行...
- **集群**:如果需要高可用性和负载均衡,可以设置Tomcat集群,实现多个实例间的 session 共享。 - **SSL配置**:为了保证数据传输的安全性,可以配置Tomcat支持HTTPS。 在实际开发和生产环境中,了解并熟练掌握...