我知道你可以在 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 过滤器来过滤所有资源,委托(delegate)访问 FilterChain 并检查响应代码集,如果它不是 200(或任何其他预定义的可接受响应,例如 401),然后重定向到 errors.jsp 页面。
为了捕获响应代码,您将使用保存响应代码集的 HttpServletResponseWrapper 实现包装 HttpServletResponse。
关于java - 处理 HTTP 状态码的通用机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6117736/