Spring MVC的执行流程

一、名词解释

1、前端控制器(DispatcherServlet)

  • 接收请求,响应结果,相当于转发器,中央处理器

2、处理器映射器(HandlerMapping)

  • 根据请求的url查找Handler(处理器/Controller)
  • 可以通过XML和注解方式实现映射。

3、处理器适配器(HandlerAdapter)

  • 按照HandlerAdapter所要求的规则执行Handler

4、处理器Handler(也称之为Controller)

  • 接收用户请求信息,调用业务方法处理请求,也称之为后端控制器

5、视图解析器(ViewResolver)

  • 进行视图解析,把逻辑视图名解析成真正的物理视图

6、视图(View)

  • 把数据展现给用户的页面

二、执行流程

1. 用户发送请求到前端控制器DispatcherServlet

2. DispatcherServlet收到请求调用处理器映射器HandlerMapping

3. HandlerMapping通过注解或XML找到具体的处理器,并生成执行链返回给DispatcherServlet。

4. DispatcherServlet调用处理器适配器HandlerAdapter

5. HandlerAdapter经过适配调用具体的处理器(Controller)

6. Controller执行完成返回ModelAndView对象

7. HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet

8. DispatcherServlet将ModelAndView传给视图解析器ViewReslover

9. ViewReslover解析后返回具体的视图View

10. DispatcherServlet根据View进行渲染视图

11. DispatcherServlet将页面响应给用户

三、图解

Spring MVC必须知道的执行流程的更多相关文章

  1. Spring MVC 原理介绍(执行流程)

    Spring MVC工作流程图   图一   图二    Spring工作流程描述       1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServle ...

  2. Spring MVC 处理一个请求的流程分析

    Spring MVC是Spring系列框架中使用频率最高的部分.不管是Spring Boot还是传统的Spring项目,只要是Web项目都会使用到Spring MVC部分.因此程序员一定要熟练掌握MV ...

  3. Struts 2 Spring Hibernate三大框架的执行流程以及原理

    Struts2框架 一.简介 Struts2是一个相当强大的Java Web开源框架,是一个基于POJO的Action的MVC Web框架.它基于当年的WebWork和XWork框架,继承其优点,同时 ...

  4. Spring 文件上传MultipartFile 执行流程分析

    在了解Spring 文件上传执行流程之前,我们必须知道两点: 1.Spring 文件上传是基于common-fileUpload 组件的,所以,文件上传必须引入此包 2.Spring 文件上传需要在X ...

  5. Spring Security 案例实现和执行流程剖析

    Spring Security Spring Security 是 Spring 社区的一个顶级项目,也是 Spring Boot 官方推荐使用的安全框架.除了常规的认证(Authentication ...

  6. MVC模式与Servlet执行流程

    ##Servlet生命周期 五个部分,从加载到卸载,如同人类的出生到死亡 加载:Servlet容器自动处理 初始化:init方法 该方法会在Servlet被加载并实例化后执行 服务:service抽象 ...

  7. Spring Batch(0)——控制Step执行流程

    Conditional Flow in Spring Batch I just announced the new Learn Spring course, focused on the fundam ...

  8. Spring MVC整体处理流程

    一.spring整体结构 首先俯视一下spring mvc的整体结构 二.处理流程 1.请求处理的第一站就是DispatcherServlet.它是整个spring mvc的控制核心.与大多数的jav ...

  9. 【WEB】初探Spring MVC框架

    Spring MVC框架算是当下比较流行的Java开源框架.但实话实说,做了几年WEB项目,完全没有SpringMVC实战经验,乃至在某些交流场合下被同行严重鄙视“奥特曼”了.“心塞”的同时,只好默默 ...

随机推荐

  1. 【集群实战】NFS网络文件共享服务

    1. NFS介绍 1.1 什么是NFS? NFS是Network File System的缩写,中文意思是网络文件系统. 它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录. ...

  2. python selenium(环境搭建)

    一:自动化了解知识 工具安装 什么样的项目适合做自动化? 自动化测试一般在什么阶段开始实施? 你们公司自动化的脚本谁来维护?如何维护? 自动化用例覆盖率是多少? 自动化的原理 通过 webdriver ...

  3. 一只简单的网络爬虫(基于linux C/C++)————Url处理以及使用libevent进行DNS解析

    Url处理 爬虫里使用了两个数据结构来管理Url 下面的这个数据结构用来维护原始的Url,同时有一个原始Url的队列 //维护url原始字符串 typedef struct Surl { char * ...

  4. libevent(一)定时器Demo

    开始研究libevent,使用的版本是2.0.22. 实现一个定时器:每2秒执行一次printf. #include <stdio.h> #include <stdlib.h> ...

  5. 模块_os模块

    import os print(os.getcwd()) # 获取当前工作目录 print(os.listdir()) # 列表列出当前目录下的目录名和文件名 os.mkdir("tempd ...

  6. springboot设置banner

    下图是springboot项目启动的的打印数据,在log中可以清楚的看到有一个spring的banner图案,这个图案其实我们是可以自己进行设置的 我们在项目目录的resources目录下创建一个ba ...

  7. 利用vue-cli + vant搭建一个移动端开发模板

    本文系原创,转载请附带作者信息.项目地址: https://github.com/momozjm/vant-project.git 前言 在项目开发过程中,一个新的项目需要我们从零开始搭建框架,这个时 ...

  8. js获取session对象

  9. Qt自定义文本输入框实现支持输入度分秒和度两种格式(简易无限制输入)

    1.自定义文本输入框 #ifndef MYLINEEDIT_H #define MYLINEEDIT_H #include <QLineEdit> #include "ui_my ...

  10. JDBC06 其他操作及批处理Batch

    灵活指定SQL语句中的变量 -PreparedStatement 对存储过程进行调用 -CallableStatement 运用事务处理 -Transaction 批处理 -Batch -对于大量的批 ...