2012-03-17 24 views
0

是否有可能通过请求分派器向另一个项目中的servlet发送http回发请求。我试过,但RequestDispatcher将请求传输到同一服务器上的另一个Web应用程序

给定的URL在同一个项目检查,并给出了404错误......

HTTP Status 404 - /FilterI/http:/IP:8080/FilterII/RequestServlet 

type Status report 

message /FilterI/http:/IP:8080/FilterII/RequestServlet 

description The requested resource (/FilterI/http:/10.49.11.197:8080/FilterII/RequestServlet) is not available. 

无论是战争部署在同一server.I可以通过使用.sendRedirect达到同样的事情( )函数..但是为什么它不是在requestdispatcher的帮助下运行的。

回答

0

The javadoc说:

指定可以是相对的路径名,虽然它不能在当前servlet上下文外侧延伸 。

(重点煤矿)

所以,你要问是不可能的。

+0

Thanks.I想通了它不可能... – AngelsandDemons 2012-03-26 14:04:18

1

是的,使用ServletContext API。您可以使用ServletContext.getContext("othercontext")获取其他应用程序的servlet上下文,并获取该应用程序中servlet的请求分派器。

下面是解释如何做到这一点的代码:

ServletContext otherCtx = currentServletContext.getContext("otherContext"); 
RequestDispatcher dispatcher = otherCtx.getRequestDispatcher("/forwardedPath"); 
dispatcher.forward(request, response); 
+0

你忘了提一个并非不重要的事实,以及如何配置吧:获取其他Web应用程序上下文的能力默认为*禁用*,如果不是全部自尊的容器,则默认为禁用*。 – BalusC 2012-03-18 00:32:27

+0

在tomcat中,例如需要将crossContext =“true”放入context.xml中。 http://stackoverflow.com/a/6555794/21499 – 2013-10-18 10:41:35

相关问题