介绍下SPRING MVC 中 一个request怎样传递的。
DispatcherServlet
如上图: DispathcerServlet的继承图。
符号说明:
C: 实体类
C 左上角有东西的: 抽象类
I:接口
蓝色实线: 类的继承
绿色实线:接口的集成
绿色虚线:类实现接口
类说明:
- DispatcherServlet : spring mvc 中的核心类
- FrameworkServlet : Base servlet for Spring’s web framework. Provides - integration with a Spring application context, in a JavaBean-based overall solution.
- HttpServletBean : 将 HttpServlet 加入一些 spring 的东西 :
- HttpServlet : 主要是 在 service 方法中 将 ServletRequest 转成 HttpServletRequest
- GenericServlet : 丰富一些 Servlet 的方法,但没有 对 service () 方法进行处理
- Servlet : 主要定义了 service() 方法, 所有请求都从这里进
研究 request workflow 只要研究 DispatcherServlet FramworkServlet HttpServlet 就可以了。
reqeust 对象是要先进入 容器, 容器再把 reqeust 给 HttpServlet 的 service 方法;
注意:实际上这样理解是不对的,因为请求是在DispatcherServlet 对象中完成的,他集成了 其他两个类。但是在 DEBUG 和 产看代码的时候,可以这样理解。