成都创新互联网站制作重庆分公司

SpringMVC中<mvc:resources/>标签的作用是什么

这篇文章给大家介绍Spring MVC中标签的作用是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

海州ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!

< 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 />主要有以下配置:

  1. mapping(必填,类型:string)基于当前Servlet上下文的URL匹配规则,例如:"/resources/**"。

  2. location(必填,类型:string)静态资源的放置路径,满足Spring资源的匹配规则,可以使用"classpath:"。当存在多个路径时,通过","来进行拼接,例如:"/, classpath:/META-INF/public-web-resources/"。

  3. cache-period(选填,类型:string)用来配置Handler类针对静态资源的缓存时间,以秒为单位。默认情况下不会发送任何缓存的Header,仅仅依赖last-modified参数的修改时间戳。当设置为0时,表示禁止进行资源缓存;当设置一个正整数时,表示资源缓存的最长有效时间。

  4. 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类来进行处理,因此,无法直接的针对静态资源请求进行很友好的兼容处理。于此,框架提供了两种处理策略来进行处理:

  1. 通过< mvc:default-servlet-handler />标签来转移请求处理过程,交由WEB容器进行高效的处理。可以更好的依赖容器自身的请求处理能力,承担静态资源请求的处理过程;

  2. 通过< mvc:resources />标签来配置对应的Resolver类和Transformer类来在框架层面进行静态资源请求的处理,以达到解耦容器的目的。并通过集成请求响应的优化处理逻辑,来满足业务与性能的需求。

关于Spring MVC中标签的作用是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


名称栏目:SpringMVC中<mvc:resources/>标签的作用是什么
文章网址:http://cxhlcq.com/article/jpogjd.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部