Comment puis-je attraper toutes les erreurs à même page de web.xml?
-
23-10-2019 - |
Question
J'ai essayé d'utiliser
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/errors/error.jsp</location>
</error-page>
mais je ne marche pas attraper des erreurs 404. Comment puis-je attraper aussi 404 erreurs, etc. à cette même page? Je veux attraper tous les codes d'erreur à même page d'erreur jsp.
La solution
Vous pouvez ajouter une balise <error-code>
pour que
<error-page>
<error-code>404</error-code>
<location>/errors/error.jsp</location>
</error-page>
Mise à jour:
Selon votre question mise à jour - vous devez définir individuellement chaque code d'erreur dans le web.xml.
Utilisation <exception-type>java.lang.Throwable</exception-type>
va attraper les 500s d'erreur, mais pas 404s
Autres conseils
J'utilise ceci:
<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>
Dans tomcat7 (travail de puissance sur les anciennes versions, mais je n'ai pas vérifié)
ajouter les pages d'erreur que vous voulez (par exemple 404.jsp, general_error.php etc.)
ajouter à web.xml (tout d'abord, puis spécifiques adapter à votre code bien sûr.):
<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>