mvc:resources VS mvc:default-servlet-handler

10月 10, 2014 |

Spring mvc的<mvc:default-servlet-handler/> 和 <mvc:resources>标签都可以用于当DispatcherServlet映射到'/'路径时如何服务静态资源请求,但是它们有以下的不同:

  1. <mvc:resources>是将请求派发给SimpleUrlHandlerMapping处理,而<mvc:default-servlet-handler/> 是将请求路由给服务器(servlet container)的默认Servlet处理
  2. <mvc:resources>可以在配置在XML的任何位置;而<mvc:default-servlet-handler/> 必须在所有的HandlerMapping之后定义,比如它必须在<mvc:annotationdriven>标签之后
  3. <mvc:resources>要求静态资源必须满足ant模式(Ant pattern),而<mvc:default-servlet-handler/>没有这个限制
  4. <mvc:resources>支持cache-period属性,减少客户端因为获取静态资源而访问服务器的次数。
  5. <mvc:resources>支持将静态的资源映射为classpath中的资源(jar 包中),这样就可以使用dojo等技术对静态资源指定版本。防止服务器端更新了而客户端使用老版本的问题

Posted in: spring practise

Comments are closed.