静态资源问题
静态资源:html,js文件,css文件,图片文件
静态文件没有url-pattern,所以默认是访问不到的,之所以可以访问,是因为,tomcat中有一个全局的servlet:org.apache.catalina.servlets.DefaultServlet,它的url-pattern是 "/",是全局默认的Servlet. 所以每个项目中不能匹配的静态资源的请求,有这个Servlet来处理即可。
但,在SpringMVC中DispatcherServlet也采用了 “/” 作为url-pattern, 则项目中不会再使用全局的Serlvet,则静态资源不能完成访问。
解决方案
DispathcerServlet的url-pattern依然采用 "/",但追加配置
<!-- 额外的增加一个handler,且其requestMapping: "/**" 可以匹配所有请求,但是优先级最低 所以如果其他所有的handler都匹配不上,请求会转向 "/**" ,恰好,这个handler就是处理静态资源的 处理方式:将请求转会到tomcat中名为default的Servlet --> <mvc:default-servlet-handler/>
但是,如果请求url的名字,下图,不能跟html名字相同,如hello.html,这样会把hello.html当做请求,不当做静态资源