*.form:代表以*.form结尾的后缀请求都会进入springmvc管/:代表除了JSP以外拦截所有,html、css、js等静态web资源也会拦截/*:拦截所有请求Tomcat提供的默认servlet(DefaultServlet),处理静态资源的(html/css/js),此Servlet在tomcat/conf/web.xml中有配置


配置DefaultServlet需要引入依赖:
org.apache.tomcat tomcat-catalina 8.5.41 provided
回顾Maven依赖范围:
在web.xml中配置:
springmvc org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:dispatcher-servlet.xml
springmvc /
default org.apache.catalina.servlets.DefaultServlet
default *.html
default *.png
缺省servlet放行原理是:如果是配置的后缀请求直接进入缺省servlet,而不是进入SpringMVC进行处理(不会经过SpringVMC);
Tips:配置缺省servlet放行时,SpringMVC的拦截规则不能为
/*,因为缺省Servlet不能放行JSP请求,如果SpringMVC拦截规则为/*,然后缺省Servlet又不能放行,那么访问JSP时,会出现404;
web.xml:
springmvc org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:dispatcher-servlet.xml
springmvc /
在SpringMVC配置文件中配置:
由Spring MVC框架自己按配置的规则处理静态资源,并添加一些有用的附加值功能。
/*
访问:http://localhost:8080/jsp/demo01.jsp

在SpringMVC配置文件中添加:
SpringMVC会在Spring MVC上下文中定义一个DefaultServletHttpRequestHandler;它会像一个检查员,对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet继续处理。
这种方式同样只能放行静态资源,JSP不属于静态资源;我们将web.xml中的拦截规则改为如下:
/*
访问:http://localhost:8080/jsp/demo01.jsp

一般Web应用服务器默认的Servlet名称是"default",因此DefaultServletHttpRequestHandler可以找到它。如果你所有的Web应用服务器的默认Servlet名称不是"default",则需要通过default-servlet-name属性显示指定:
default-servlet-handler放行:请求进入springmvc然后对其进行筛选,发现是个"静态"资源就交给缺省servlet去处理,但是缺省servlet只会处理静态资源,如果是jsp会特殊处理(下载、无法解析等)!