请问.getDispatcher(“/ newurl”)。forward()在使用通过ajp连接到tomcat的apache时会工作吗?

时间:2012-01-13 08:11:16

标签: tomcat redirect apache2 forward ajp

我试图通过编写servlet过滤器来根据特定条件将请求转发到特定URL,从而改变我正在使用的第三方应用程序的行为。

我最初尝试使用request.getDispatcher(url).forward();,但始终显示404页面,显示无法找到网址。我通过使用request.sendRedirect来解决这个问题,但现在我才意识到404屏幕是我通常通过tomcat看到的服务器。

这让我想到了这个实例中的配置。我试图转发的网址是一个cgi脚本。我们将apache作为通过ajp连接器连接的前端,并且apache配置为执行cgi脚本。

所以我的问题是,来自servlet过滤器的foward是否曾经使它成为apache,或者是tomcat特有的前向处理,这就是为什么它不起作用?

1 个答案:

答案 0 :(得分:1)

  

来自servlet过滤器的foward曾经做过apache

没有。 RequestDispatcher.forward是appserver的webapp中的内部操作,用于将流控制从一个内部组件(例如servlet)传输到另一个内部组件(例如JSP)。您无法转发到应用程序服务器之外的资源,例如CGI脚本。你必须使用重定向。