MVC设计模式
本章将详细介绍什么是MVC设计模式。还将介绍MVC设计模式中的几个重要部分,并介绍MVC在Java Web开发中的使用。
通过本章的学习,读者应该能够完成如下几个目标。
了解什么是MVC设计模式
了解Model 1和Model 2的区别以及优缺点
熟练掌握如何定义视图部分
熟练掌握如何定义模型部分
熟练掌握如何定义控制器部分
1 MVC简介
MVC设计模式最先是由Trygve Reenskaug提出的,并最先成功的应用在SmallTalk-80环境中,使许多交互和界面系统的构成基础。Microsoft的MFC基础类也遵循了MVC的思想。
MVC把交互系统的组成分解成模型、视图、控制器三种部件。
(1)模型部分,它是软件所处理问题逻辑在独立于外在显示内容和形式情况下的内在抽象,封装了问题的核心数据、逻辑和功能的计算关系,它独立于具体的界面表达和I/O操作。
(2)视图部分,它是表示模型数据及逻辑关系和状态的信息及特定形式展示给用户。它从模型获得显示信息,对于相同的信息可以有多个不同的显示形式或视图。
(3)控制器部分,它是用来处理用户与软件的交互操作的,其职责是控制提供模型中任何变化的传播,确保用户界面于模型间的对应联系;它接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制,是使模型和视图协调工作的部件。通常一个视图具有一个控制器。
模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。
MVC设计模式被广泛的用到了许多的程序设计中,本章主要来介绍Java Web开发中使用到的MVC设计模式。
2 Model 1和Model 2
首先来看什么是Model 1模式。以前面编写的那个登录项目为例,那就是典型的使用Model 1模式开发的,整个Web项目都是由JSP页面构成。其中登录判断页LoginConf.jsp既要接受客户端的请求,还必须对其用户信息判断进行跳转。JSP页面既要负责显示还要负责控制,将控制逻辑和表现逻辑混在一起了。
使用Model 1模式开发代码重用性非常低,对于功能相似的代码只能选择拷贝的方式,而不是直接调用。这样使得整个JSP页面充斥着功能类似的代码。
使用Model 1模式开发程序扩展性也非常差,如果以后想要给程序扩展功能那是非常困难的。假如在一个JSP页面添加了某一功能,那么可能其他的很多页面都需要变动,甚至于整个Web应用都要修改。这种牵一发而动全身的应用,会使得后期异常的困难和繁琐。
JSP页面中大量充斥着Java脚本,这使得后期的维护非常困难。有时候一个地方出现错误就要到处去找。还有代码重用性,经常就是在使用拷贝、粘贴,都成了一种习惯了。不过使用Model 1模式来开发比较简单和方便。
使用Model 1模式来开发确实简单,所以如果是小型的Web站点,后期的更新和维护工作不是很大,就可以采用Model 1模式来开发。
Model 2是基于MVC架构的设计模式。MVC包含三个基本部分,分别是Model(模型)、View(视图)、Controller(控制器)。JSP只用负责显示,而控制器则由Servlet充当,模型由JavaBean充当。
Model 1的程序流程比较容易理解。用户提交信息给JSP页面,JSP接受用户提交的值并通过JavaBean连接数据库并操作数据库,然后将结果返回给用户。
Model 2中就是将JSP的功能简化了,在Model 1中JSP负责的东西过多了。Model 2中使用Servlet来充当控制器,而JSP只是充当显示。至于为什么会这样设计是因为在JSP里面进行接受参数和判断还有跳转等功能会用到大量的Java脚本代码。过多的Java脚本代码使得页面维护起来非常困难,而Servlet本来就是一个Java文件,这样使用Servlet来接受参数和判断还有跳转等功能是非常合适的。可以把Servlet看成是一个大管家,它负责所有的业务逻辑并通过JavaBean来操作数据库以及决定显示页面。
3 使用MVC模式改进用户登录案例
如果要使用MVC设计模式,那么控制器要使用Servlet。具体的逻辑判断则交给业务逻辑组件来判断,而将业务逻辑组件判断的结果返回交给Servlet来判断并实现跳转。
用户登录页面
用户登录成功和失败页面
业务逻辑组件
Servlet控制器
分享到:
相关推荐
**MVC设计模式详解** MVC(Model-View-Controller)设计模式是一种广泛应用于软件开发,尤其是Web应用程序中的架构模式。它将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller),以此...
#### MVC设计模式简介 MVC设计模式是一种广泛应用于用户界面设计中的软件架构模式。该模式将程序分为三个核心部分:模型(Model)、视图(View)和控制器(Controller)。每个部分负责特定的任务,从而使得系统的...
Java 中 MVC 设计模式 MVC 设计模式是软件架构中的一种经典设计模式,广泛应用于 Java Web 开发中。MVC 模式将应用程序分为三个主要部分:Model(模型)、View(视图)和 Controller(控制器),每个部分都有其特定...
mvc设计模式详解 mvc设计模式是一种广泛流行的软件设计模式,早在70年代,IBM就推出了Sanfronscisico项目计划,其实就是mvc设计模式的研究。mvc模式在j2ee平台上非常流行,也是广大java开发者非常感兴趣的设计模型...
**MVC设计模式详解** **一、什么是MVC设计模式** MVC,即Model-View-Controller(模型-视图-控制器)设计模式,是一种在软件工程中广泛应用于构建用户界面的架构模式。它将应用程序的数据处理、业务逻辑与用户界面...
MVC设计模式讲解PPT材料,模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用。MVC是一种软件设计模式,不仅仅应用于WEB。在日常生活中处处可以找到类似于MVC的例子。在WEB...
总的来说,理解和掌握MVC设计模式对于任何Java Web开发者来说都是至关重要的,它能够帮助我们构建更加健壮、可维护的Web应用程序。通过学习“jsp的MVC设计模式”教程源码,你可以更深入地了解这一模式,并将其应用到...
**MVC设计模式详解** **一、MVC模式概述** MVC(Model-View-Controller)设计模式是一种软件设计架构模式,广泛应用于Web应用开发,主要用于分离应用程序的业务逻辑、用户界面和数据处理。该模式将应用程序分为三...
让你对MVC设计模式有一个更加深刻的认识,深入浅出的搞明白MVC
### MVC设计模式介绍与详细讲解 #### 一、MVC设计模式概述 MVC(Model-View-Controller)设计模式是一种广泛应用于软件工程中的架构模式,尤其在Web应用开发领域非常常见。它将应用程序分为三个核心组件:模型...
### MVC设计模式概念及优缺点 #### 一、MVC设计模式的概念 MVC(Model-View-Controller)设计模式是一种广泛应用于软件工程中的架构模式,尤其在Web开发领域非常流行。该模式的核心理念在于将应用程序划分为三个...
**MVC设计模式详解及其在Android中的应用** MVC(Model-View-Controller)设计模式是一种广泛用于软件工程,特别是Web应用程序开发的经典架构模式。它将应用程序的不同组件划分为三个主要部分,以实现职责分离,...
MVC设计模式云盘分享JAVA课程资源。MVC设计模式云盘分享
### MVC设计模式详解 #### 一、MVC模式的起源 MVC模式即“模型-视图-控制器”模式(Model-View-Controller),这一概念最早由Trygve Reenskaug于1978年提出[1]。该模式最初是在施乐帕罗奥多研究中心(Xerox PARC)为...
**mvc设计模式项目** 在软件开发领域,MVC(Model-View-Controller)设计模式是一种广泛应用的架构模式,尤其在Web应用开发中。这个模式将应用程序的组件分为三个主要部分:模型(Model)、视图(View)和控制器...
**MVC设计模式详解及其在Android应用中的实践** **一、MVC设计模式介绍** MVC(Model-View-Controller)是一种广泛应用于软件工程,尤其是Web应用开发中的设计模式。它将应用程序分为三个核心组件:模型(Model)...
**Java Web中的MVC设计模式** MVC(Model-View-Controller)设计模式是一种广泛应用于Web应用程序开发的架构模式,它的主要目标是将业务逻辑、数据处理和用户界面分离,从而提高代码的可维护性和可扩展性。在Java ...
**一、MVC设计模式简介** MVC设计模式是一种软件架构模式,将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。模型负责处理数据和业务逻辑,视图用于显示数据,而控制器则作为两者...
MVC设计模式学习总结.pdf