首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我在//有一个Servlet时,将404映射到一个URL

问当我在//有一个Servlet时,将404映射到一个URL
EN

Stack Overflow用户
提问于 2013-11-19 14:46:44
回答 1查看 77关注 0票数 1

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

代码语言:javascript
复制
<error-page>
    <error-code>404</error-code>
    <location>/404</location>
</error-page>

如果我有一个主页servlet,比如:

代码语言:javascript
复制
@WebServlet(name = "Home", urlPatterns =
{
    "/"
})

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-19 15:16:42

/网址模式不代表“主页”。它是一种特殊的URL模式,它与everything匹配,它与*.jsp、/app/*等更具体的URL模式不匹配。

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

通常,您不应该使用/的URL模式。为了实现将servlet作为“主页”的具体功能需求,最好的选择是给servlet一个更具体的URL模式,并将该servlet准确地注册为<welcome-file>。

例如。

代码语言:javascript
复制
@WebServlet("/index")

使用

代码语言:javascript
复制
<welcome-file-list>
    <welcome-file>index</welcome-file>
</welcome-file-list>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20074578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档