掘金日新计划 · 6 月更文挑战」的第6天
- 前端发送请求被前端控制器DispatcherServlet拦截
- 前端控制器调用处理器映射器HandlerMapping对请求URL进行解析,解析之后返回调用给前端控制器
- 前端控制器调用处理器适配器处理调用链
- 处理器适配器基于反射通过适配器设计模式完成处理器(控制器)的调用处理用户请求
- 处理器适配器将控制器返回的视图和数据信息封装成ModelAndView响应给前端控制器
- 前端控制器调用视图解析器ViewResolver对ModelAndView进行解析,将解析结果(视图资源和数据)响应给前端控制器
- 前端控制器调用视图view组件将数据进行渲染,将渲染结果(静态视图)响应给前端控制器
- 前端控制器响应用户请求
组件说明
- DispatcherServlet:前端控制器,也称为中央控制器,它是整个请求响应的控制中心,组件的调用由它统一调度。
- HandlerMapping:处理器映射器,它根据用户访问的 URL 映射到对应的后端处理器 Handler。也就是说它知道处理用户请求的后端处理器,但是它并不执行后端处理器,而是将处理器告诉给中央处理器。
- HandlerAdapter:处理器适配器,它调用后端处理器中的方法,返回逻辑视图 ModelAndView 对象。
- ViewResolver:视图解析器,将 ModelAndView 逻辑视图解析为具体的视图(如 JSP)。
- Handler:后端处理器,对用户具体请求进行处理,也就是我们编写的Controller 类。