介绍

MVC(Model-View-Controller)是一种软件架构模式,其中应用程序被划分为三个部分:模型(Model)、视图(View)和控制器(Controller)。MVC框架的主要目标是将应用程序的业务逻辑(Model)与用户界面(View)分离开来,从而提高应用程序的可维护性和可扩展性。MVC框架通常使用注解来标识不同的组件(例如,@Controller、@Service、@Repository等)。

Spring MVC,注解的原理是通过反射机制来实现的。当应用程序启动时,Spring框架会扫描所有标有注解的类,并通过反射机制获取这些类的相关信息,例如类名、方法名、注解类型等。然后,Spring框架会将这些信息存储在一个内部数据结构中,并在应用程序运行时使用这些信息来实例化对象、调用方法等。

具体来说,Spring MVC框架使用了以下注解:

@Controller:用于标识控制器类。当Spring框架扫描到标有@Controller注解的类时,会将其实例化,并将其方法映射到对应的URL上。@RequestMapping:用于标识处理HTTP请求的方法。当Spring框架扫描到标有@RequestMapping注解的方法时,会将其与对应的URL进行映射,从而使得请求可以被正确的处理。@RequestParam:用于获取请求参数。当Spring框架扫描到标有@RequestParam注解的方法参数时,会从请求中获取对应的参数值,并将其注入到方法参数中。@ResponseBody:用于返回JSON数据。当Spring框架扫描到标有@ResponseBody注解的方法时,会将方法返回的数据转换为JSON格式,并将其作为HTTP响应返回给客户端。

通过使用这些注解,Spring MVC框架可以快速、方便地开发Web应用程序,并实现良好的代码结构和可维护性。

区别

MVC是一种软件架构设计模式,用于将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。MVC模式的主要目的是将应用程序的不同方面分离,以便开发人员可以更轻松地管理和修改它们。模型表示应用程序的数据和业务逻辑,视图显示数据并与用户交互,而控制器处理用户输入并根据需要更新模型和视图。

Spring MVC是基于MVC模式的Web框架,用于开发Web应用程序。它利用Java语言提供的标准Servlet API,并在此之上构建了一个强大的Web框架。与传统的Servlet编程相比,Spring MVC提供了更好的模块化、灵活性和可扩展性,使得Web开发变得更加容易。在Spring MVC中,控制器(Controller)负责处理请求,将模型(Model)和视图(View)结合起来,然后将结果返回给客户端。同时,Spring MVC也提供了许多其他的功能,例如表单验证、国际化支持、文件上传和异常处理等。

两者执行流程

MVC执行流程:

1、用户发送请求给控制器(Controller)。
2、控制器接收请求并根据请求参数决定调用哪个模型(Model)。
3、模型处理请求并返回相应的数据给控制器。
4、控制器接收到数据并调用相应的视图(View)。
5、视图将数据呈现给用户。

Spring MVC执行流程:

1、客户端发送请求到 DispatcherServlet
2、DispatcherServlet 根据请求路径查找对应的处理器映射(HandlerMapping)
3、HandlerMapping将请求映射到相应的控制器
4、控制器处理请求并返回相应的ModelAndView
5、DispatcherServlet 将ModelAndView交给视图解析器(ViewResolver)进行解析
6、ViewResolver将ModelAndView解析为实际的视图
7、DispatcherServlet 将解析后的视图渲染后返回给客户端

相较于传统的MVC模式,Spring MVC多了一个前置控制器,即DispatcherServlet。它充当了所有请求的中心处理器,将请求委托给相应的控制器进行处理,并最终选择相应的视图呈现给用户。因此,Spring MVC执行流程比传统的MVC模式更加复杂,但同时也提供了更多的灵活性和可扩展性。

【MVC、Spring MVC介绍、区别、执行流程】相关推荐

  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. Spring Web MVC (Spring MVC) 的相关例题及解析

    MVC.web MVC.Spring MVC 和 Spring Web MVC的联系与区别: 1.MVC 是一种架构分层模式 2.web MVC 是指在 web 领域下实践的 MVC,因为 web 领 ...

  5. spring MVC --spring MVC原理

    Spring MVC工作流程图 图一 图二 Spring工作流程描述       1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获:   ...

  6. [Spring MVC] - Spring MVC环境搭建

    1) 复制Spring所需要的lib包         (这是SSH所需要的lib包,如果只使用spring,可以移除一些包) 2) 配置web.xml <?xml version=" ...

  7. Spring MVC 教程详解 个人总结 复习必备 面试宝典 狂神笔记

    文章目录 一.MVC 模式 1.什么是 MVC 2.Servlet MVC 小结 二.Spring MVC 1.Spring MVC 概念 为什么学习 Spring MVC 中央控制器 Dispatc ...

  8. JavaEE进阶 - Spring MVC 程序开发 - 细节狂魔

    文章目录 什么是 Spring MVC? MVC 定义 MVC 和 Spring MVC 的关系 总结 为什么要学 Spring MVC? Spring MVC 项目的创建 学习 Spring MVC ...

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

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

  10. Spring MVC框架-持久层用hibernate自动化(1)

    ##Spring MVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 MVC ...

最新文章

  1. C#中的::运算符的作用
  2. 函数return,有些地方你可能还没掌握
  3. php post授权编写,php模拟post行为代码总结(POST方式不是绝对安全)
  4. 网管型工业以太网交换机的几种管理方式
  5. 史上最清楚的BP算法详解
  6. Shell_Oracle Erp和其他系统Interface资料传输通过Shell进行控制(案例)
  7. java中的tcp与多线程_Java5 多线程与TCP编程实践
  8. 【Elasticsearch】你看懂 Elasticsearch Log 中的 GC 日志了吗?
  9. Windows Server 2008 R2忘记管理员密码后的解决方法
  10. Android Studio 设置HTTP代理无法取消的问题
  11. Oracle 9.2.0.4的一个简单安装脚本(含安装前补丁p3006854)
  12. Ripro子主题Eeesucai-child集成后台美化包源码
  13. 【MySQL】关系型数据库基本知识点
  14. bat批处理的注释语句
  15. python arduino小车,搭建ROS小车底盘-第六篇ros_arduino_bridge功能包的使用
  16. mysql数据中包含不间断空格(ascii值为194和160)解决办法
  17. 掌握python机器学习-读书笔记8 (抽样回归算法)
  18. 台湾dotnet程序员之家
  19. linux 创建wifi 热点_linux开启wifi和热点双用
  20. 小松鼠邮件(squirrelmail)服务器部署(squirrelmail+Postfix)

热门文章

  1. Java程序设计实验(二):类的创建和封装实验
  2. 当Sklearn遇上Plotly,机器学习变得如此简单、易于理解
  3. dns服务器地址显示fec0,DNS服务器地址为fec0
  4. java下载网络文件至本地
  5. MATLAB中删除矩阵的某些列或某些行
  6. 高并发系统设计四(系统怎样做到高可用)
  7. 屏幕坐标系转为笛卡尔坐标系
  8. 包围盒----碰撞检测
  9. [试错题库]中国政企ASP服务规范性考试
  10. 转:从一个故事看经验、科学与伪科学