Как я могу отловить все ошибки на той же странице из 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>