zoukankan      html  css  js  c++  java
  • SpringMVC的工作原理(执行流程)

    流程如下:

    1.用户点击某个请求路径,发起一个HTTP request请求,该请求会被提交到DispatcherServlet(前端控制器);
    2.由DispatchServlet请求一个或者多个 HandlerMapping(处理器映射器),并返回一个执行链(HandlerExecutionChain)
    3.DispatcherServlet 将执行链返回的 Handler 信息发送给 HandlerAdapter(处理器适配器)
    4.HandlerAdapter 根据 Handler 信息找到并执行相应的 Handler(常称为 Controller);
    5.Handler 执行完毕后会返回给 HandlerAdapter 一个 ModelAndView 对象(Spring MVC的底层对象,包括 Model 数据模型和 View 视图信息);
    6.HandlerAdapter 接收到 ModelAndView 对象后,将其返回给 DispatcherServlet ;
    7.DispatcherServlet 接收到 ModelAndView 对象后,会请求 ViewResolver(视图解析器)对视图进行解析;
    8.ViewResolver 根据 View 信息匹配到相应的视图结果,并返回给 DispatcherServlet;
    9.DispatcherServlet 接收到具体的 View 视图后,进行视图渲染,将 Model 中的模型数据填充到 View 视图中的 request 域,生成最终的 View(视图);
    10.视图负责将结果显示到浏览器(客户端)。
     

    流程(重要)如下:

    1.客户端(浏览器)发送请求,直接请求到 DispatcherServlet 。
    2.DispatcherServlet 根据请求信息调⽤ HandlerMapping ,解析请求对应的 Handler 。
    3.解析到对应的 Handler (也就是我们平常说的 Controller 控制器)后,开始由HandlerAdapter 适配器处理。
    4.HandlerAdapter 会根据 Handler 来调⽤真正的处理器开处理请求,并处理相应的业务逻辑。
    5.处理器处理完业务后,会返回⼀个 ModelAndView 对象, Model 是返回的数据对象, View是个逻辑上的 View 。
    6.ViewResolver 会根据逻辑 View 查找实际的 View 。
    7.DispaterServlet 把返回的 Model 传给 View (视图渲染)。
    8.把 View 返回给请求者(浏览器)

  • 相关阅读:
    BootStrap Table前台和后台分页对JSON格式的要求
    神奇的外部嵌套(使用ROW_NUMBER()查询带条件的时候提示列名无效)
    要想获取select的值,使用ng-modle,否则无法获取select 的值
    Angular使用操作事件指令ng-click传多个参数示例
    Jenins 邮件通知
    Jenkins 流水线(Pipeline)
    Jenkins Master-Slave 架构
    Jenins 参数化构建
    Jenkins 用户权限管理
    Jenkins 安装
  • 原文地址:https://www.cnblogs.com/alwayszzj/p/15624099.html
Copyright © 2011-2022 走看看