RequestDispatcher在Tomcat实例之间转发

时间:2010-05-12 00:29:38

标签: java tomcat servlets

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

1 个答案:

答案 0 :(得分:5)

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

  

crossContext

     

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

通过这种方式,您可以获得所需的RequestDispatcher,如下所示:

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