我有一个场景,其中有单个入口点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
您可以在群集的Tomcat环境中通过WebApp分发它,并将其添加crossContext="true"到有<Context>问题的WebApp 的元素中。这是Tomcat的Context Configuration Reference的摘录:
crossContext="true"
<Context>
crossContext true如果希望此应用程序内的调用ServletContext.getContext()成功返回此虚拟主机上运行的其他Web应用程序的请求调度程序,则设置为。false在注重安全的环境中设置为(默认值),以使getContext()始终返回null。
crossContext
true如果希望此应用程序内的调用ServletContext.getContext()成功返回此虚拟主机上运行的其他Web应用程序的请求调度程序,则设置为。false在注重安全的环境中设置为(默认值),以使getContext()始终返回null。
true
ServletContext.getContext()
false
getContext()
null
这样,您可以获取所需的内容RequestDispatcher,如下所示:
RequestDispatcher
RequestDispatcher dispatcher = getServletContext().getContext(name).getRequestDispatcher(path);