【问题标题】:How to specify servlet error-page per path如何指定每个路径的 servlet 错误页面
【发布时间】:2020-07-30 15:14:35
【问题描述】:

web.xml 的<error-page> 允许开发人员指定在出现某些错误(HTTP 状态或 java 异常)时返回给客户端的内容。

但我有 2 个不同的 404 错误页面,每个区域设置。

我的 Web 应用程序的结构使得区域设置 A 的所有资源都在路径 /a/ 下;路径 /b/ 下区域设置 B 的资源。

在尝试访问每个语言环境下的页面时,我希望有一个针对 404 的本地化错误页面(需要明确的是,尝试访问 /a/some-undefined-resource 应该返回 404 + 一个针对语言环境 A 本地化的错误页面)。

考虑到其他限制,实际上不可能为每个语言环境部署 2 个单独的应用程序,a.war 和 b.war。

如何根据请求的原始资源提供错误页面?

【问题讨论】:

    标签: servlets


    【解决方案1】:

    我最终放弃了使用<error-page> 服务我的SPA 的想法,并使用urlrewrite filter 将URL 重写为/a/index.html/b/index.html

    缺点是,当我在 SPA 中添加新路线时,现在有两个地方可以编辑:

    • 角度路线 (app-routing.module.ts),以及
    • urlrewrite.xml

    此外,如果我以后添加新的语言环境,我需要添加一组新的规则来涵盖我的所有路线。

    我也不知道这个过滤器会如何影响我网站的性能。由于这是一个低流量的项目,我会一直这样,直到找到更好的解决方案。

    还有一个好处:现在那些 - 否则合法 - 请求以状态 200 提供,真正缺少的资源以 404 表示,并且不包含默认内容。

    【讨论】:

      猜你喜欢
      • 2012-09-07
      • 1970-01-01
      • 2023-01-14
      • 2017-02-08
      • 1970-01-01
      • 1970-01-01
      • 2016-07-16
      • 2016-08-21
      相关资源
      最近更新 更多