Java web.xml中的错误页提供404
在我的一个项目中,我需要处理404(未找到资源)和403(拒绝访问)。我将web.xml中的配置作为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>
<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>