142

ユーザーがコード404のエラーなどの特定のエラーに遭遇したときに 、 web.xml<error-page>の要素を使用してわかりやすいエラーページを指定しています。

<error-page>
        <error-code>404</error-code>
        <location>/Error404.html</location>
</error-page>

ただし、ユーザーがで指定されたエラーコードを満たさない場合は<error-page>、デフォルトのエラーページが表示されるようにしたいと思います。web.xmlの要素を使用してそれを行うにはどうすればよいですか?

4

3 に答える 3

246

サーブレット3.0以降では、指定するだけで済みます

<web-app ...>
    <error-page>
        <location>/general-error.html</location>
    </error-page>
</web-app>

ただし、サーブレット2.5を使用しているため、一般的なHTTPエラーをすべて個別に指定する以外に方法はありません。エンドユーザーが直面する可能性のあるHTTPエラーを把握する必要があります。たとえば、HTTP認証を使用する、ディレクトリリストを無効にする、未処理の例外をスローする可能性のあるカスタムサーブレットとコードを使用する、またはすべてのメソッドが実装されていない、必要最低限​​のWebアプリでは、HTTPエラーに設定する必要があります401 、それぞれ403、500、503。

<error-page>
    <!-- Missing login -->
    <error-code>401</error-code>
    <location>/general-error.html</location>
</error-page>
<error-page>
    <!-- Forbidden directory listing -->
    <error-code>403</error-code>
    <location>/general-error.html</location>
</error-page>
<error-page>
    <!-- Missing resource -->
    <error-code>404</error-code>
    <location>/Error404.html</location>
</error-page>
<error-page>
    <!-- Uncaught exception -->
    <error-code>500</error-code>
    <location>/general-error.html</location>
</error-page>
<error-page>
    <!-- Unsupported servlet method -->
    <error-code>503</error-code>
    <location>/general-error.html</location>
</error-page>

それは最も一般的なものをカバーする必要があります。

于 2011-08-15T15:01:10.320 に答える
25

次のようなこともできます。

<error-page>
    <error-code>403</error-code>
    <location>/403.html</location>
</error-page>

<error-page>
    <location>/error.html</location>
</error-page>

エラーコード403の場合は、ページ403.htmlを返し、その他のエラーコードの場合は、ページerror.htmlを返します。

于 2015-07-08T06:27:28.893 に答える
10

以下<error-page>を使用して、例外を指定することもできます。<exception-type>

<error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/errorpages/exception.html</location>
</error-page>

または、以下を使用してエラーコードをマッピングします<error-code>

<error-page>
    <error-code>404</error-code>
    <location>/errorpages/404error.html</location>
</error-page>
于 2018-02-19T08:26:37.270 に答える