java servlets tomcat6 web.xml custom-error-pages

java - ¿Cómo especificar la página de error predeterminada en web.xml?



servlets tomcat6 (3)

En Servlet 3.0 o posterior, puede especificar

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

Pero como todavía está en Servlet 2.5, no hay otra manera que especificar cada error común de HTTP individualmente. Necesita averiguar qué errores de HTTP podría enfrentar el usuario final. En una aplicación web barebones con, por ejemplo, el uso de autenticación HTTP, tener una lista de directorio desactivada, usar servlets personalizados y código que posiblemente arroje excepciones no controladas o no tenga todos los métodos implementados, entonces le gustaría configurarlo para errores HTTP 401 , 403, 500 y 503 respectivamente.

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

Eso debería cubrir los más comunes.

Estoy usando el elemento <error-page> en web.xml para especificar la página de error amigable cuando el usuario encuentra un cierto error como el error con el código de 404:

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

Sin embargo, quiero que si el usuario no cumple con ningún código de error especificado en <error-page> , él o ella debería ver una página de error predeterminada. ¿Cómo puedo hacer eso usando el elemento en el web.xml ?


También puede especificar <error-page> para excepciones usando <exception-type> , por ejemplo a continuación:

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

O mapee un código de error usando <error-code> :

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


También puedes hacer algo como eso:

<error-page> <error-code>403</error-code> <location>/403.html</location> </error-page> <error-page> <location>/error.html</location> </error-page>

Para el código de error 403 devolverá la página 403.html, y para cualquier otro código de error devolverá la página error.html.