2

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 监视器,因为它会引发以下警告。

MonitorFilter::WARNING:监视器过滤器必须是链中的第一个过滤器。

当我在我的应用程序中使用 Spring 安全性时发生了这种情况,它被报告为jira问题。

4

1 回答 1

1

看看这个帖子。我从来没有亲自做过这个

<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 中解决了,所以你唯一的解决方案是更新到 post- 29 版本。

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

通过定义仅具有嵌套位置元素的错误页面,添加对要在 web.xml 中定义的默认错误页面的支持。看起来这个特性原本打算包含在 Servlet 3.0 规范中,但被意外遗漏了。(市场)

于 2013-01-25T08:42:17.490 回答