代码之家  ›  专栏  ›  技术社区  ›  Jacob Mattison

根据原始请求的URL显示不同的Tomcat错误页

  •  2
  • Jacob Mattison  · 技术社区  · 15 年前

    我想使用Tomcat的错误页指令来显示各种不同的错误页,以响应各种类型的异常。但是,我希望显示的错误页面具有不同的样式和内容,具体取决于导致错误的原始请求URL。

    具体来说,我有一个Web应用程序的管理部分和一个用户部分。在样式和菜单方面,错误页面应该是不同的。区分给定页面所在部分的最可靠方法是在URL中查找字符串。我想把Tomcat错误页面指向一个servlet,它可以解析URL并重定向到适当样式的错误页面。

    那么1)是否可以使用错误页面或其他机制将错误重定向到servlet而不是JSP?(如果没有,我能做我在JSP中想象的事情吗?)

    2)一旦我进入servlet,我是否可以确定导致错误的请求URL(request.requesturi似乎不起作用——它指向错误jsp本身的位置)。

    2 回复  |  直到 13 年前
        1
  •  4
  •   jimr    15 年前

    您可以从

    pageContext.errorData.requestURI
    

    在您注册的错误JSP中 <error-page> 在你 web.xml

    http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/jsp/ErrorData.html 更多信息。

    至于使用servlet,您可以使用 <jsp:forward> 在错误JSP中转发到您选择的servlet。

        2
  •  0
  •   adrian.tarau    15 年前

    Tomcat的错误页是显示应用程序错误的最后一个方法(以防您的错误页实际失败)。通常,您应该(我建议)构建自己的错误页,在其中可以以适合您的用户的方式在非技术视图(默认情况下)和技术视图(如果用户需要)中显示错误。