在进行Spring MVC的配置时,通常我们会配置一个dispatcher servlet用于处理对应的URL。配置如下:

  1.  
    <servlet>
  2.  
    <servlet-name>mvc-dispatcher</servlet-name>
  3.  
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  4.  
    <load-on-startup>1</load-on-startup>
  5.  
    </servlet>
  6.  
     
  7.  
    <servlet-mapping>
  8.  
    <servlet-name>mvc-dispatcher</servlet-name>
  9.  
    <url-pattern>/</url-pattern>
  10.  
    </servlet-mapping>

这表示名字为mvc-dispatcher的servlet会处理一切的url对应的请求,那么我们怎么让servlet来处理项目中的静态资源呢?这里有两种方法。

1. 另外使用一个servlet来处理静态资源。若我们的资源放置在webapps文件夹下的resources文件夹中,那么我们可以用名字为default的servlet来处理静态资源。因此我们还需要在上述配置的基础上加上以下配置:

  1.  
    <servlet-mapping>
  2.  
    <servlet-name>default</servlet-name>
  3.  
    <url-pattern>resources/*</url-pattern>
  4.  
    </servlet-mapping>

这表示default的servlet会处理url中为resources/*的对应的请求。这样,当你把你的image,css已经其他文件放在resources文件中时,spring就可以找到它啦。

2. 采用spring自带<mvc:resources>方法。首先找到你定义的那个servlet的xml文件,如本例子中,servlet的名字叫mvc-dispatcher,因此需要找到mvc-dispatcher-servlet.xml文件,并在该文件中插入以下配置:

  1.  
    <mvc:annotation-driven/>
  2.  
    <mvc:resources mapping="/resources/**/" location="/resources/"/>

这样,就不必另外添加一个mvc来处理静态资源。而mvc知道静态资源所处的位置为resources文件夹。
两种方法都可以将spring mvc配置处理静态资源。

在SpringMVC3.0之后推荐使用一:

  1.  
    <!-- 静态资源访问 -->
  2.  
    <mvc:default-servlet-handler/>

以下两种在SpringMVC3.0之前可以使用

也可以使用二:

  1.  
    <!-- 静态资源访问
  2.  
    <mvc:resources location="/img/" mapping="/img/**"/>
  3.  
    <mvc:resources location="/js/" mapping="/js/**"/>
  4.  
    <mvc:resources location="/css/" mapping="/css/**"/>
  5.  
    -->

也可以使用三:

web.xml里添加如下的配置

  1.  
    <servlet-mapping>
  2.  
    <servlet-name>default</servlet-name>
  3.  
    <url-pattern>*.css</url-pattern>
  4.  
    </servlet-mapping>
  5.  
     
  6.  
    <servlet-mapping>
  7.  
    <servlet-name>default</servlet-name>
  8.  
    <url-pattern>*.gif</url-pattern>
  9.  
     
  10.  
    </servlet-mapping>
  11.  
     
  12.  
    <servlet-mapping>
  13.  
    <servlet-name>default</servlet-name>
  14.  
    <url-pattern>*.jpg</url-pattern>
  15.  
    </servlet-mapping>
  16.  
     
  17.  
    <servlet-mapping>
  18.  
    <servlet-name>default</servlet-name>
  19.  
    <url-pattern>*.js</url-pattern>
  20.  
    </servlet-mapping>

springMvc里的mvc:resources与静态资源的访问的更多相关文章

  1. spring-mvc里的 <mvc:resources> 及静态资源访问

    在进行Spring MVC的配置时,通常我们会配置一个dispatcher servlet用于处理对应的URL.配置如下: <servlet> <servlet-name>Sp ...

  2. spring mvc 配置对静态资源的访问

    在spring mvc的配置文件中做如下配置: 1. <?xml version="1.0" encoding="UTF-8"?> <bean ...

  3. spring mvc对静态资源的访问

    如果我们的项目使用的是springmvc,在web.xml中会有一段这的配置. <servlet> <servlet-name>springMvc</servlet-na ...

  4. 【Spring学习笔记-MVC-14】Spring MVC对静态资源的访问

    作者:ssslinppp       参考链接: http://www.cnblogs.com/luxh/archive/2013/03/14/2959207.html  http://www.cnb ...

  5. SpringMVC系列(十)<mvc:default-servlet-handler/>(处理静态资源)和<mvc:annotation-driven />

    一.<mvc:default-servlet-handler/>处理静态资源 若将 DispatcherServlet 请求映射配置为 /,则 Spring MVC 将捕获WEB 容器的所 ...

  6. SpringMVC 部署项目静态资源文件访问问题

    问题:采用SpringMVC 部署项目后程序加载或用浏览器访问时出现类似的警告,2011-01-19 10:52:51,646 WARN [org.springframework.web.servle ...

  7. 防止SpringMVC拦截器拦截js等静态资源文件

    SpringMVC提供<mvc:resources>来设置静态资源,但是增加该设置如果采用通配符的方式增加拦截器的话仍然会被拦截器拦截,可采用如下方案进行解决: 方案一.拦截器中增加针对静 ...

  8. Spring MVC中处理静态资源的多种方法

    处理静态资源,我想这可能是框架搭建完成之后Web开发的”头等大事“了. 因为一个网站的显示肯定会依赖各种资源:脚本.图片等,那么问题来了,如何在页面中请求这些静态资源呢? 还记得Spring MVC中 ...

  9. SpringMVC -- 梗概--源码--贰--静态资源的访问问题

    配置:<mvc:default-servlet-handler/> 1>静态资源:除了Servlet.Controller之外的资源,如:js,css,png,html等 2> ...

随机推荐

  1. vue2.0细节剖析

    1.样式切换 单个切换样式 /*html部分*/ <div class="bg" v-bind:class="{active:isActive}"> ...

  2. nvl 与 nvl2

    NVL函数 Oracle/PLSQL中的一个函数. 格式为: NVL( string1, replace_with) 功能:如果string1为NULL,则NVL函数返回replace_with的值, ...

  3. javascript 高级程序设计 七

    引言:好几天没有写随笔了,项目有点紧,恰好今天项目遇到了比较大阻塞,就只好来写一篇随笔来压压惊. 1.Date类型 创建一个新的Date:(除了new Date()外) var someDate = ...

  4. XXE总结

    0x00 目录 0x01 XML基础 定义:一种标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. XML文档结构包括XML声明.D ...

  5. 实现SQL express版做自动备份数据库的方法

    SQL Server 2005/2008 Express版没有代理组件,不支持维护计划.可以采用下面的办法实现每日备份: 一.在要备份的数据库中创建存储过程. 存储过程名称:sp_BackupData ...

  6. 求一个数的n次幂

    1.当这个数是2的多少次幂: 求(2^m)^n  =  2^(m*n) = 1<<m*n; 2.快速幂(要考虑底数a,和m的正负) int quick_mod(int a,int m){ ...

  7. 2019.01.23 hdu3377 Plan(轮廓线dp)

    传送门 题意简述:给一个n*m的带权矩阵,求从左上角走到右下角的最大分数,每个格子只能经过最多一次,n,m≤9n,m\le9n,m≤9. 思路: 考虑轮廓线dpdpdp,但这道题并没有出现回路的限制因 ...

  8. 2018.12.31 NOIP训练 czy的后宫5(树形dp)

    传送门 题意:给一棵有根树,树有点权,最多选出mmm个点,如果要选一个点必须先选其祖先,问选出来的点权和最大值是多少. 直接背包转移就行了. 代码

  9. CHAPITRE III

    Il me fallut longtemps pour comprendre d'où il venait. Le petit prince, qui me posait beaucoup de qu ...

  10. lambda表达式,变量作用域

    # lambda表达式 def filter_lt(predidcate,lt): result=[] for elem in lt: if predidcate(elem): result.appe ...