Spring Web 概念模型 : Web请求 -- WebRequest
对于来自Web
的HTTP
用户请求,Spring Web
对其进行了抽象,其中典型的一个概念模型接口,就是WebRequest
。但并不是所有有关HTTP Web
请求的信息都是在接口WebRequest
中定义的,而是在跟WebRequest
有关的一组接口或者类中。本文我们对这些接口或者类做一个简单的介绍。
下面是这组接口/类之间的层级关系图,以及它们各自的方法和属性。
从该图可以看出 :
-
RequestAttributes
: 主要定义 对请求属性的访问 + 对会话有关的访问 -
WebRquest
: 相当于RequestAttributes
+ 对请求头部的访问 + 对请求参数的访问 + 对请求用户主体的访问 + 访问资源是否修改 + 对Locale
的访问 -
NativeWebRquest
: 相当于WebRquest
+ 对底层原生Request
/Response
对象的访问 + 泛型支持 -
AbstractRequestAttributes
: 相当于RequestAttributes
+ 操作请求是否完成 -
ServletRequestAttributes
: 相当于AbstractRequestAttributes
在Servlet
规范的实现- 注意请求/响应/会话这里都使用了
Servlet
规范中的HttpServletRequest
/HttpServletResponse
/HttpSession
- 注意请求/响应/会话这里都使用了
-
ServletWebRequest
: 相当于ServletRequestAttributes
+NativeWebRquest
在Servlet
规范下的实现