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. 【Linux常见命令】date命令

    Linux date命令:可以用来显示或设定系统的日期与时间. 在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下: 时间方面: %H : 小时(00..2 ...

  2. 快速上手最新的 Vue CLI 3

    翻译:疯狂的技术宅 原文:blog.logrocket.com/getting-sta- 概要:本文将指导你快速上手 Vue CLI 3,包括最新的用户图形界面和即时原型制作功能的使用步骤. 介绍 尤 ...

  3. 2018/12/08 L1-036 A乘以B Java

    简单的题目, 就是考察简单的输入和乘法: import java.io.BufferedReader; import java.io.InputStreamReader; public class M ...

  4. Damaged Hard Drive and Reinstall System

    0 缘由 我是ACER笔记本,电脑从桌子上重摔,之后几天可以正常使用.可是后来看完视频准备退出的时候,发现所有页面已经卡死了,内存占用已经超过了80%,任务管理器没有反应,不得已按了电源键强制关机. ...

  5. 一个简单的wed服务器SHTTPD(8)———— URI分析

    //start from the very beginning,and to create greatness //@author: Chuangwei Lin //@E-mail:979951191 ...

  6. IP 基础知识全家桶,45 张图一套带走

    前言 前段时间,有读者希望我写一篇关于 IP 分类地址.子网划分等的文章,他反馈常常混淆,摸不着头脑. 那么,说来就来!而且要盘就盘全一点,顺便挑战下小林的图解功力,所以就来个 IP 基础知识全家桶. ...

  7. 算法——Java实现栈

    栈 定义: 栈是一种先进后出的数据结构,我们把允许插入和删除的一端称为栈顶,另一端称为栈底,不含任何元素的栈称为空栈 栈的java代码实现: 基于数组: import org.junit.jupite ...

  8. 自动化运维工具Ansible之Tests测验详解

    Ansible Tests 详解与使用案例 主机规划 添加用户账号 说明: 1. 运维人员使用的登录账号: 2. 所有的业务都放在 /app/ 下「yun用户的家目录」,避免业务数据乱放: 3. 该用 ...

  9. 补一下昨天的博客 J - Sabotage 网络流

    题目链接:https://vjudge.net/contest/299467#problem/J 这个题目是一个裸的最小割问题,就不多赘述了. #include <cstdio> #inc ...

  10. spark是怎么从RDD升级到DataFrame的?

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是spark专题的第五篇,我们来看看DataFrame. 用过Python做过机器学习的同学对Python当中pandas当中的Data ...