java - 处理 HTTP 状态码的通用机制

标签 java servlets http-status-codes

我知道你可以在 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/

相关文章:

wcf - 导致在 WCF 中返回 HTTP 错误状态

http - 发送 404 或 410 是否符合犹太洁食标准,但仍显示内容?

java - 在小于 O(n) 的时间内从排序数组中查找唯一数字

java - 如何将文件从一台电脑复制到另一台电脑

javascript - express : Specify HTTP status code when throwing error in service

java - 浏览器显示 jpeg 的原始图像数据。我应该确保响应中包含哪些 header ?

java - 我可以在 Java 中扩展 App Engine 标准错误 JSON 吗?

java - SQLite android 不创建所有表

java - Android 字体很棒的方形而不是某些字符(仅限 KitKat)

java - 上下文是只读的