处理HTTP状态代码的通用机制

问题描述

| 我知道您可以在web.xml中指定错误页面,如下所示
<error-page>
    <error-code>404</error-code>
    <location>/404.html</location>
</error-page>
我发现列出每个错误代码的页面有点繁琐。我想知道在这种情况下最佳的惯例是什么!有没有更好的方法来自动生成这些页面,例如使用JSP或servlet或通过Spring或Stripes?     

解决方法

如果您要谈论页面本身的生成,则可以将错误代码映射到jsp页面,例如
<error-page>
    <error-code>404</error-code>
    <location>/errors.jsp</location>
</error-page>
<error-page>
    <error-code>500</error-code>
    <location>/errors.jsp</location>
</error-page>
如果您在谈论映射本身,那么一种可能的解决方案(尽管我建议您使用标准的web.xml映射)可以避免所有错误代码的映射,那就是使用Servlet过滤器来过滤所有资源,委托访问FilterChain并检查响应代码集是否不是200(或任何其他预定义的可接受响应,例如401),然后重定向到errors.jsp页面。 为了捕获响应代码,您将使用保存响应代码集的HttpServletResponseWrapper实现包装HttpServletResponse。     ,Stripes提供了一些可扩展但简单的方法来处理异常。 Stripes网站上有不错的文章,Stripes书中也有关于它的几页。 从本质上讲,您将实现ExceptionHandler接口,从DefaultExceptionHandler扩展(我们通常要做的事情),或者存在DelegatingExceptionHandler以用于更高级的情况。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...