0

特定の条件に基づいて特定の URL にリクエストを転送するサーブレット フィルターを作成することで、使用しているサード パーティ アプリの動作を変更しようとしていました。

最初に試してみましrequest.getDispatcher(url).forward();たが、URLが見つからないことを示す404ページが常に表示されました。代わりにを使用してこれを回避しましたrequest.sendRedirectが、404 画面が、Tomcat によってサーバーでよく見られるものであることに気付いたのは今だけです。

そのため、このインスタンスの構成について考えるようになりました。転送しようとしている URL は CGI スクリプトです。ajpコネクタを介して接続されたフロントエンドとしてapacheがあり、apacheはcgiスクリプトを実行するように構成されています。

だから私の質問は、サーブレットフィルターからの転送がApacheに到達したことがありますか、それとも転送がTomcatによって特に処理されているため、機能しないのですか?

4

1 に答える 1

1

サーブレット フィルタからの転送が Apache に到達したことはありますか

No. RequestDispatcher.forwardは、アプリケーション サーバーの webapp 内の内部操作であり、フロー制御をある内部コンポーネント (サーブレットなど) から別のコンポーネント (JSP など) に転送するために使用されます。CGI スクリプトなど、appserver の外部のリソースに転送することはできません。そのためにはリダイレクトを使用する必要があります。

于 2012-01-13T08:16:07.237 に答える