[java] web.xml에서 기본 오류 페이지를 지정하는 방법은 무엇입니까?

내가 사용하고 <error-page>에 요소를 web.xml에 사용자는 404의 코드 오류로 특정 오류가 발생할 때 친절한 오류 페이지를 지정합니다 :

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

그러나 사용자가에 지정된 오류 코드를 충족하지 않으면 <error-page>기본 오류 페이지가 표시 되기를 원합니다 . web.xml 의 요소를 사용하여 어떻게 할 수 있습니까?



답변

Servlet 3.0 이상에서는 다음을 지정할 수 있습니다.

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

그러나 Servlet 2.5를 사용하는 동안 모든 일반적인 HTTP 오류를 개별적으로 지정하는 것 외에 다른 방법은 없습니다. 최종 사용자가 겪을 수있는 HTTP 오류를 파악해야합니다. 예를 들어 HTTP 인증 사용법이 포함 된 기본 웹앱에서 디렉토리 목록이 비활성화되어 있고 사용자 정의 서블릿 및 처리되지 않은 예외를 발생시킬 수 있거나 모든 메소드가 구현되지 않은 코드를 사용하는 코드를 사용하는 경우 HTTP 오류에 대해 설정하려고합니다. , 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>

그것은 가장 일반적인 것들을 포함해야합니다.


답변

다음과 같은 작업을 수행 할 수도 있습니다.

<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 페이지를 리턴합니다.


답변

아래 예를 <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>


답변