context org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath*:/spring-mvc.xml 1 context /
相比大家都对url-pattern 路径/和/*都有所困扰。
网上说,/不对(.jsp,.html等)进行拦截。/*对(.jsp,.html等)进行拦截。其实不是这样的。这两个都会进行拦截,只是不同点就是,
/路径会先被Tomcat下web.xml里面的servlet拦截
/*规则会覆盖所有默认的servlet,会将所有请求都拦截了下来
如果是请求的是html文件。配置成/会出现404 。如果是jsp则可以请求200
接下来看下tomcat web.xml文件。原因就是tomcat下的web.xml配置了.jsp文件。所以可以正常访问。
default
/
<!-- The mappings for the JSP servlet -->
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
<url-pattern>*.jspx</url-pattern>
</servlet-mapping>
解决方案:
1.那么对于html文件咋办?可以在自己项目下web.xml加入
jsp
.html
2.或者在tomcat下web.xml加入 .html不建议这样做,不灵活
3.还可以在springmvc.xml中针对资源文件加入以下,也可以解决
mvc:default-servlet-handler/