我想使用Tomcat的error-page指令来显示各种不同的错误页面以响应各种类型的异常。但是,我希望显示的错误页面具有不同的样式和内容,具体取决于导致错误的原始请求URL。
具体来说,我有我的Web应用程序的管理员部分和用户部分。在样式和菜单方面,错误页面应该不同。区分给定页面所在部分的最可靠方法是在URL中查找字符串。我想将Tomcat错误页面指向一个servlet,它将解析URL并重定向到适当样式的错误页面。
那么1)是否可以使用错误页面或其他一些机制将错误重定向到servlet而不是JSP? (如果没有,我可以在JSP中做我想象的吗?)
和2)一旦我进入我的servlet,我能否确定导致错误的请求URL(request.requestURI似乎不起作用 - 它指向错误JSP本身的位置)。 / p>
答案 0 :(得分:4)
您可以从
获取原始requestURIpageContext.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的错误页面是显示应用程序错误的最后手段(以防您的错误页面实际失败)。通常您应该(我建议)构建您自己的错误页面,您可以在非技术视图中显示错误(默认情况下)和技术视图(如果用户需要)以适合您的用户的方式。