我想在我的Tomcat 7应用程序中捕获404错误,所以我将其添加到web.xml中:
<error-page>
<error-code>404</error-code>
<location>/404</location>
</error-page>如果我有一个主页servlet,比如:
@WebServlet(name = "Home", urlPatterns =
{
"/"
})然后,当我导航到一个无效的URL时,我会被带到主页"/“而不是/404。
发布于 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>。
例如。
@WebServlet("/index")使用
<welcome-file-list>
<welcome-file>index</welcome-file>
</welcome-file-list>https://stackoverflow.com/questions/20074578
复制相似问题