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