当使用通过ajp连接到tomcat的apache时,request.getDispatcher(";/newurl";).forward()是否有效?
我试图通过编写一个servlet过滤器来改变我正在使用的第三方应用程序的行为,根据特定条件将请求转发到特定的URL 我最初尝试使用当使用通过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
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编码有关,所以我正在解决一个不存在的问题。重定向效果很好,所以结局很好。