RequestDispatcher在Tomcat实例之间转发

我有一个场景,我有单个入口点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

您可以通过群集Tomcat环境中的webapps进行分发,并将crossContext="true"添加到相关crossContext="true"元素中。 以下是Tomcat的Context Configuration Reference的摘录:

crossContext

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

这样您就可以获得所需的RequestDispatcher ,如下所示:

 RequestDispatcher dispatcher = getServletContext().getContext(name).getRequestDispatcher(path);