SpringMVC源码解析WebContentGenerator

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

  • 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”响应头,表示服务器最后修改的时间。

猜你喜欢

转载自blog.csdn.net/qq_33589510/article/details/106548002