web.xml中url-pattern配置了/ 静态页面404

仔细学习一下 

匹配循序 :::::

① 完全匹配 
<url-pattern>/test/list.do</url-pattern> 

② 路径匹配 
<url-pattern>/*</url-pattern> 匹配根路径下的全部请求 

③ 扩展名匹配 
<url-pattern>*.do</url-pattern> 匹配全部 do 结尾的请求
<url-pattern>*.html</url-pattern> 匹配全部 html 结尾的请求 
<url-pattern>*</url-pattern> 不能用 * ,否则报错

servlet-mapping 的重要规则:

容器会首先查找完全匹配,如果找不到,再查找目录匹配,如果也找不到,就查找扩展名匹配。

如果一个请求匹配多个 “ 目录匹配 ” ,容器会选择最长的匹配。

“/” 与 “/*” 的区别 :::::: 
<url-pattern>/</url-pattern>

会匹配到 /login 这种类型的 url ,不会匹配到模式为 *.jsp 这样的后缀型 url

<url-pattern>/*</url-pattern>

会匹配所有 url :路径型的和后缀型的 url( 包括 /login,*.jsp,*.js 和 *.html 等 )

在web.xml配置servlet-mapping的时候,如果url-pattern设置为“/” html 静态页面404

解决方法:在web.xml文件,增加对静态资源的url映射

<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>

还有其他解决方法: http://blog.csdn.net/this_super/article/details/7884383




你可能感兴趣的:(web.xml中url-pattern配置了/ 静态页面404)