SpringMVC的工作流程

一、 SpringMVC的相关组件

1. DispatcherServlet

前端控制器(中央控制器),是整个请求响应的控制中心,统一调度其他组件,处理用户的请求

2. HandlerMapping

处理器映射器,根据请求的url等信息来查找具体的Handler,将改Handler实例返回前端控制器

3. HandlerAdapter

处理器适配器,根据Handler实例信息,按照特定的规则去执行相关的Handler

4. ViewResolver

视图解析器,负责将逻辑视图解析成具体的视图

5. Handler、HandlerMapping、HandlerAdapter的区别

Handler 是用来干活的工具;
HandlerMapping 用于根据需要干的活找到相应的工具;
HandlerAdapter 是使用工具干活的人。

二、 整体工作流程

绘图2.png

  1. DispatcherServlet 接收到客户端发送的请求。判断是普通请求,上传文件的请求。
  2. DispatcherServlet 收到请求调用 HandlerMapping 处理器映射器。
  3. HandleMapping 根据请求 URI 找到对应的控制器以及拦截器,组装成 HandlerExecutionChain 读写。将此对象返回给 DispatcherServlet,做下一步处理。
  4. DispatcherServlet 调用 HanderAdapter 处理器适配器。这里是适配器设计模式,进行接口转换,将对一个接口调用转换为其他方法。
  5. HandlerAdapter 根据执行控制器方法,也就是开发人员写的 Controller 类中的方法,并返回一个 ModeAndView
  6. HandlerAdapter 返回 ModeAndView 给 DispatcherServlet
  7. DispatcherServlet 调用 ViewResolver 视图解析器来 来解析 ModeAndView
  8. ViewResolver 解析 ModeAndView 并返回真正的 View 给 DispatcherServlet
  9. DispatcherServlet 将得到的视图进行渲染,填充 Model 中数据到 request 域
  10. 返回给客户端响应结果

注:
如果有异常,会在第6步后,DispatcherServlet 调用 HandlerExceptionResolver 处理异常,有异常返回包含异常的 ModelAndView,然后继续第7步的处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值