Java Web
【黑马程序员新版JavaWeb基础教程,Java web从入门到企业实战完整版】
9 Request&Response
9.2 Request 对象
9.2.1 Request 继承体系
看个问题

∴
- ServletRequest和HttpServletRequest的关系是什么?
- request对象是由谁创建的?
- request提供了哪些API,这些API从哪里查?
【Request 的继承体系】

可以看到,ServletRequest和HttpServletRequest都是Java提供的
Java EE 官方文档


ServletRequest和HttpServletRequest是继承关系,并且两个都是接口,
但是接口是无法创建对象的。
方法中对象的创建者:

【RequestFacade 类】
- 该类实现了HttpServletRequest接口,也间接实现了ServletRequest接口。
- Servlet类中的service方法、doGet方法或者是doPost方法最终都是由Web服务器[Tomcat]来调用的,所以Tomcat提供了方法参数接口的具体实现类,并完成了对象的创建
[验证]

可以看到是一个 RequestFacade 对象。
【小结】
- Request的继承体系为ServletRequest–>HttpServletRequest–>RequestFacade
- Tomcat需要解析请求数据,封装为request对象,并且创建request对象传递到service方法
- 使用request对象,可以查阅JavaEE API文档的HttpServletRequest接口中方法说明