Spring Web 概念模型 : Web请求 -- WebRequest

对于来自WebHTTP用户请求,Spring Web对其进行了抽象,其中典型的一个概念模型接口,就是WebRequest。但并不是所有有关HTTP Web请求的信息都是在接口WebRequest中定义的,而是在跟WebRequest有关的一组接口或者类中。本文我们对这些接口或者类做一个简单的介绍。

下面是这组接口/类之间的层级关系图,以及它们各自的方法和属性。
Spring Web 概念模型 : Web请求 -- WebRequest

从该图可以看出 :

  • RequestAttributes : 主要定义 对请求属性的访问 + 对会话有关的访问
  • WebRquest : 相当于 RequestAttributes + 对请求头部的访问 + 对请求参数的访问 + 对请求用户主体的访问 + 访问资源是否修改 + 对Locale的访问
  • NativeWebRquest : 相当于 WebRquest + 对底层原生Request/Response对象的访问 + 泛型支持
  • AbstractRequestAttributes : 相当于 RequestAttributes + 操作请求是否完成
  • ServletRequestAttributes : 相当于 AbstractRequestAttributesServlet规范的实现
    • 注意请求/响应/会话这里都使用了Servlet规范中的HttpServletRequest/HttpServletResponse/HttpSession
  • ServletWebRequest : 相当于 ServletRequestAttributes + NativeWebRquestServlet规范下的实现