一尘不染

Tomcat实例之间转发RequestDispatcher

tomcat

我有一个场景,其中有单个入口点Servlet和其他Servlet,这些Servlet将请求转发给进行繁重的处理。

我正在寻找分配此负载的选项,我想知道是否有可能使用Tomcat或其他平台在使用群集类型配置或类似配置的不同服务器上的Servlet之间转发请求。

我已经找到了一些有关将Servlet和Tomcat集群化的文档,但是没有文件表明从我所看到的是否可以进行Servlet请求转发。

http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/web-
tier/web-
tier5.html

http://tomcat.apache.org/tomcat-5.5-doc/cluster-
howto.html


阅读 233

收藏
2020-06-16

共1个答案

一尘不染

您可以在群集的Tomcat环境中通过WebApp分发它,并将其添加crossContext="true"到有<Context>问题的WebApp
的元素中。这是Tomcat的Context Configuration
Reference
的摘录:

crossContext

true如果希望此应用程序内的调用ServletContext.getContext()成功返回此虚拟主机上运行的其他Web应用程序的请求调度程序,则设置为。false在注重安全的环境中设置为(默认值),以使getContext()始终返回null

这样,您可以获取所需的内容RequestDispatcher,如下所示:

RequestDispatcher dispatcher = getServletContext().getContext(name).getRequestDispatcher(path);
2020-06-16