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

时间:2009-06-19 14:35:48

标签: java jsp tomcat custom-error-pages

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

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

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

和2)一旦我进入我的servlet,我能否确定导致错误的请求URL(request.requestURI似乎不起作用 - 它指向错误JSP本身的位置)。 / p>

2 个答案:

答案 0 :(得分:4)

您可以从

获取原始requestURI
pageContext.errorData.requestURI

您在<error-page>

中通过web.xml注册的错误jsp

有关详细信息,请参阅http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/jsp/ErrorData.html

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

答案 1 :(得分:0)

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