6

doFilter() メソッドに次のコードがあり、アプリケーション スコープの Bean を取得します。

    if (request.getServletContext().getAttribute("resource")==null) {
        response.sendError(503);
        return;
    }

503 コードを web.xml の特定のエラー ページにマッピングしました。エラーが発生した場合、ブラウザでエラーページの内容を実際に取得します。しかし、アドレスバーのアドレスはエラーページのアドレスに変化しません: 要求されたサーブレットのアドレスはそこに残ります. それは正しい行動ですか?エラーページへのリダイレクトについて明示的にお知らせしたいと思います。sendRedirect() でのみ可能ですか?

4

1 に答える 1

4

これは正しい動作です。sendError() を使用すると、現在のリクエストにエラー ページで応答します。URL をエラー ページの URL に変更する場合は、sendRedirect() を使用してリダイレクトで応答する必要があります。

于 2013-03-11T14:09:25.433 に答える