springMVC是spring的一个后续产品,其实就是spring在原有基础上,又提供了web应用的MVC模块,可以简单的把springMVC理解为是spring的一个模块(类似AOP,IOC这样的模块),网络上经常会说springMVC和spring无缝集成,其实springMVC就是spring的一个子模块,所以根本不需要同spring进行整合。

spring mvc官网

文章目录

  • Spring MVC是什么
  • 什么是MVC设计模式
  • Spring MVC的执行流程
  • Spring MVC的核心组件有哪些

Spring MVC是什么

Spring MVC是目前主流的实现 MVC 设计模式的企业级开发框架,Spring 框架的一个子模块,无需整合,开发起来更加便捷。


什么是MVC设计模式

MVC设计模式: 将应用程序分为 Controller、Model、View 三层,Controller 接收客户端请求,调用 Model 生成业务数据,传递给 View。Spring MVC 就是对这套流程的封装,屏蔽了很多底层代码,开放出接口,让开发者可以更加轻松、便捷地完成基于MVC模式的 Web开发。


Spring MVC的执行流程

流程图


流程分析

1.客户端请求被 DisptacherServlet 接收。

2.根据 HandlerMapping 映射到 Handler。

3.生成 Handler 和 HandlerInterceptor。

4.Handler 和 HandlerInterceptor 以 HandlerExecutionChain 的形式一并返回给 DisptacherServlet。

5.DispatcherServlet 通过 HandlerAdapter 调用 Handler 的方法完成业务逻辑处理。

6.Handler 返回一个 ModelAndView 给 DispatcherServlet。

7.DispatcherServlet 将获取的 ModelAndView 对象传给 ViewResolver 视图解析器,将逻辑视图解析为物理视图 View。

8.ViewResovler 返回一个 View 给 DispatcherServlet。

9.DispatcherServlet 根据 View 进行视图渲染(将模型数据 Model 填充到视图 View 中)。

10.DispatcherServlet 将渲染后的结果响应给客户端。


Spring MVC的核心组件有哪些

① DispatcherServlet:中央调度器,是整个流程控制的核心,控制其他组件的执行,进行统一调度,降低组件之间的耦合性,相当于总指挥。

② Handler:处理器,完成具体的业务逻辑,相当于 Servlet 或 Action。

③ HandlerMapping:处理器映射器,DispatcherServlet 接收到请求之后,通过 HandlerMapping 将不同的请求映射到不同的 Handler。

④ HandlerInterceptor:处理器拦截器,是一个接口,如果需要完成一些拦截处理,可以实现该接口。

⑤ HandlerExecutionChain:处理器执行链,包括两部分内容:Handler 和 HandlerInterceptor(系统会有一个默认的 HandlerInterceptor,如果需要额外设置拦截,可以添加拦截器)。

⑥ HandlerAdapter:处理器适配器,Handler 执行业务方法之前,需要进行一系列的操作,包括表单数据的验证、数据类型的转换、将表单数据封装到 JavaBean 等,这些操作都是由 HandlerAdapter 来完成,开发者只需将注意力集中在业务逻辑的处理上,DispatcherServlet 通过 HandlerAdapter 执行不同的 Handler。

⑦ ModelAndView:装载了模型数据和视图信息,作为 Handler 的处理结果,返回给 DispatcherServlet。

⑧ ViewResolver:视图解析器,DispatcherServlet 通过它将逻辑视图解析为物理视图,最终将渲染结果响应给客户端。

Spring MVC核心知识相关推荐

  1. Spring Boot 核心知识,深入剖析!

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群"加入公众号专属技术群 来源:http://uee.me/c3dFf 在过去两三年 ...

  2. (万字长文)Spring的核心知识尽揽其中

    来自:非科班的科班 Spring简介 Spring是开源的控制反转(Ioc)和面向切面编程(AOP)的容器框架,Spring的主要功能用于默认单例模式管理Bean对象.生产Bean.声明式事务.以及A ...

  3. Spring MVC基础知识整理➣国际化和异常处理

    概述 Spring框架为WEB项目提供了国际化以及异常处理机制.所谓的国际化也就是不同国籍,显示不同国籍的语言与符号.异常处理,也就是能够捕获WEB项目下的所有异常信息,并能处理记录这些异常信息机制. ...

  4. 【Java学习路线之JavaWeb】Spring MVC框架入门教程

    文章目录 读者 阅读条件 MVC设计模式简介 JSP+JavaBean Servlet+JSP+JavaBean MVC优缺点 优点 缺点 Spring MVC是什么 Spring MVC优点 第一个 ...

  5. [Spring mvc 深度解析(三)] 创建Spring MVC之器

    第9章 创建Spring MVC之器 ​ 本章将分析Spring MVC自身的创建过程.首先分析Spring MVC的整体结构,然后具体分析每一层的创建过程. 1 整体结构介绍 Spring MVC中 ...

  6. 通过项目逐步深入了解Spring MVC(一)

    相关阅读: 本文档和项目代码地址:https://github.com/zhisheng17/springmvc 转载请注明出处和保留以上文字! 了解 Spring: Spring 官网:http:/ ...

  7. 看透 Spring MVC 源代码分析与实践 —— 俯视 Spring MVC

    Spring MVC Spring MVC 之初体验 环境搭建 在 IDEA 中新建一个 web 项目,用 Maven 管理项目的话,在 pom.xml 中加入 Spring MVC 和 Servle ...

  8. Spring mvc 3.0 入门及应用

    [一]Spring应用 Spring 支持json格式的jar jackson-all-1.7.3  http://jackson.codehaus.org/ Spring MVC 3.x annot ...

  9. Spring MVC Rest 学习 一

    2019独角兽企业重金招聘Python工程师标准>>> 第一步:配置Spring MVC 核心Servlet <!-- spring mvc --><listene ...

最新文章

  1. tensorflow2.0中valid_data的作用是在训练的过程对对比训练数据与测试数据的准确率 损失率,便于判断模型的训练效果:是过拟合还是欠拟合(过拟合)
  2. json数据 提示框flash.now[:notice] flash.now[:alert]
  3. 新学期的一些安排 | 以及一些小建议
  4. Web Components 入门实例教程
  5. Ubuntu mysql连接错误10060/10061的方法
  6. 4.2 神经网络算法代码实现
  7. 力扣1281.整数的各位积和之差
  8. spring中定时器的使用
  9. iis ftp服务器文件大小,iis ftp服务器文件大小
  10. 石文软件测试,石文软件基本操作
  11. MiroTik 路由器配置无线中继模式(超细教程)
  12. 自动驾驶(二十)---------Waymo数据集
  13. android wp主题,WP主题:ebou4
  14. [ZT]第14节:粮食战争(14)--我的评论:中国农业的必经之路?
  15. 价值170万美元的Flash漏洞 360Vulcan免费提交给Adobe修复
  16. 青岛科技大学计算机学院官网,青岛科技大学
  17. 函数防抖(debounce)和节流(throttle)在H5编辑器项目中的应用
  18. Mac用命令行在访达中打开指定目录
  19. Kaggle图像识别竞赛 Plant Seedlings Classification(植物幼苗分类)具体实现
  20. STM32学习笔记一一ADC

热门文章

  1. macosx下apache的默认用户为daemon
  2. golang文件夹位置判断
  3. 一步一步学Entity FrameWork 4(1)
  4. 【PetShop 4.0学习】4.数据库结构
  5. 纯手工打造简单分布式爬虫(Python)
  6. html5--6-13 CSS3中的颜色表示方式
  7. 数据库名、实例名、数据库域名、全局数据库名、服务名 我也迷糊了
  8. 虚拟机变更网卡MAC地址后的网络连接
  9. Elasticsearch是如何实现master选举的?
  10. HTTP/2 in GO(二)