前提: 当在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中配置的文件目录下查找所需文件