Java web.xml中的错误页提供404

Java web.xml中的错误页提供404,java,spring,servlets,jakarta-ee,web.xml,Java,Spring,Servlets,Jakarta 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>

在我的一个项目中,我需要处理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>

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

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

在WEB.xml中使用
WEB-INF
而不是
WEB\u-INF
是怎么回事?

问题是您使用的是WEB\u-INF而不是WEB-INF。 WEB-INF中提到的所有资源都受到客户端的保护,不能直接访问,因此最好将其移出WEB-INF


谢谢

上面指出的错误在web.xml上显示为cvc复杂类型。2.4.a:发现以元素“location”开头的无效内容

<error-page><location>/error</location></error-page>
/错误
它产生的错误是

{“java.sun.com/xml/ns/javaee”:错误代码, 应为“java.sun.com/xml/ns/javaee”:异常类型}

从servlet 3.0规范开始,避免将特定错误代码映射到错误页面是正确的,因此我通过以下更改解决了此问题: 版本=3.0


查看版本更改,从任何版本更改为3.0

你好,罗兰,非常感谢。我笨手笨脚的,把它弄错了。在用WEB-INF替换WEB\U INF之后,这就可以工作了。现在我可以看到我自己的访问被拒绝和404页。
<error-page><location>/error</location></error-page>