SpringMVC源码解析WebContentGenerator

举报
JavaEdge 发表于 2021/06/03 23:53:49 2021/06/03
【摘要】 便捷的为任何类型的网页内容产生的父类,像 AbstractControllerWebContentInterceptor 也可用于自定义处理器HandlerAdapter 。 支持HTTP缓存控制选项。 对应的HTTP头的使用可以通过控制"cacheSeconds"和"cacheControl"属性。 注:Spring4.2的作为,使用只有当这种的默认行为改变se...

便捷的为任何类型的网页内容产生的父类,像

  • AbstractController
  • WebContentInterceptor

也可用于自定义处理器HandlerAdapter 。

支持HTTP缓存控制选项。 对应的HTTP头的使用可以通过控制"cacheSeconds"和"cacheControl"属性。
注:Spring4.2的作为,使用只有当这种的默认行为改变setCacheSeconds ,发送HTTP响应头是符合当前的浏览器和代理服务器实现(即没有HTTP 1.0头了)恢复到以前的行为可以很容易地通过使用完成新近弃用的方法之一setUseExpiresHeader , setUseCacheControlHeader , setUseCacheControlNoStore或setAlwaysMustRevalidate 。

WebContentGenerator作为web内容生成器的超类,可以自定义处理器(handler),提供了浏览器缓存控制,是否由session的必须开启

浏览器的请求方式(GET、HEAD、POST等),同时缓存的控制还提供了对HTTP1.0和HTTP1.1的支持。 WebContentGenerator 中的

supportedMethods、requireSession、useExpiresHeader、useCacheControlHeader、useCacheControlNoStore、cacheSeconds、

alwaysMustRevalidate都是可以在xml的bean中进行配置。

后面可配置的属性,分析它们的主要作用:

  • supportedMethods:设置支持的请求方式,默认是上面的三种,如果是其他的请求方式,可以通过bean注入加入集合
  • requireSession :判断浏览器是否必须含有session,如果设置为true必须,浏览器没有session则会报错(HttpSessionRequiredException异常)
  • useExpiresHeader:是否使用HTTP1.0协议缓存控制响应头, 配合cacheSeconds使用。 为true添加"Expires"响应头,本地副本缓存过期时间
  • useCacheControlHeader :是否使用HTTP1.1协议缓存控制响应头,配合cacheSeconds使用
  • useCacheControlNoStore :是否使用HTTP1.1协议缓存控制响应头,配合cacheSeconds使用
  • cacheSeconds :缓存过期时间,正数表示需要缓存,负数表示不做任何事情
  • alwaysMustRevalidate :处理器实现LastModified接口,服务器会添加“Last-Modified”响应头,表示服务器最后修改的时间。

文章来源: javaedge.blog.csdn.net,作者:JavaEdge.,版权归原作者所有,如需转载,请联系作者。

原文链接:javaedge.blog.csdn.net/article/details/106548002

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。