我有一个场景,我有单个入口点Servlet和进一步的Servlet请求被转发到进行繁重处理。
我正在寻找分发此负载的选项,我想知道是否可以使用Tomcat或其他平台在使用群集类型配置或类似设置的不同服务器上的Servlet之间转发请求。
我找到了一些关于集群Servlet和Tomcat的文档,但是没有一个文档表明我可以看到Servlet请求是否转发。
答案 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);