在我们设置
<url-pattern>/</url-pattern>
后,动态资源和静态资源的访问就会造成冲突,我们此时就需要配置另外静态资源
一、<mvc:default-servlet-handler />标签
在springmvc配置文件中加入
<mvc:annotation-driven />
<mvc:default-servlet-handler />
原理是:
加入<mvc:default-servlet-handler />标签后,框架会创建控制器对象DefaultServletHttpRequestHandler(类似我们自己创建的Controller对象)。DefaultServletHttpRequestHandler这个对象可以把接收的请求转发给tomcat的default这个servlet。
<mvc:annotation-driven />标签是为了解决default-servlet-handler标签
和@RequestMapping注解的冲突。
二、<mvc:resources />标签
<mvc:annotation-driven />
<mvc:resources mapping = "/images/**" location = "/images/" />
<mvc:resources mapping = "/html/**" location = "/html/" />
<mvc:resources mapping = "/js/**" location = "/js/" />
<!-- 其中,images/**表示images/p1.jpg、images/g1.gif、images/p3.jpg..
也就是该目录下所有文件
-->
mvc:resources 加入后框架会创建ResourceHttpRequestHandler这个处理器对象。
让这个对象处理静态资源的访问,不依赖tomcat服务器。
mapping:访问静态资源的uri地址,使用通配符 **
location:静态资源在你的项目中的目录位置。
<mvc:annotation-driven />标签是为了解决resources标签
和@RequestMapping注解的冲突。
当然,为了方便,也可以把images、js、html等文件夹都放到一个文件夹下(创建static文件夹)
<mvc:annotation-driven />
<mvc:resources mapping = "/static/**" location = "/static/" />
<!-- static/**表示该目录下所有文件-->