返回顶部
首页 > 资讯 > 后端开发 > JAVA >MVC框架知识详解
  • 109
分享到

MVC框架知识详解

mvcjavaservlet 2023-09-17 11:09:58 109人浏览 安东尼
摘要

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 Ὁ

在这里插入图片描述

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:Java案例分享专栏
✨特色专栏:国学周更-心性养成之路
🥭本文内容:mvc框架知识详解

文章目录

在这里插入图片描述

1.1 MVC概念

  MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。

  MVC又称为编程模式,是一种软件设计思想,将数据操作、页面显示、业务逻辑分为三个层级(模块),独立完成,相互调用

  • 模型层(Mode)
  • 视图(View)
  • 控制层(Controller)

1.2 MVC模式详解

MVC并不是Java独有的,现在几乎所有的B/S的结构都采用了MVC模式

  • 视图View:视图是用户看到并与之交互的界面,比如html(静态资源),jsP(动态资源)等等
  • 控制器Controller:控制器即使控制请求的处理逻辑,对请求进行处理,负责流程跳转(转发和重定向)
  • 模型Model:对客观世界的一种代表和模拟(业务模拟、对象模拟)

在这里插入图片描述

  M 即model模型是指模型表示业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。

  V 即View视图是指用户看到并与之交互的界面。比如由html元素组成的网页界面,或者软件的客户端界面。MVC的好处之一在于它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,它只是作为一种输出数据并允许用户操作的方式。

  C 即controller控制器是指控制器接受用户的输入并调用模型和视图去完成用户的需求,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。

1.3 框架内容

  MVC指MVC模式的某种框架,它强制性地使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。最典型的MVC就是JSP + servlet + javabean的模式。

在这里插入图片描述

1.3.1 视图

  视图是用户看到并与之交互的界面。对老式的WEB应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Adobe Flash和像XHTML,XML/XSL,WML等一些标识语言和Web services.
MVC好处是它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。

1.3.2 模型

  模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用像EJBs和ColdFusion Components这样的构件对象来处理数据库,被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。

1.3.3 控制器

  控制器接受用户的输入并调用模型和视图去完成用户的需求,所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。

1.4 优缺点

1.4.1 优点

耦合性低
  视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。

重用性高
  MVC模式允许使用各种不同样式的视图来访问同一个服务器端的代码,因为多个视图能共享一个模型,它包括任何WEB(Http)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。

部署快,生命周期成本低
  MVC使开发和维护用户接口的技术含量降低。使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。

可维护性高
  分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。

1.4.2 缺点

完全理解MVC比较复杂。
  由于MVC模式提出的时间不长,加上同学们的实践经验不足,所以完全理解并掌握MVC不是一个很容易的过程。

调试困难。
  因为模型和视图要严格的分离,这样也给调试应用程序带来了一定的困难,每个构件在使用之前都需要经过彻底的测试

不适合小型,中等规模的应用程序
  在一个中小型的应用程序中,强制性的使用MVC进行开发,往往会花费大量时间,并且不能体现MVC的优势,同时会使开发变得繁琐。

增加系统结构和实现的复杂性
  对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。

视图与控制器间的过于紧密的连接并且降低了视图对模型数据的访问
  视图与控制器是相互分离,但却是联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。

  依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。

1.5 MVC在框架中应用

1.5.1 Struts框架

  Struts是Apache软件基金下Jakarta项目的一部分。Struts框架的主要架构设计和开发者是Craig R.McClanahan。Struts 是JAVA WEB MVC框架中不争的王者。经过长达九年的发展,Struts已经逐渐成长为一个稳定、成熟的框架,并且占有了MVC框架中最大的市场份额。但是Struts某些技术特性上已经落后于新兴的MVC框架。面对spring MVC、Webwork2这些设计更精密,扩展性更强的框架,Struts受到了前所未有的挑战。但站在产品开发的角度而言,Struts仍然是最稳妥的选择。

  Struts有一组相互协作的类(组件)、Servlet以及jsp tag lib组成。基于struts构架的web应用程序基本上符合JSP Model2的设计标准,可以说是MVC设计模式的一种变化类型。根据上面对framework的描述,很容易理解为什么说Struts是一个web framework,而不仅仅是一些标记库的组合。但 Struts 也包含了丰富的标记库和独立于该框架工作的实用程序类。Struts有其自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View)。在模型层,Struts可以很容易的与数据访问技术相结合,包括EJB,JDBC和Object Relation Bridge。在视图层,Struts能够与JSP, Velocity Templates,XSL等等这些表示层组件相结合。

1.5.2 Spring框架

  Spring实际上是Expert One-on-One J2EE Design and Development 一书中所阐述的设计思想的具体实现。在One-on-One 一书中,Rod Johnson倡导J2EE实用主义的设计思想,并随书提供了一个初步的开发框架实现(interface21 开发包)。而Spring 正是这一思想的更全面和具体的体现。Rod Johnson 在interface21 开发包的基础之上,进行了进一步的改造和扩充,使其发展为一个更加开放、清晰、全面、高效的开发框架。

  Spring是一个开源框架,由Rod Johnson创建并且在他的著作《J2EE设计开发编程指南》里进行了描述。它是为了解决企业应用开发的复杂性而创建的。Spring使使用基本的JavaBeans来完成以前只可能由EJB完成的事情变得可能了。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
简单来说,Spring是一个轻量的控制反转和面向切面的容器框架。当然,这个描述有点过于简单。但它的确概括出了Spring是做什么的。

1.5.3 ZF框架

  Zend Framework(简写ZF)是由 Zend 公司支持开发的完全基于 PHP5 的开源php开发框架,可用于开发 Web 程序和服务,ZF采用 MVC(Model–View-Controller) 架构模式来分离应用程序中不同的部分方便程序的开发和维护。

1.5.4 .net框架

  .NET MVC是微软官方提供的以MVC模式为基础的.NET Web应用程序(Web Application)框架,它由Castle的MonoRail而来(Castle的MonoRail是由java而来),目前最新版本是.N 4.5。

1.6 三层架构与MVC

1.6.1 三层架构

  View层(表示|页面层)、Service层(业务逻辑层)、DAO层(数据访问层)

在这里插入图片描述

1.6.2 MVC与三层架构的区别

  • MVC强调的是视图和业务代码的分离。严格的说MVC其实关注的是Web层。View就是单独的页面,如JSP、HTML等,不负责业务处理,只负责数据的展示。而数据封装到Model里,有Controller负责在V和M之间传递。MVC强调业务和视图分离。
  • 三层架构是“数据访问层”、“业务逻辑层”、“表示层”,指的是代码之间的解耦、方便维护和复用。

1.7 框架和设计模式的区别

MVC是一种设计模式。

  框架、设计模式这两个概念总容易被混淆,其实它们之间还是有区别的。框架通常是代码重用,而设计模式是设计重用,架构则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。在软件生产中有三种级别的重用:内部重用,即在同一应用中能公共使用的抽象块;代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用;应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性。

  框架与设计模式虽然相似,但却有着根本的不同。设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示;设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以说,框架是软件,而设计模式是软件的知识。

框架模式有哪些?
  MVC、MTV、MVP、CBD、ORM等等;

框架有哪些?
  c++语言的Qt、MFC、gtk,Java语言的ssh 、SSI,php语言的 smarty(MVC模式),python语言的Django(MTV模式)等等

设计模式有哪些?
  工厂模式、适配器模式、策略模式等等

  简而言之:框架是大智慧,用来对软件设计进行分工;设计模式是小技巧,对具体问题提出解决方案,以提高代码复用率,降低耦合度。


  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

在这里插入图片描述

来源地址:https://blog.csdn.net/hh867308122/article/details/128633099

--结束END--

本文标题: MVC框架知识详解

本文链接: https://lsjlt.com/news/410971.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MVC框架知识详解
    ✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 Ὁ...
    99+
    2023-09-17
    mvc java servlet
  • 详解Pytest框架的基础知识和应用
    Pytest框架的基本概念和用法详解 一、引言 随着Python的流行和多种测试框架的涌现,软件测试已经成为开发过程中不可或缺的一部分。Pytest是Python中一款简单而功能强大的测试框架,旨在提供更简洁、易于使用和可扩展的...
    99+
    2024-01-13
    - 用法: 安装 配置和基本用法
  • python框架flask知识总结
    目录一、Flask蓝图目录二、Flask-SQLAlchemy2.1 加入Flask-SQLAlchemy第三方组件2.2 在app目录下建立models.py(ORM模型文件)2.3 登录视图函数2.4 登陆页面三...
    99+
    2022-06-02
    python flask python框架
  • vue.js框架的基础知识
    今天就跟大家聊聊有关vue.js框架的基础知识,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一.Vue基本介绍Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,V...
    99+
    2023-05-31
    vue框架 vue.js ue
  • 详解CocosCreator MVC架构
    概述 这一篇将介绍在游戏客户端常用的架构MVC架构。一个游戏的MVC如下划分: M:1)单例全局的数据中心World,所有游戏模块的数据在World中有入口,2)各个模块自己的数据结...
    99+
    2024-04-02
  • Java Dubbo框架知识点梳理
    1、Dubbo是什么 Dubbo 是一个分布式、高性能、透明化的 RPC 服务框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和 Spring 框架无缝集成。 RPC 指的...
    99+
    2024-04-02
  • ssm框架---MyBatis基础知识(一)
    MyBatis特性         1)MyBatis是支持定制化SQL、存储过程以及高级映射的优秀持久层框架         2)MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集         3)MyBatis可...
    99+
    2023-09-04
    mybatis java mysql
  • 知识宝库:Java Hibernate 框架知识点的全面梳理
    1. 实体类 实体类是Hibernate中最重要的概念之一,它表示数据库中的一张表。实体类中的属性对应于表中的列,实体类中的方法对应于表中的操作。 @Entity public class User { @Id @Gen...
    99+
    2024-02-14
    Java Hibernate 框架, 实体类, 数据访问对象, 会话工厂, 映射文件, 级联, 懒加载, 缓存
  • Spring及相关框架知识小汇
      一 Spring相关知识介绍   简单点说,Spring是一个分层的JavaSE/EE 一站式轻量级的开源框架。Spring致力于提供一种方法来管理你的业务对象。Sprin...
    99+
    2024-04-02
  • Appium框架的知识点有哪些
    本篇内容主要讲解“Appium框架的知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Appium框架的知识点有哪些”吧!测试对象Appium是一个开源工具,用于自动化iOS、Andro...
    99+
    2023-06-05
  • ASP.NET MVC框架简介
    一、MVC模式 概述 1、MVC是一种流行的Web应用架构技术,他把Web应用划分成Model(模型)、Controller(控制器)和View(视图)三部分。 2、优点:可测试、可...
    99+
    2024-04-02
  • JavaScript MVC 架构的学习资源:打开知识宝库
    深入 MVC 架构 MVC(模型-视图-控制器)架构是一种软件设计模式,它将应用程序分解为三个主要组件:模型、视图和控制器。这种分离的架构允许开发人员独立管理应用程序的不同方面,从而提高代码的可维护性和可重用性。 JavaScript ...
    99+
    2024-03-02
    JavaScript、MVC、React、Angular、Vue.js
  • 了解Java和Linux接口框架的必备知识。
    了解Java和Linux接口框架的必备知识 Java和Linux都是当今应用最广泛的技术,它们的组合也是非常常见的。Java在企业级应用中的应用非常广泛,而Linux则是最受欢迎的服务器操作系统之一。在Java和Linux组合使用时,接口框...
    99+
    2023-07-04
    linux 接口 框架
  • Spring JDBC框架的知识点有哪些
    这篇文章主要介绍“Spring JDBC框架的知识点有哪些”,在日常操作中,相信很多人在Spring JDBC框架的知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Spring&...
    99+
    2023-06-22
  • Python的Scrapy框架知识点有哪些
    这篇文章主要讲解了“Python的Scrapy框架知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python的Scrapy框架知识点有哪些”吧!一.为什么使用Scrapy框架Sc...
    99+
    2023-06-22
  • PHP函数的MVC框架
    随着Web开发的快速发展,MVC模式成为了WEB开发中重要的一部分。而PHP作为一种非常流行的Web开发语言,因此,学习PHP的MVC框架,成为了重要的一步。那么,本文就从以下三个方面,来深入探究PHP函数的MVC框架。一、MVC架构模式M...
    99+
    2023-05-19
    MVC框架 PHP函数 框架设计模式
  • ASP MVC核心概念解析,助你轻松理解MVC框架
    ASP MVC是一种基于MVC(Model-View-Controller)设计模式的Web应用程序开发框架。MVC设计模式将应用程序逻辑分为三层:模型(Model)、视图(View)和控制器(Controller)。 模型(Model...
    99+
    2024-02-24
    ASP MVC Model-View-Controller MVC核心概念 控制器 视图 模型
  • 庖丁解牛,剖析 Java Hibernate 框架的知识体系
    文章 一、Hibernate 框架概述 Hibernate 框架是一个用于 Java 开发的持久层框架,它可以将 Java 对象映射到关系数据库表,从而简化数据库操作。Hibernate 使用了面向对象的设计思想,将数据库表中的数据映射为...
    99+
    2024-02-14
    文章 Hibernate 对象关系映射 数据库操作 Java
  • Android 基础知识4-3.2 EditText(输入框)详解
    一、EditText(输入框)介绍         EditText在开发中也是经常使用的控件,比如,要实现一个登录页面,需要用户输入账号、密码等信息,然后我们或得用户输入的内容,把它交给服务器来判断。因此,这一节我们需要学习如何在布局文件...
    99+
    2023-09-29
    android android studio 学习
  • javascript知识点详解
    目录一.JavaScript基本介绍二、Javascript基础语法三、JavaScript事件例子2:当点击div标签时,做一件事,如点击后弹出对话框。——用id类例子3:添加标签...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作