我试图通过编写一个 servlet 过滤器来改变我正在使用的第 3 方应用程序的行为,以根据某些条件将请求转发到特定的 URL。
我最初尝试过,request.getDispatcher(url).forward();
但总是显示一个 404 页面,显示找不到该 url。我通过request.sendRedirect
改用解决了这个问题,但直到现在我才意识到 404 屏幕是我通常看到的由 tomcat 启动的服务器。
这让我开始思考这个例子中的配置。我要转发的 url 是一个 cgi 脚本。我们有 apache 作为通过 ajp 连接器连接的前端,并且 apache 被配置为执行 cgi 脚本。
所以我的问题是,servlet 过滤器的转发是否曾经到达 apache,或者转发是否由 tomcat 专门处理,这就是为什么它不起作用?