请求到来时,第一个接受这个请求的前端控制器叫DispatcherServlet(这个需要在web.xml中配置),后端控制器叫Controller。

简化版流程:

1.spring mvc将所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求 进行真正的处理工作。
2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.
3.DispatcherServlet请请求提交到目标Controller
4.Controller进行业务逻辑处理后,会返回一个ModelAndView
5.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象
6.视图对象负责渲染返回给客户端。

SpringMVC执行流程:
1.用户发送请求至前端控制器DispatcherServlet
2.DispatcherServlet收到请求调用处理器映射器HandlerMapping。
3.处理器映射器根据请求url找到具体的处理器,生成处理器执行链HandlerExecutionChain(包括处理器对象和处理器拦截器)一并返回给DispatcherServlet。
4.DispatcherServlet根据处理器Handler获取处理器适配器HandlerAdapter,执行HandlerAdapter处理一系列的操作,如:参数封装,数据格式转换,数据验证等操作
5.执行处理器Handler(Controller,也叫页面控制器)。
6.Handler执行完成返回ModelAndView
7.HandlerAdapter将Handler执行结果ModelAndView返回到DispatcherServlet
8.DispatcherServlet将ModelAndView传给ViewReslover视图解析器
9.ViewReslover解析后返回具体View
10.DispatcherServlet对View进行渲染视图(即将模型数据model填充至视图中)。
11.DispatcherServlet响应用户。

组件描述:
  1、DispatcherServlet:前端控制器
  用户请求到达前端控制器,它就相当于mvc模式中的c,dispatcherServlet是整个流程控制的中心,由它调用其它组件处理用户的请求,dispatcherServlet的存在降低了组件之间的耦合性。
  2、HandlerMapping:处理器映射器
  HandlerMapping负责根据用户请求找到Handler即处理器,springmvc提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。
  3、Handler:处理器
  Handler 是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler对具体的用户请求进行处理。由于Handler涉及到具体的用户业务请求,所以一般情况需要程序员根据业务需求开发Handler。
  4、HandlAdapter:处理器适配器
  通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。
  5、View Resolver:视图解析器
  View Resolver负责将处理结果生成View视图,View Resolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。
  一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。

https://www.jianshu.com/p/8a20c547e245

http://www.cnblogs.com/lcngu/p/5496083.html

http://blog.sina.com.cn/s/blog_7ffb8dd5010184gx.html

http://www.cnblogs.com/chenjunjie12321/articles/6118426.html

http://www.cnblogs.com/linjiqin/p/3440990.html

http://m.blog.csdn.net/article/details?id=51425416

http://www.voidcn.com/blog/u011410529/article/p-4308826.html

http://www.bbsmax.com/A/ZOJPaAol5v/

http://www.importnew.com/22188.html

SpringMVC 原理和流程相关推荐

  1. springmvc工作流程_springMVC工作原理及流程详细讲解

    简述 本文主要介绍springMVC工作原理. 工作原理 客户端发送HTTP请求,DispatcherServlet控制器拦截到请求,调用HandlerMapping 解析请求对应的Handler,H ...

  2. SSM三大框架+SpringMVC的工作原理及其流程

    SSM三大框架+SpringMVC的工作原理及其流程 一.SSM中各层作用及关系 1.持久层:DAO层(mapper层)(属于mybatis模块)     DAO层(Mapper层):主要负责与数据库 ...

  3. SpringMVC的启动流程与原理

    做过web项目的都知道页面连接后端程序中间是需要一个连接器来进行连接控制的.拿最常用的web容器tomcat来说,我们用tomcat搭建一个简单的web应用,就是配置好tomcat的web.xml文件 ...

  4. 【SpringMVC 笔记】SpringMVC 原理 + 入门项目(xml 配置版 vs 注解版)

    SpringMVC 入门项目 什么是 SpringMVC? 中心控制器 SpringMVC 执行原理 执行流程 xml 配置版 1.创建一个 Web 项目 2.pom.xml 中导入 SpringMV ...

  5. ARKit从入门到精通-ARKit工作原理及流程介绍

    2017-06-15 坤小 Cocoa开发者社区 转载请注明出处:http://www.jianshu.com/p/0492c7122d2f 1.1-写在前面的话 1.2-ARKit与SceneKit ...

  6. Struts2和SpringMVC的执行流程。

    先介绍一下SpringMVC的执行流程: 1:客户端发起请求到DispatcherServlet(前端控制器) 2:前端控制器请求HandlerMapping(处理器映射器)查找 Handler 根据 ...

  7. 【运筹学】单纯形法总结 ( 单纯形法原理 | 单纯形法流程 | 单纯形表 | 计算检验数 | 最优解判定 | 入基变量 | 出基变量 | 方程组同解变换 ) ★★★

    文章目录 一.单纯形法原理 二.单纯形法流程 三.单纯形法案例一 1.线性规划示例 2.转化标准形式 3.查找初始基可行解 4.初始基可行解的最优解判定 5.第一次迭代 : 入基与出基变量选择 6.第 ...

  8. div置于页面底部_浏览器渲染页面的原理及流程

    浏览器渲染页面的原理及流程 浏览器将域名通过网络通信从服务器拿到html文件后,如何渲染页面呢? 1.根据html文件构建DOM树和CSSOM树.构建DOM树期间,如果遇到JS,阻塞DOM树及CSSO ...

  9. ARKit从入门到精通(2)-ARKit工作原理及流程介绍

    转载请注明出处:ARKit从入门到精通(2)-ARKit工作原理及流程介绍 1.1-写在前面的话 1.2-ARKit与SceneKit的关系 1.3-ARKit工作原理 1.3.1-ARSCNView ...

最新文章

  1. linux 下面数据库备份
  2. 【Java代码】使用 org.apache.ibatis.plugin.Interceptor 拦截器实现全局 mapper.xml 参数注入(可用于切换数据库实例schema+Demo举例源码)
  3. win7配置计算机失败怎么办,电脑win7配置失败 还原更新 怎么处理 不要说重装
  4. 第一周周日DailyReporting——PM(李忠)
  5. Nginx upstream (一) 整体流程分析
  6. Java内存模型深度解析:总结
  7. linux生成文件清单,Linux 获取文件名称生成列表 txt - create_filelist
  8. 前端学习(982):jquery概述
  9. C#的多线程机制探索3
  10. SSM框架笔记07:初探Spring——采用XML配置文件与注解方式
  11. windows server 2003 or 2008 远程登录时超过最大连接数的解决办法
  12. ibatis调用mysql带OUT类型参数的存储过程并获取返回值
  13. 突然有点想和你唠嗑了~
  14. NHK SHV 的 22.2 声道音频系统
  15. php css类,css class是啥
  16. git创建本地版本仓库
  17. android shn1 获取_华为光猫获得Root Shell(shell的root权限)详细说明,接力sdgaojian发帖。...
  18. vue 点击取消按钮关闭页面_vue 点击按钮弹窗,点击关闭按钮关闭弹窗。
  19. C学习笔记之---八皇后算法
  20. python求n的阶乘_python如何计算n的阶乘

热门文章

  1. python下载教程1001python下载教程-请教vs2017下怎么使用python
  2. python的用途实例-Python基础之函数原理与应用实例详解
  3. widnows命令行常用命令使用 和 windows创建文件,写内容到文件
  4. 在python中排序元组
  5. 网络编程学习笔记(TCP套接口选项)
  6. $Django 中间件 csrf
  7. 最近的生活 - 18年03月20日
  8. ORACLE SQL语句总结2
  9. Java学习笔记十(注解)
  10. MySQL 慢查询日志工具之pt-query-digest