2

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

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

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

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

4

2 回答 2

4

您可以从中获取原始 requestURI

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 中使用 a 来转发到您选择的 servlet。

于 2009-06-19T15:38:45.570 回答
0

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

于 2009-06-19T15:21:50.923 回答