如何在web.xml中指定默认错误页面?

我在web.xml中使用<error-page>元素来指​​定友好的错误页面,当用户遇到一些错误,例如错误代码为404时:

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

不过,我希望如果用户不符合<error-page>指定的任何错误代码,他或她应该看到一个默认的错误页面。 我怎样才能使用web.xml中的元素?

在Servlet 3.0或更新版本中,您可以指定

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

但是,由于您仍然使用Servlet 2.5,除了单独指定每个常见的HTTP错误,没有别的办法。 您需要确定最终用户可能面对的HTTP错误。 在准系统Web应用程序中,例如使用HTTP身份validation,具有禁用的目录列表,使用自定义servlet和可能会抛出未处理exception的代码,或者没有实现所有方法,那么您希望将其设置为HTTP错误401 ,403,500和503。

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

这应该涵盖最常见的。

你也可以做这样的事情:

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

对于错误代码403,它将返回页面403.html,对于任何其他错误代码,它将返回页面error.html。