当使用通过ajp连接到tomcat的apache时,request.getDispatcher(";/newurl";).forward()是否有效?

当使用通过ajp连接到tomcat的apache时,request.getDispatcher(";/newurl";).forward()是否有效?,tomcat,redirect,apache2,forward,ajp,Tomcat,Redirect,Apache2,Forward,Ajp,我试图通过编写一个servlet过滤器来改变我正在使用的第三方应用程序的行为,根据特定条件将请求转发到特定的URL 我最初尝试使用request.getDispatcher(url.forward()但始终显示一个404页面,显示找不到url。我通过使用request.sendRedirect解决了这个问题,但直到现在我才意识到404屏幕是tomcat在服务器上常见的屏幕 这让我开始思考这个例子中的配置。我试图转发的url是一个cgi脚本。我们将apache作为通过ajp连接器连接的前端,apa

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

我最初尝试使用
request.getDispatcher(url.forward()但始终显示一个404页面,显示找不到url。我通过使用
request.sendRedirect
解决了这个问题,但直到现在我才意识到404屏幕是tomcat在服务器上常见的屏幕

这让我开始思考这个例子中的配置。我试图转发的url是一个cgi脚本。我们将apache作为通过ajp连接器连接的前端,apache配置为执行cgi脚本

所以我的问题是,servlet过滤器中的forward是否曾经到达apache,或者转发是否由tomcat专门处理,这就是它无法工作的原因

servlet过滤器中的前向过滤器是否曾经到达apache


否。
RequestDispatcher.forward
是appserver的webapp中的一个内部操作,用于将流控制从一个内部组件(例如servlet)转移到另一个内部组件(例如JSP)。不能转发到appserver之外的资源,如CGI脚本。您必须使用重定向来完成此操作。

谢谢。这正是我所怀疑的,但我花了大约20分钟才弄清楚到底发生了什么。我认为这首先与URL编码有关,所以我正在解决一个不存在的问题。重定向效果很好,所以结局很好。