在进行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. PL/SQL的快捷键设置

    PL/SQL用来连接Oracle数据库的一种工具,它可以设置快捷方式,以便于我们快速的操作. PL/SQL设置快捷键    tools->Preferences(首选项)->User In ...

  2. mysql mysqld.sock文件丢失问题

    修改mysql 编码为utf8时 在/etc/mysql/目录下 在 [client] 添加 default-character-set=utf8 [mysqld]添加 default-charact ...

  3. 引用类型中的push()、pop()、shift()方法

    /** * write by waitingbar1014 * time 2013.10.18 * 用途:常用于如一堆游戏激活码中获得抽取的值 * **/ //有以下一个数组: var arrayli ...

  4. Codeforces 792B. Counting-out Rhyme

    B. Counting-out Rhyme time limit per test: 1 second memory limit per test: 256 megabytes input: stan ...

  5. Codeforces 757B. Bash's Big Day GCD

    B. Bash's Big Day time limit per test:2 seconds memory limit per test:512 megabytes input:standard i ...

  6. synchronized Lock

    synchronized和Lock都是Java语言提供的两种实现对共享资源进行同步的机制.其中synchronized使用Object对象本身的wait().notify().notifyAll()方 ...

  7. Netty 源码 ChannelHandler(三)概述

    Netty 源码 ChannelHandler(三)概述 Netty 系列目录(https://www.cnblogs.com/binarylei/p/10117436.html) 一.Channel ...

  8. maven install 找不到符号问题

    看报错信息是找不到 javax.servlet 包 .这个是tomcat 内的jar包.但是我build path 查看是加了tomcat 的.. 最后在pom.xml 添加依赖 <depend ...

  9. 一个简单的NodeJs静态页面的web服务器

    主要功能 1 显示www文件夹下静态html或文本类型的文件. 2 缺省访问文件功能. 通过config.js的defaultfile属性设置 3 如果文件夹下没有缺省文件,显示文件夹下文件列表 4 ...

  10. Django框架之验证码生成示例

    一.生成随机颜色的图片 1)前端代码展示 <!DOCTYPE html> <html lang="en"> <head> <meta ch ...