本文是对 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. SpringBoot 对IBM MQ进行数据监听接收以及数据发送

    一.需求介绍 后端使用Spring Boot2.0框架,要实现IBM MQ的实时数据JMS监听接收处理,并形成回执通过MQ队列发送. 二.引入依赖jar包 <dependency> < ...

  2. Pygame小游戏练习三

    @Python编程从入门到实践 Python项目练习 七.创建Passenger类 创建passenger.py文件,创建Passenger类,控制乘客属性和行为 # passenger.py imp ...

  3. gin获取全部参数

    原文链接:https://blog.csdn.net/keyunq/article/details/82226280 一直都是用结构体接收参数,假如事先不清楚参数名,或者参数是不固定的,就要动态获取. ...

  4. 沿路径动画(Animation Along a Path)

    Silverlight 提供一个好的动画基础,但缺少一种方便的方法沿任意几何路径对象进行动画处理.在Windows Presentation Foundation中提供了动画处理类DoubleAnim ...

  5. c#Socket通讯

    参考http://bbs.cskin.net/thread-326-1-1.html的大神的代码 socket封装 /// <summary> /// 自定义Socket对象 /// &l ...

  6. 张小龙用这8句话表达了NB产品的一切(转)

    1.一个好的产品应该是用完即走 真正好的产品,应该是让用户提高效率而不是消磨时光.但现在大部分用户使用微信的时间让我们很担忧. 包括我们自己的同事,在开会的时候,有同事隔两分钟就看一下手机,我觉得他们 ...

  7. 利用css伪类选择器hover控制两个元素属性

    示例1: <html> <body> <style> #a:hover {color : #FFFF00;} #a:hover > #b:first-chil ...

  8. TVM图优化(以Op Fusion为例)

    首先给出一个TVM 相关的介绍,这个是Tianqi Chen演讲在OSDI18上用的PPThttps://files.cnblogs.com/files/jourluohua/Tianqi-Chen- ...

  9. java进程被OOM干掉问题记录

    异常现象:用户环境部署了一台iserver,访问一阵后,进程没了   分析: 1.bin目录下没有崩溃日志,在tomcat的访问日志里面也没有看到有用的信息.iserver.log里面也没有信息 2. ...

  10. IO 理论 SOCK理论

    IO密集型程序 在程序执行过程中存在大量IO操作,而CPU操作较少,消耗CPU较少,运行效率较低CPU(计算)密集型程序 在程序执行中,CPU运算较多,IO操作相对较少(消耗CPU大,运行速度快)IO ...