字面翻译:
HttpServletRequest http 控制层 请求
ServerHttpRequest 服务 http 请求
继承关系
HttpServletRequest 继承关系图
主要子类如下所示
ServerHttpRequest 继承关系图
主要子类如下所示
来源包
HttpServletRequest 来源包的位置
ServerHttpRequest 来源包的位置
demo
一个简单的 demo
@GetMapping("hello")
public String hello(HttpServletRequest request, HttpServletResponse response) {
ServletServerHttpRequest request1 = new ServletServerHttpRequest(request);
ServletServerHttpResponse response2 = new ServletServerHttpResponse(response);
return "success";
}
调试查看
HttpServletRequest 的实现类是 RequestFacade
ServletServerHttpRequest 的构造函数需要 HttpServletRequest 对象不为空。
那么为什么需要这么一个类呢?
HttpServletRequest 的调用链路
一个 http 请求过来后直到 RequestFacade对象创建的过程。
总结
简单说 HttpServletRequest 是tomcat提供的。
ServerHttpRequest 是 spring框架提供的。
ServletServerHttpRequest 将 HttpServletRequest 作为自己的一个成员属性。