Servlet 3.0的错误页面

时间:2013-01-25 08:26:15

标签: spring servlets web.xml servlet-3.0

web.xml文件中,我正在尝试指定错误页面,如下所示。

<error-page>
    <location>/WEB-INF/jsp/admin/ErrorPage.jsp</location>
</error-page>

根据Servlet 3.0,我希望它没有错误代码,但事实并非如此。我必须明确指定一个适当的错误代码,使其工作如下所示。

<error-page>
    <description>Missing page</description>
    <error-code>404</error-code>
    <location>/WEB-INF/jsp/admin/ErrorPage.jsp</location>
</error-page>

为什么前一种方法不适用于Servlet 3.0?


我已升级NetBeans 7.2.1。它支持具有Servlet 3.0 API的Apache Tomcat 7.0.27.0。

顺便说一下,我已经禁用了HTTP Monitor,因为它引发了以下警告。

  

MonitorFilter ::警告:监视器过滤器必须是第一个过滤器   链条。

当我在我的应用程序中使用Spring安全性时,它被报告为jira问题。

1 个答案:

答案 0 :(得分:1)

看看this post。我从来没有亲自做过这个

<error-page>
    <location>/WEB-INF/jsp/admin/ErrorPage.jsp</location>
</error-page>

在Tomcat 7上工作,就像我给你的链接中描述的错误一样。 我不知道Apache是​​否在更高版本的Tomcat中解决了它,但我怀疑 我以前的陈述可能是错的。挖掘一下,我发现:https://issues.apache.org/bugzilla/show_bug.cgi?id=52135并且问题本应在Tomcat 7.0.29中解决,因此您唯一的解决方案是更新到29之后的版本。

这里:http://tomcat.apache.org/tomcat-7.0-doc/changelog.html,在版本7.0.29的更改日志中,您可以阅读为什么会出现这样的问题:

  

添加对要在web.xml中定义的默认错误页面的支持   仅使用嵌套的位置元素定义错误页面。它出现   此功能旨在包含在Servlet 3.0中   规格,但意外地被遗漏。 (Markt的)