核心对象

  • DispatcherServlet 核心控制器负责请求,响应,数据的分发。
  • HandlerMapping 处理器映射器,负责到controller中,找到对应的方法,返回给核心控制器。
  • HandleAdapter 处理适配器,将handle找到的方法执行,执行结果,即ModelAndView数据和视图返回给核心控制器。
  • HttpMessageConvertor 消息转换器,数据类型的转换,如日期…
  • ViewResolver 视图解析器,核心控制器调度视图解析器,视图解析器,返回视图。

核心控制器获得实体,渲染,将数据响应到页面。

执行流程图


具体的执行过程

  1. 用户发起request请求,请求至DispatcherServlet前端控制器

  2. DispatcherServlet前端控制器请求HandlerMapping处理器映射器查找Handler,DispatcherServlet:前端控制器,相当于中央调度器,各各组件都和前端控制器进行交互,降低了各各组件之间耦合度。

  3. HandlerMapping处理器映射器,根据url及一些配置规则(xml配置、注解配置)查找Handler,将Handler返回给DispatcherServlet前端控制器。

  4. DispatcherServlet前端控制器调用适配器执行Handler,有了适配器通过适配器去扩展对不同Handler执行方式(比如:原始servlet开发,注解开发)

  5. 适配器执行Handler,Handler是后端控制器,当成模型。(Controller)

  6. Handler执行完成返回ModelAndView,ModelAndView:springmvc的一个对象,对Model和view进行封装。

  7. 适配器将ModelAndView返回给DispatcherServlet

  8. DispatcherServlet调用视图解析器进行视图解析,解析后生成view,视图解析器根据逻辑视图名解析出真正的视图。
    View:springmvc视图封装对象,提供了很多view,jsp、freemarker、thymeleaf、pdf、excel。。。

  9. ViewResolver视图解析器给前端控制器返回view

  10. DispatcherServlet调用view的渲染视图的方法,将模型数据填充到request域 。

  11. DispatcherServlet向用户响应结果(jsp页面、json数据。。。。)

图解springmvc 执行流程相关推荐

  1. springmvc执行流程(简述易懂)

    Spring MVC框架的控制器 控制器的主要作用就是处理特定URL发过来的HTTP请求,然后进行业务逻辑处理,将结果返回给某个特定的视图. springmvc执行流程 1:客户端请求提交到Dispa ...

  2. SpringMVC 执行流程解析

    SpringMVC 执行流程解析 注:SpringMVC 版本 5.2.15 上面这张图许多人都看过,本文试图从源码的角度带大家分析一下该过程. 1. ContextLoaderListener 首先 ...

  3. 【 第六章 拦截器,注解配置springMVC,springMVC执行流程】

    第六章 拦截器,注解配置springMVC,springMVC执行流程 1.拦截器: ①springMVC中的拦截器用于拦截控制器方法的执行. ②springMVC的拦截器需要实现HandlerInt ...

  4. 口述完SpringMVC执行流程,面试官就让同事回家等消息了

    Srping MVC 执行流程真的是老生常谈的话题了,最近同事小刚出去面试,前面面试官相继问了几个 Spring 相关的问题,但当面试官问他,你知道 Srping MVC 的执行流程吗?小刚娴熟的巴拉 ...

  5. SpringMVC执行流程【简单理解举例】

    请选择你们的任意门: 本文介绍 Spring简单执行示例 改造成SpringMVC 程序执行流程分析 SpringMVC架构图以及执行流程(可以直接跳过来) 架构图 名词解释(官方话): 执行流程 自 ...

  6. SpringMVC执行流程分析

    1. 用户通过url发起请求,请求送到前置控制器(DispatcherServlet).2. 前置控制器是整个SpringMVC的控制中心,当接收到用户的请求之后, 根据请求传来的 url 去 处理器 ...

  7. SpringMVC执行流程及工作原理

    1.SpringMVC的原理和组成 从上图中可以看出:SpringMVC是属于SpringWeb里面的一个功能模块(SpringWebMVC).专门用来开发SpringWeb项目的一种MVC模式的技术 ...

  8. 理解MVC架构模式,SpringMVC原理、执行流程图解

    1.MVC架构模式 说起SpringMVC就不得不说MVC,MVC是一种经典架构模式.MVC架构模式的重点是为了解耦,将软件用户界面和业务逻辑分离以使代码可扩展性.可复用性.可维护性.灵活性加强,很多 ...

  9. springmvc的执行流程详解

    1.什么是MVC MVC是Model View Controller的缩写,它是一个设计模式 2.springmvc执行流程详细介绍 第一步:发起请求到前端控制器(DispatcherServlet) ...

最新文章

  1. JRoll 2 使用文档(史上最强大的下拉刷新,滚动,无限加载插件)
  2. ubuntu16安装pylearn2 出现错误提示importerror:no module named six.moves
  3. ‘聪明的搜索算法’ A*算法
  4. linux强制将数据写入磁盘,防止丢失内存的数据
  5. js上拉加载ajax数据,原生ajax写的上拉加载实例
  6. python自动下载邮件附件_Python批量下载电子邮件附件并汇总合并Excel文件
  7. GoF--服务定位器模式
  8. Android布局延伸状态栏,Android沉浸式全屏讲解(状态栏、导航栏处理)
  9. (入门级小项目)JSP编程+web项目发布到Tomcat+mysql数据库
  10. centos虚拟机复制后网络重启出错解决
  11. 肇庆学院计算机类宿舍哪里,肇庆学院宿舍怎么样 住宿条件好不好
  12. MySQL下载安装与配置详细教程
  13. 第12课:JSP动作 Jsp include动作(JSP教程 JSP入门实战教程 黄菊华Java网站开发系列教程)
  14. 如何设置苹果Mac菜单栏的时间与日期显示
  15. conda安装tensorflow和conda常用命令
  16. html如何查看json数据,浏览器如何查看json格式的数据?查看方法分享
  17. df命令能够实现linux系统磁盘管理中,Linux_linux磁盘命令中df命令的作用,linux磁盘命令中df命令的使用, - phpStudy...
  18. 烂泥:wiki系统confluence5.6.6安装、中文、破解及迁移
  19. linux给串口赋予权限
  20. 找出矩阵中的最大正方形

热门文章

  1. 前端学习(1647):前端系列实战课程之选项卡实现js思路
  2. 前端学习(1266):axios的常见api
  3. mybatis学习(37):动态sql-trim
  4. Linux:编译生成内核模块(来自国嵌的视频教学)
  5. connect函数在阻塞和非阻塞模式下的行为
  6. [机器学习笔记]Note14--推荐系统
  7. 【iOS】从实际出发理解多线程(二)--NSThread基础操作
  8. 「洛谷2495」「BZOJ3052」「SDOI2001」消耗战【虚树+树形动态规划】
  9. 【转】30种MySQL索引优化的方法
  10. Cpython解释器支持的进程与线程