1、MVC架构模式

  • 说起SpringMVC就不得不说MVC,MVC是一种经典架构模式。MVC架构模式的重点是为了解耦,将软件用户界面和业务逻辑分离以使代码可扩展性、可复用性、可维护性、灵活性加强,很多应用程序的问题在于处理业务数据和显示业务数据的视图的对象之间存在紧密耦合。
  • 有一句很有名的话:一个层次的重定向几乎可以解决计算机业务中的所有问题。在模型(Model)和视图层(View)之间引入重定向层可以解决解耦问题,这个重定向层就是控制层(Controller)。这样模型和视图就实现了代码分离,解耦了,由控制层来决定哪个模型来处理,哪个视图显示。
    MVC(Model-View-Controller)三元组的概念:
  • Model(模型):
    数据模型,提供要展示的数据,包括数据和行为,可以理解为JAVA POJO或JavaBean组件;
  • View(视图):
    进行模型数据的展示,用户看到的和交互的界面;
  • Controller(控制器):
    控制器作用于模型和视图之上,接收用户请求,委托给模型进行处理,控制数据流向模型对象,把返回的模型数据给视图,其实就是接收请求并决定调用哪个模型去处理请求,然后再确定用哪个视图来显示返回的数据;
  • 传统MVC图解:

2、SpringMVC

SpringMVC是Spring框架中的一个组件,实现了MVC架构模式的核心概念,是一种请求驱动类型的轻量级web框架,使用了MVC的核心概念,对web层进行职责解耦,简化了web开发;
SpringMVC是围绕DispatcherServlet而设计的,DispatcherServlet给处理程序分派请求,执行视图解析,并且处理语言环境和主题解析,对上传文件提供支持;
DispatcherServlet通过使用处理程序映射来决定哪一个处理程序来处理传入的请求,处理程序映射只是用于标识使用哪一个处理程序来处理特定的URL模式的映射。

3、SpringMVC的优势

1、清晰的角色划分:前端控制器(DispatcherServlet)、请求到处理器映射(HandlerMapping)、处理器适配器(HandlerAdapter)、视图解析器(ViewResolver)、处理器或页面控制器(Controller)、验证器( Validator)、命令对象(Command 请求参数绑定到的对象就叫命令对象)、表单对象(Form Object 提供给表单展示和提交到的对象就叫表单对象)。
2、和Spring 其他框架无缝集成,是其它Web框架所不具备的;
3、可适配,通过HandlerAdapter可以支持任意的类作为处理器;
4、可定制性,HandlerMapping、ViewResolver等能够非常简单的定制;
5、功能强大的数据验证、格式化、绑定机制;
6、强大的JSP标签库,使JSP编写更容易。
7、RESTful风格的支持、简单的文件上传、约定大于配置的契约式编程支持、基于注解的零配置支持等等。

4、SpringMVC执行流程

1、用户发送请求----->DispatcherServlet,DispatcherServlet(前端控制器)接收到请求后委托给其他解析器进行处理,作为统一访问点,进行全局流程控制;
2、DispatcherServlet---->请求获取HandlerMapping,HandlerMapping(处理器映射器)把请求映射为HandlerExecutionChain对象(包含一个Handler处理器对象、多个HandlerInterceptor拦截器对象);
3、DispatcherServlet---->请求执行HandlerAdapter,HandlerAdapter(处理器适配器)会把处理器包装为适配器,从而支持多种类型的处理器;
4、HandlerAdapter---->执行handler,HandlerAdapter会根据适配结果调用真正的处理方法完成处理(业务逻辑),然后返回ModelAndView(包含数据,逻辑视图名);
5、ModelAndView---->ViewResolve根据逻辑视图名解析为具体的View;
6、View---->进行视图渲染,View会根据传进来的Model数据进行渲染;
7、返回控制权给DispatcherServlet,由DispatcherServlet响应给用户;

  • SpringMVC图解:

理解MVC架构模式,SpringMVC原理、执行流程图解相关推荐

  1. spring mvc返回页面显示空白_Spring 框架基础(06):Mvc架构模式简介,执行流程详解...

    一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个组件里面,在改进和个性化定制界面及用户交互的同时,不 ...

  2. Spring 框架基础(06):Mvc架构模式简介,执行流程详解

    本文源码:GitHub·点这里 || GitEE·点这里 一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集 ...

  3. .net mvc actionresult 返回字符串_Spring 框架基础(06):Mvc架构模式简介,执行流程详解

    一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个组件里面,在改进和个性化定制界面及用户交互的同时,不 ...

  4. data spring 指定时区_Spring 框架基础(05):Mvc架构模式,执行流程详解

    本文源码:GitHub || GitEE 一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个组件里面, ...

  5. MVC架构模式详细说明

    一.简介: 架构模式是一个通用的.可重用的解决方案,用于在给定上下文中的软件体系结构中经常出现的问题.架构模式与软件设计模式类似,但具有更广泛的范围. 模型-视图-控制器模式,也称为MVC模式(Mod ...

  6. SpringMVC详细执行流程与组件说明

    SpringMVC详细执行流程与组件说明 文章目录 SpringMVC详细执行流程与组件说明 1.SpringMVC架构流程 2.流程图 3.组件说明 1.SpringMVC架构流程 用户发送请求至前 ...

  7. Java学习-MVC架构模式

    目录 1 传统方式处理业务的缺点 2 MVC架构模式理论基础 4 MVC架构模式如何设计 4.1 设计JDBC工具类的封装 4.2 创建封装数据的对象 4.3 设计Dao模式 4.4 业务逻辑编写 4 ...

  8. SpringMVC的执行流程

    SpringMVC的执行流程 一.前言 刚学完SpringMVC的基本操作,但是对SpringMVC的执行流程源码很好奇,今天通过尚硅谷杨博超老师的教程视频学习并记录一下. 1.流程图 详细l流程图: ...

  9. MyBatis学习:简单认识一下MVC架构模式和三层架构

    1.本篇博客的背景和目的 目前我本人正在学习MyBatis框架,在原先了解并且懵懵懂懂使用的基础上,开始系统正式的学习.本篇博客阐述一下MVC架构模式和三层架构,以及明晰一下我们通常在Web项目中的编 ...

最新文章

  1. 53亿美元,今年最大一笔杠杆并购案!为什么会是它?
  2. mysql修改表结构权限_mysql 修改表结构操作
  3. CoreJavaE10V1P3.2 第3章 Java的基本编程结构-3.2 注释
  4. php中怎么函数加字符串,如何使用PHP中的字符串函数
  5. [转载] AWS之EMR数据ES通过数据仓库HIVE同步S3
  6. WAP入门之WMLScript与JavaScrpt的不同之处
  7. CorelDRAWX4的VBA插件开发(二十九)使用C++制作动态连接库DLL辅助VBA构键强大功能-(3)制作最简单的可供调用的DLL
  8. NB-IOT+GPS模组
  9. 本特利3500软件组态指导
  10. 虚短虚断是怎么来的?长篇好文介绍深度负反馈
  11. 智伴机器人班尼怎么联网_智伴机器人官网
  12. 途家供应链系统架构演进实践
  13. Android 学习博客
  14. 使用burp suite验证是否存在csrf漏洞
  15. 在c# winform 的 monthCalendar 里粗体凸显有数据的日期
  16. 生成签名证书keystore
  17. JD eid fp
  18. MT6762/MT6765处理器参数比较/芯片资料介绍
  19. java智能算法--机器学习包
  20. 【干货】磨金石教育UI快速入门!U设计基础知识整理,新人必备

热门文章

  1. 基于stm32的温湿度检测案例串口通信屏显示(二)
  2. 华为认证HCNA-IoT物联网工程师培训 V1.0
  3. Java基础_集合框架1
  4. Hadoop【部署 02】hadoop-3.1.3 单机版YARN(配置、启动停止shell脚本修改及服务验证)
  5. demo:飞机大战游戏 python小项目
  6. javaIO学习下:javase学习(三)
  7. 【校招VIP】产品思维能力之逻辑计算
  8. 项目实训 - 智能车系统 - 第七周记录
  9. 【HBase】热点现象及 RowKey 设计(转)
  10. 解析CRM系统如何增强企业核心竞争力?