给出404的web.xml中的错误页面

时间:2011-03-26 08:09:49

标签: java spring servlets java-ee web.xml

在我的一个项目中,我需要处理404(未找到资源)和403(拒绝访问)。我在web.xml中给出配置为

<error-page>
        <error-code>404</error-code>
        <location>/WEB_INF/jsp/web/exception/weberror.jsp</location>
    </error-page>

    <error-page>
        <error-code>403</error-code>
        <location>/WEB_INF/jsp/web/exception/accessDenied.jsp</location>
    </error-page>
</error-page>

现在,当访问被拒绝生成时,浏览器显示我本机404.我还删除了浏览器中的友好错误页面设置,但删除后我得到一个空白页面。

我的jsps在WEB-INF文件夹中。所有jsps所在的路径是

/WEB_INF/jsp/

请帮帮我。如果我遗失了什么?

4 个答案:

答案 0 :(得分:9)

/WEB-INF/下的文件受到保护,不会被客户端直接访问,这是defined in the Java EE specification。因此,您的错误页面必须位于此目录之外。尝试将它们移动到专用位置,例如G。 /errors/404.jsp

答案 1 :(得分:4)

在您的web.xml中使用WEB-INF而不是WEB_INF有什么用?

答案 2 :(得分:3)

问题是您使用的是WEB_INF而不是WEB-INF。 WEB-INF中提到的所有资源都受到客户端的保护,无法直接访问,因此将其移出WEB-INF始终是一种很好的做法。

由于

答案 3 :(得分:0)

上面指出的错误在web.xml上显示为cvc-complex-type.2.4.a:从元素'location'开始发现无效内容。

<error-page><location>/error</location></error-page>

它生成的错误是

  

{“java.sun.com/xml/ns/javaee":error-code,   预计会有“java.sun.com/xml/ns/javaee":exception-type}。

使用servlet 3.0规范开始避免使用错误页面映射特定错误代码是正确的,所以我通过以下更改解决了它: http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd版本= 3.0

版本更改从任何内容看 3.0