Как я могу отловить все ошибки на той же странице из web.xml? - PullRequest
14 голосов
/ 02 июня 2010

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

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

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

Ответы [ 3 ]

10 голосов
/ 02 июня 2010

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

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

UPDATE:

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

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

3 голосов
/ 20 ноября 2013

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

<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>
0 голосов
/ 01 мая 2013

В 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>
...