Как я могу отловить все ошибки на той же странице из web.xml?

Я пытался использовать

<error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/errors/error.jsp</location>  
</error-page> 

но я не уловил 404 ошибки. Как я могу поймать также 404 и т. Д. Ошибки на той же странице? Я хочу поймать ВСЕ коды ошибок на той же странице ошибок JSP.

3 ответа

Решение

Вы можете добавить <error-code> тег для этого

<error-page>
    <error-code>404</error-code>
    <location>/errors/error.jsp</location>
</error-page> 

ОБНОВИТЬ:

В соответствии с вашим обновленным вопросом - вам нужно определить КАЖДЫЙ код ошибки в файле web.xml.

С помощью <exception-type>java.lang.Throwable</exception-type> поймает ошибку 500 с, но не 404 с

Я использую это:

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

<error-page>
    <error-code>403</error-code>
    <location>/security/403</location>
</error-page>

<error-page>
    <error-code>404</error-code>
    <location>/security/404</location>
</error-page>

В Tomcat7 (может работать на старых версиях, но я не проверял)

добавьте нужные страницы ошибок (например, 404.jsp, general_error.php и т. д.)

добавьте в web.xml (все сначала, а потом и конкретно. адаптируйте его к вашему коду, конечно):

<error-page>
    <location>general_error.php</location>
</error-page>

<error-page>
    <error-code>404</error-code>
    <location>404.jsp</location>
</error-page>

<error-page>
    <error-code>409</error-code>
    <location>error_page.jsp?error=custom_message</location>
</error-page>
Другие вопросы по тегам