前提:  当在web.xml中配置 DispatcherServlet的URL mapping 为 "/" 时,会拦截除.jsp以外的所有资源,其中包括静态资源。而静态资源是没有必要交给DispatcherServlet来处理的,需要时应该可以直接访问。

静态资源配置的两种方式:

1、在SpringMVC配置文件中配置

<mvc:default-servlet-handler/>


 请求过来会首先交给SpringMVC中的DispatcherServlet处理,如果找不到,就会再去找默认的servlet处理器进行处理。

以idea为例,该方式可以访问到webapp目录下的图片,html等资源


2、在SpringMVC配置文件中配置  

<mvc:resources mapping="/image/**" location="file:C:/Users/lux81/Pictures/images/"/>

该方式是将静态资源和文件目录进行映射

location表示静态资源所在目录,

注意:file表示文件绝对路径,经过本人测试在windows环境下,要写带盘符的绝对路径,否则找不到文件

而在MACOS系统下前面C:可以不用书写


mapping表示请求地址,以上面为例,当请求地址以/image/开头,**则表示后面不管有多少层目录,都会映射到location中,

此时会去location中配置的文件目录下查找所需文件