【问题标题】:How can I populate dynamic information on a custom Tomcat 404 page?如何在自定义 Tomcat 404 页面上填充动态信息?
【发布时间】:2015-06-25 03:45:31
【问题描述】:

我正在使用 Tomcat + Spring 组合一个 Web 应用程序,并且我希望拥有包含动态内容的自定义 404 页面,而不仅仅是一个静态 html 文件。例如,如果我在一个博客网站上工作,我可能希望在 404 页面上显示 5 个最新帖子的列表,以将用户引导至实际内容。

此外,有没有办法在生成错误页面时利用错误信息?例如,如果错误涉及我的应用程序中发生的异常,而不是错误的 url,我可以显示堆栈跟踪吗?

【问题讨论】:

    标签: spring spring-mvc tomcat http-status-code-404


    【解决方案1】:

    您是从头开始创建项目吗?您可以使用Spring-Boot吗? Spring Boot 提供了很多很好的开箱即用的错误处理功能,可以轻松修改。

    无论哪种方式,如果你只是想在 web.xml 中使用标准错误页面映射,或者示例:

    <error-page>
        <error-code>404</error-code>
        <location>/error/404</location>
    </error-page>
    

    当您的应用程序返回 404 状态码时,请求将被拦截并在内部转发到端点 /error/404 - 它可以是您的 Spring 应用程序中的任何端点,因此可以执行您在正常情况下执行的任何动态操作控制器。

    要以编程方式执行此操作,无需 Spring Boot,您可以创建一个过滤器类来包装所有请求并捕获异常并检查非 2XX 响应代码并适当地转发/处理 - 这基本上是 Spring Boot 人员实施的解决方案(参见ErrorPageFilter 类)。

    要访问有关异常的信息,可以从请求中访问 - 请参阅此处以获取类似答案:https://stackoverflow.com/a/1034667/258813

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-17
      • 2021-02-18
      • 2018-10-14
      • 1970-01-01
      • 2018-11-16
      相关资源
      最近更新 更多