SpringMVC下关于静态资源访问

SpringMVC静态资源访问

聊一聊关于静态资源的访问问题web

首先,咱们要对web.xml里面的DispatcherServlet进行设置spring

<!--    中央调度器-->
<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:springMVC.xml</param-value>
    </init-param>
    <!--tomcat 一启动就能够加载中央调度器,数字只要大于0 便可-->
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <!--
		url-pattern设置为:"/",当你使用了"/",他会替代Tomcat中的default,
		致使全部的资源都给DispatcherServlet处理,默认状况下DispatcherServlet
		没有处理静态资源的能力,没有控制器对象能处理静态资源的访问,因此致使静态资源
		访问失败都是404,动态代理能够正常访问。若是不设置url-pattern设置为:"/",
		则不存在静态资源访问不到
	-->
    <url-pattern>/</url-pattern>
</servlet-mapping>

因为设置了url-pattern为:"/",接下来咱们还须要设置springmvc的配置文件,让静态资源能够被访问到。有两种方式tomcat

  1. 第一种方式
<!--添加该标签-->
<mvc:default-servlet-handler />
<!--
原理:
	给程序内存中增长一个处理器对象:DefaultServletHttpRquestHandler。
	让这个对象能够把接收到的请求转发给Tomcat的default这个servlet。
	可是这个标签与@RequestMapping这个注解有冲突,因此须要加入注解驱动:<mvc:annotation-driven /> 
-->
<mvc:annotation-driven />
  1. 第二种方式
<!--
	使用框架中的:<mvc:resource mapping="" location=""/>标签,
	标签加入后框架会本身建立ResourceHttpRequestHandler这个处理器对象。
	让这个对象处理静态资源的访问,不依赖于Tomcat服务器。该标签与@RequestMapping
	注解有冲突,须要加注解驱动:<mvc:annotation-driven /> 
	参数:
		location:静态资源在你的项目中的位置 
		mapping:访问静态资源的URI地址,使用通配符 ** ,表明多级任意
	参数内的静态资源皆能够被访问
-->
<mvc:resources location="/img/" mapping="/img/**"/>

好啦,这就是目前做为一个算不上菜鸟的菜鸟对springmvc静态资源访问的掌握程度。欢迎留言服务器

相关文章
相关标签/搜索