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

发布时间:2021-08-03 13:42:46 作者:Leah
来源:亿速云 阅读:408

这篇文章给大家介绍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 />主要有以下配置:

  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中<mvc:resources/>标签的作用是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读:
  1. phpqrcode怎么生成动态二维码
  2. discuz去除forum.php的方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

spring mvc

上一篇:java中如何使用Arthas诊断工具

下一篇:如何解决某些HTML字符打不出来的问题

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》