在进行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. Informatica_(5)高级应用

    五.高级应用21.任务分区 分区是通过并行处理来提供PowerCenter的执行效率. 分区类型包括:Database partitioning.Hash Auto-keys.Hash User-ke ...

  2. std::move 移动对象资源

    场景: C++ 标准库使用比如vector::push_back 等这类函数时,会对参数的对象进行复制,连数据也会复制.这就会造成对象内存的额外创建, 本来原意是想把参数push_back进去就行了. ...

  3. Thrift.1

    1. 依据thrift生成相对应语言的代码 [Ref]: http://wiki.apache.org/thrift/ThriftGeneration [Todo] 2. 如何使用生成的代码 [Ref ...

  4. BZOJ 3329 - Xorequ - 数位DP, 矩乘

    Solution 发现 $x \ xor \  2x = 3x$ 仅当 $x$ 的二进制中没有相邻的 $1$ 对于第一个问题就可以进行数位DP 了. 但是对于第二个问题, 我们只能通过递推 打表 来算 ...

  5. 09. pt-fingerprint

    vim pt-fingerprint.txt select name, password from user where id=5;select name, password from user wh ...

  6. POJ 2135.Farm Tour 消负圈法最小费用最大流

    Evacuation Plan Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4914   Accepted: 1284   ...

  7. Codeforces 798C. Mike and gcd problem 模拟构造 数组gcd大于1

    C. Mike and gcd problem time limit per test: 2 seconds memory limit per test: 256 megabytes input: s ...

  8. Python3字符编码

    编码 字符串是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字节 ...

  9. Spring 注解原理(一)组件注册

    Spring 注解原理(一)组件注册 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) 当我们需要使用 Spring 提供的 ...

  10. 生活类App原型制作分享-AnyList

    AnyList是一款可以帮你创建购物清单,并且帮助你整理食谱的生活工具App,前面引导页采用图片+文字的方式,介绍App的用法,登录注册采用选项卡切换的方式,减少了页面切换的繁琐操作,在Mockplu ...