gpt4 book ai didi

tomcat - 当我也有一个 Servlet 时,将 404 映射到一个 URL/

转载 作者:行者123 更新时间:2023-11-28 22:13:21 28 4
gpt4 key购买 nike

我想在我的 Tomcat 7 应用程序中捕获 404 错误,所以我将它添加到 web.xml 中:

<error-page>
<error-code>404</error-code>
<location>/404</location>
</error-page>

这工作正常,除非我有一个 servlet 映射到根“/”URL,如果我有一个主页 servlet,例如:

@WebServlet(name = "Home", urlPatterns =
{
"/"
})

然后,当我导航到一个无效的 URL 时,我会被带到主页“/”而不是/404。

最佳答案

/ URL 模式不代表“主页”。它是一种特殊的 URL 模式,匹配所有与更具体的 URL 模式(例如 *.jsp)匹配, /app/*

如果您在 servlet 上使用此 URL 模式,那么它将成为所谓的“默认 servlet”,其中 所有 请求将在没有其他 servlet 监听该 URL 模式时结束。这还包括静态资源,如 CSS/JS/图像文件。通常,默认的 servlet 已经由 servletcontainer 本身提供了(在您使用 Tomcat 的情况下,它是 DefaultServlet )。

通常,您不应该使用 / 的 URL 模式.为了实现将 servlet 作为“主页”的具体功能要求,最好的办法是为 servlet 提供更具体的 URL 模式并将该 servlet 准确注册为 <welcome-file>。 .

例如

@WebServlet("/index")

<welcome-file-list>
<welcome-file>index</welcome-file>
</welcome-file-list>

关于tomcat - 当我也有一个 Servlet 时,将 404 映射到一个 URL/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20074578/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com