ここでは、HTTPエラーステータスコードに対するエラーページの指定箇所と使用されるエラーページについて説明します。
HTTPエラーステータスコードに対するエラーページの指定箇所について
HTTPエラーステータスコードに対するエラーページの指定箇所を以下に示します。
Webアプリケーション環境定義ファイル(deployment descriptor)
Webサーバの環境設定
どの指定箇所で指定したエラーページが使用されるかは、問題の発生箇所により異なります。必要に応じてエラーページの表示内容を変更または統一してください。
<error-page>タグで指定します。指定方法については“7.5 Webアプリケーション環境定義ファイル(deployment descriptor)”を参照してください。
本エラーページはWebアプリケーションで発生したHTTPエラーステータスコードに対して有効です。
HTTPエラーステータスコードに該当するエラーページを指定していない場合は、Servletコンテナによってデフォルトのエラーページが使用されます。
本エラーページが使用される場合、HTTPステータスコードは変更されません。例えばExceptionに対するerror-pageを設定した場合、HTTPステータスコードは、500となります。
なお、Webブラウザにレスポンスヘッダが送信済みの場合は、送信済みの情報は取り戻すことはできないので、送信済みのHTTPステータスコードになります。
以下の場合は、Servletサービスに制御が渡らないためWebサーバの環境設定で指定したエラーページが使用されます。
リクエストURLに含まれるWebアプリケーション識別子に誤りがある
Webアプリケーションへのリクエストではない
例
以下のHTTPエラーステータスコードを例に、各指定箇所で指定したエラーページが使用される場合の説明をします。
HTTPエラーステータスコード 404(Not Found)
HTTPエラーステータスコード 500(Internal Server Error)
Webアプリケーション環境定義ファイルで指定したエラーページが使用される場合
Webアプリケーション配下のコンテンツが存在しない場合
アプリケーションがServlet APIでHTTPエラーステータスコードに404を設定した場合
Webサーバのエラーページが使用される場合
リクエストURLに含まれるWebアプリケーション識別子に誤りがある場合
Webアプリケーションへのリクエストではなく、Webサーバ上にコンテンツが存在しない場合
Webアプリケーション環境定義ファイルで指定したエラーページが使用される場合
サーブレットまたはJSPアプリケーション実行中にExceptionまたはErrorが発生した場合
注)アプリケーション内で発生したエラーを捕捉(catch)したり、JSPのエラーページを設定するなどし、明示的にエラーハンドリングして正常動作させている場合を除きます。
アプリケーションがServlet APIでHTTPエラーステータスコードに500を設定した場合
Webサーバのエラーページが使用される場合
以下の場合に使用されることがあります。
Webサーバコネクタで異常を検出した場合
例:IJServerに接続できない場合
Webサーバコネクタのタイムアウトが発生した場合
注意
Webブラウザの種類や設定によっては意図したエラーページが表示されず、Webブラウザで用意されたエラーページが表示されることがあります。
例:Microsoft(R) Internet Explorer 8
「ツール」→「インターネット オプション」→「詳細設定」→「HTTP エラー メッセージを簡易表示する」が有効 (デフォルト値)の場合。