本文是对 SpringMVC 工作流程的总结,自己一定要可以用语言描述。

名词解释:

DispatcherServlet:前端控制器,是 SpringMVC 工作流程的中心,负责调用其他组件,在系统启动时就加载该类。

Handler:后端处理器,对用户具体请求进行处理,也就是我们编写的 Controller 类。

HandlerMapping:处理器映射器,根据用户访问的 URL 映射到对应的后端处理器 Handler,根据不同的映射处理器可实现不同的映射,比如 xml 配置(现在不常用)、注解配置(最常用)。

HandlerExecutionChain:后端处理器 Handler 相关对象,包括 Handler 对象和对应的拦截器对象,以 HandlerExecutionChain 对象包含了这些相关的对象。

ModelAndView:逻辑视图,包括数据模型和视图名。

HandlerAdapter:处理器适配器,调用后端处理器中的方法,返回逻辑视图 ModelAndView 对象。

ViewResolver:视图解析器,将 ModelAndView 逻辑视图解析为具体的视图(如 JSP,PDF等)。

工作流程:

1、当用户向服务器发送请求时,会被 DispatcherServlet 拦截。

2、DispatherServlet 解析用户访问的 URL,并调用处理器映射器 HandlerMapping。

3、 处理器映射器 HandlerMapping 映射到对应的后端处理器 Handler(注意这里只是找到了对应的 Controller 类,并没有执行其中的方法),Handler 对象以及 Handler 对象相关的拦截器对象会被封装到 HandlerExecutionChain 对象中返回给 DispatcherServlet。

4、DispatcherServlet 根据后端处理器 Handler 对象来调用适合的处理器适配器。

5、HandlerAdapter 调用 Handler 对象执行 Handler 中的方法,在 Handler 的方法中,可以做一些额外的工作,如消息转换(如 JSON、XML 和 Java 对象的互转)、数据转换(如 String 和 Integer、Double的互转)、数据格式化(如日期)、数据校验(后端校验),最终返回 ModelAndView 对象给 DispatcherServlet,该对象包含视图名和数据模型。

6、DispatcherServlet 根据 ModelAndView 对象来调用适合的视图解析器 ViewResolver。

7、ViewResolver 解析 Model 和 View 返回具体的 view 给 DispatcherServlet。

8、DispatcherServlet 对 view 进行渲染,返回具体的视图给客户端显示,如 JSP,JSON、XML、PDF等。

对于本文感兴趣的小伙伴们可以观看此https://www.bilibili.com/video/av30641870/,一个技术大牛手写SpringMVC框架的视频

Java Spring MVC工作流程的更多相关文章

  1. spring mvc 工作流程

    Spring Web MVC 处理Http请求的大致过程:一旦Http请求到来,DispatcherSevlet将负责将请求分发.DispatcherServlet可以认为是Spring提供的前端控制 ...

  2. Spring MVC工作流程

    本文回答Spring MVC如何处理一个请求的. 1.请求是由中央调度器DispatcherServlet接收的. 2.中央调度器将请求交给处理器映射器HandlerMapping,处理器映射器解析请 ...

  3. Spring MVC 工作流程详解

    1.首先先来一张图 开始流程----------------> 1.用户发送请求到前端控制器,前端控制器会过滤用户的请求,例如我们在web.xml里面配置的内容: <!-- 配置Sprin ...

  4. Spring MVC工作原理及源码解析(三) HandlerMapping和HandlerAdapter实现原理及源码解析

    1.HandlerMapping实现原理及源码解析 在前面讲解Spring MVC工作流程的时候我们说过,前端控制器收到请求后会调⽤处理器映射器(HandlerMapping),处理器映射器根据请求U ...

  5. Java——一文读懂Spring MVC执行流程

    说到Spring MVC执行流程,网上有很多这方面的文章介绍,但是都不太详细,作为一个初学者去读会有许多不理解的地方,今天这篇文章记录一下我学习Spring MVC的心得体会 话不多说,先上图: Sp ...

  6. Spring MVC 工作原理和流程、注解

    Spring MVC 是实现MVC设计模式的企业级开发框架,是Spring框架的一个子模块,无需整合,开发起来更加便捷. MVC设计模式 MVC是一种设计模式,它将应用程序分为 Controller. ...

  7. spring mvc处理流程概述

    大部分Java应用都是Web应用,展现层是Web应用不可忽略的重要环节.Spring为展现层提供了一个优秀的Web框架-Spring MVC.和众多其他Web框架一样,它基于MVC设计理念,此外,它采 ...

  8. Spring MVC工作原理及源码解析(一) MVC原理介绍、与IOC容器整合原理

    MVC原理介绍 Spring MVC原理图 上图是Spring MVC工作原理图(图片来自网上搜索),根据上图,我们可以得知Spring MVC的工作流程如下: 1.用户(客户端,即浏览器)发送请求至 ...

  9. Spring MVC请求处理流程

    从web.xml中 servlet的配置开始, 根据servlet拦截的url-parttern,来进行请求转发   Spring MVC工作流程图   图一   图二    Spring工作流程描述 ...

随机推荐

  1. javascript当中类型转换,typeof的用法

    1)类型转换,typeof的用法 例 3.1.1 <HTML><head>    <meta http-equiv="content-type" co ...

  2. 使用pycharm开发web——django2.1.5(四)视图和模板相关

    刘老师说这块很重要..... 应该是很重要,大概看了一下,这里面关于views中函数作用,大概看来可能就是相应请求,传入数据和跳转,基本功能上貌似这些框架都差不多吧(其实我并没用过3个框架以上.... ...

  3. DB2创建EMP和DEPT并进行基础操作

    一.DB2创建EMP和DEPT测试表 --DB2创建测试表 CREATE TABLE TEST.EMP (EMPNO INTEGER NOT NULL, ENAME ), JOB ), MGR INT ...

  4. 牛客 203B tree(树形dp)

    大意: 给定树, 对于每个节点, 求包含该节点的连通子集数. 显然有$dp[x]=\prod (dp[y]+1), ans[x]=(\frac{ans[fa[x]]}{dp[x]+1}+1)dp[x] ...

  5. MySQL SELECT语法(二)SELECT...INTO语法

    源自MySQL 5.7 官方手册 SELECT...INTO Syntax 一.SELECT...INTO介绍 SELECT...INTO用来将查询结果存储在变量或者写入文件中. SELECT ... ...

  6. poj 1006中国剩余定理模板

    中国剩余定理(CRT)的表述如下 设正整数两两互素,则同余方程组 有整数解.并且在模下的解是唯一的,解为 其中,而为模的逆元. 模板: int crt(int a[],int m[],int n) { ...

  7. javascript——获取元素方式

    //1:依据id //var element = document.getElementById("test"); console.log(element); //2:依据clas ...

  8. windows下Jmeter压测端口占用问题(亲测有效)

    windows下Jmeter压测端口占用问题 1 报错信息描述 压测的初期,在设置了 150qps/s 的并发数下压测几分钟后 Jmeter 就出现了如下报错. JAVA.NET.BINDEXCEPT ...

  9. AJAX中所谓的异步

    async javascript and xml 异步的js和xml 在AJAX中的异步不是我们所理解的同步异步编程,而泛指“局部刷新”,但是我们以后的AJAX请求尽可能异步请求数据(因为异步数据获取 ...

  10. win10 增加一个新磁盘

    1.右键我的电脑,选择管理 可以看到C盘的空间相比较大,拿出来250G的空间做成E盘 2.选择OS(C:),右键,压缩卷,请稍后,点击压缩 3.此刻会看到,有一块黑色区域就是新建的未分配空间,这时我们 ...