Spring MVC标签mvc:resources/小结
< mvc:resources />的作用
在Spring MVC框架中,针对静态资源的请求处理除了可以配置< mvc:default-servlet-handler />标签,通过容器来处理以外,还可以使用< mvc:resources />标签,在框架层面来处理。
从Spring MVC的XML Schema文件说明中可以知道,通过< mvc:resources />标签的配置可以使在Spring MVC框架中,配置一个Handler来处理静态资源,例如:图片,JS,CSS等文件,并通过配置Cache相关的Headers来使浏览器能够更有效的进行加载。同时,该配置允许将静态资源放在任何Spring MVC框架能够读取到的路径下。
< mvc:resources />的配置
< mvc:resources />主要有以下配置:
mapping(必填,类型:string)基于当前Servlet上下文的URL匹配规则,例如:"/resources/**"。
location(必填,类型:string)静态资源的放置路径,满足Spring资源的匹配规则,可以使用"classpath:"。当存在多个路径时,通过","来进行拼接,例如:"/, classpath:/META-INF/public-web-resources/"。
cache-period(选填,类型:string)用来配置Handler类针对静态资源的缓存时间,以秒为单位。默认情况下不会发送任何缓存的Header,仅仅依赖last-modified参数的修改时间戳。当设置为0时,表示禁止进行资源缓存;当设置一个正整数时,表示资源缓存的最长有效时间。
order(选填,类型:int)用来配置Handler类处理请求的顺序,默认为最低优先级的值-1。
ResourceHttpRequestHandler类的作用
在ResourceHttpRequestHandler类中通过解析标签中location对应的参数,来从服务器或jar包中获取静态资源。
同时,可以通过配置VersionResourceResolver类,GzipResourceResolver类,与CachingResourceResolver类等解析器类或CssLinkResourceTransformer类,AppCacheManifestTransformer类等转换器类,来提供针对静态资源添加版本号,Gzip压缩等自定义的处理过程。而默认仅使用PathResourceResolver类来根据URL查询静态资源。
在处理Request请求时,ResourceHttpRequestHandler类默认会针对Headers请求头中的Last-Modified参数进行计算,以此来判断是否返回请求码304,通知浏览器使用缓存数据,以此来提升请求响应效率。
< mvc:resources />与< mvc:default-servlet-handler />的异同
由于Spring MVC中框架处理的请求全部通过DispatcherServlet类来进行处理,因此,无法直接的针对静态资源请求进行很友好的兼容处理。于此,框架提供了两种处理策略来进行处理:
通过< mvc:default-servlet-handler />标签来转移请求处理过程,交由WEB容器进行高效的处理。可以更好的依赖容器自身的请求处理能力,承担静态资源请求的处理过程;
通过< mvc:resources />标签来配置对应的Resolver类和Transformer类来在框架层面进行静态资源请求的处理,以达到解耦容器的目的。并通过集成请求响应的优化处理逻辑,来满足业务与性能的需求。
转载于:https://my.oschina.net/u/1156626/blog/3097988
Spring MVC标签mvc:resources/小结相关推荐
- html5引入spring标签,[MVC]5 使用Spring标签库
A.Spring标签库 Web项目若使用Spring Web MVC并使用JSP作为表现的话.从Spring2.0版本开始提供一套标签库可供使用. 使用标签库无非是易于开发,维护之类云云.这里就不阐述 ...
- 【Spring框架】mvc:default-servlet-handler/的作用
优雅REST风格的资源URL不希望带 .html 或 .do 等后缀.由于早期的Spring MVC不能很好地处理静态资源,所以在web.xml中配置DispatcherServlet的请求映射,往往 ...
- 在controller中调用指定参数给指定表单_第005课:Spring Boot 中MVC支持
Spring Boot 的 MVC 支持主要介绍实际项目中最常用的几个注解,包括 @RestController. @RequestMapping.@PathVariable.@RequestPara ...
- Spring的Web MVC –重定向到内存泄漏
他们说一块岩石会引起雪崩. 最近,我的一位同事Marcin Radoszewski给了我一块岩石. 您可能永远都不会猜测它是什么,但是有机会在许多Web应用程序中使用它. 请允许我向您介绍这块石头. ...
- mvc crud_Spring MVC Hibernate MySQL集成CRUD示例教程
mvc crud We learned how to integrate Spring and Hibernate in our last tutorial. Today we will move f ...
- spring 自定义标签的实现
在我们进行Spring 框架开发中,估计用到最多的就是bean 标签吧,其实在Spring中像<mvc/><context/>这类标签以及在dubbo配置的标签都是属于自定义的 ...
- 使用Spring Form标签探索Spring Controller
在上一篇文章中 ,我向您展示了如何使用Spring控制器处理纯HTML表单. 但是处理表单的更强大的方法是使用Spring的@ModelAttribute及其spring:form标签. 我将向您展示 ...
- spring form标签的使用
文章目录 前言 一.spring form 标签和JSRxxx数据格式验证 二.spring表单 标签分类.属性 1.标签类别 2.标签属性 三. JSRxxx约束 四.结合JSRXXX约束使用步骤 ...
- return error怎么定义_这一次搞懂Spring自定义标签以及注解解析原理
自定义标签解析原理 在上一篇分析默认标签解析时看到过这个类DefaultBeanDefinitionDocumentReader的方法parseBeanDefinitions:拉勾IT课小编为大家分解 ...
最新文章
- IBM将收购Instana公司,持续推进其混合云和人工智能战略
- 干货|一文看懂美国共享出行3大领域8大头部玩家
- Docker虚拟化容器的使用
- 容器技术之二.Docker的安装和常见问题
- 延迟开学?这些教育读书公众号可以帮助孩子学习! 你都关注了吗?
- oracle数据库并行数限制,Oracle数据库并行处理技术详解(上)
- SQL 死锁分析(转贴)
- 更美好的未来展望:UE4 路线图更新
- 搭建视频网站的技术方案
- SAP License:SAP财务管理的认识
- 实验二 20145237 20155226 2015234 实验报告 固件程序设计
- Ubuntu 谷歌浏览器下载
- 杰奇 v1.7去限制版橙色模板小说源码
- [麻将] 麻将的一些概率计算
- C# 使用md5查找文件夹内重复的文件
- 如何在非简体中文版XP下面玩魔兽争霸
- Trips and Users
- tritonserver的metrics参数说明
- Oracle 实验一:Oracle11g的安装与管理工具
- linux升级系统内核