Spring Mvc 执行流程

        第一步:用户发送请求到前端控制器:DispatcherServlet

                DispatcherServlet 又称中央控制器,是 SpringMvc 的核心,实质就是一个 HttpServlet,负责将请求分发,所有的请求都需要经过它来进行统一分发。当用户向服务器发送请求后,请求会发送到 DispatcherServlet,DispatcherServlet 对请求 URL 进行解析,得到请求资源标识符(URI)。

        第二步:前端控制器 DispatcherServlet 收到请求后调用处理器映射器(HandlerMapping),去查找处理器 Handler。

        第三步:处理器映射器(HandlerMapping)找到具体的处理器,生成处理器对象以及处理器拦截器一并返回给 DispatcherServlet。

                DispatcherServlet 根据之前获得的URI,调用 HandlerMapping 获得该 Handler 配置的所有相关对象:包括一个 Handler 处理器对象,多个 HandlerIntercepor 拦截器对象。 最后以HandlerExecutionChain 对象的形式返回。

        第四步:前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)。

        第五步:处理器适配器(HandlerAdapter)去调用自定义的处理器类(Controller:后端控制器)。

        DispatcherServlet 根据获得的 Headler,选择一个合适的 HandlerAdapter,提取 Request 中的模型数据,填充 Handler 入参,开始执行 Handler(Controller)。在填充 Header 的入参过程中,根据你的配置,Spring会帮你做一些额外的工作:

        1、HttpMessageConveter:将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息

        2、数据转换:对请求消息进行数据转换。如 String 转换为 Integer、Double等

        3、数据格式化:对请求消息进行数据格式化。如字符串转换为格式化数字、日期等

        4、数据验证:验证数据的有效性(长度、格式等),验证结果存储到BindingRequest或Error中

        第六步:自定义的处理器类(Controller)将得到的参数进行处理并返回结果给处理器适配器(HandlerAdapter)。

        第七步:处理器适配器(HandlerAdapter)将得到的结果返回给前端控制器(DispatcherServlet)。

        第八步:前端控制器(DispatcherServlet)将 ModelAndView 传给视图解析器(ViewReslover)。

        第九步:视图解析器(ViewReslover)将得到的参数从逻辑视图转换为物理视图并返回给全段控制器(DispatcherServlet)。

        第十步:前端控制器(DispatcherServlet)调用物理视图进行渲染后返回。

        第十一步:前端控制器(DispatcherServlet)将渲染后的结果返回。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值