什么是MVC
* M是Model,表示模型,程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计 (可实现具体的功能)。
* V是View,表示视图,界面设计人员进行图形界面设计。
* C是Controller,表示控制器,负责转发请求,对请求进行处理。
---------------------------------------------------------------------------
MVC的分层
- 模型--"数据模型"用于封装与应用程序的业务逻辑相关的数据及对数据的处理方法。"模型"有对数据直接访问的权力,例如对数据库的访问。"模型"不依赖"视图"和"控制器",也就是说,模型不关心它是否被如何显示或是如何被操作。但是模型中数据的变化一般会通过一种新机制被公布。为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可了解在数据模型上发生的改变。
- 视图--视图层能够实现数据有目的的显示(理论上,这是必需的)。在视图中一般没有程序上的逻辑。为了实现视图上的刷新功能,视图需要访问它监视的数据模型,因此应该事先在被它监视的数据那里注册。
- 控制器--控制器起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。"事件"包括用户的行为和数据模型上的改变。
-----------------------------------------------------------------------------
如何使用MVC
*采用MVC模式,所有问题的考虑方式基本完全相同,分3步。
①任何一个功能都是先从用户的角度考虑,考虑假设这个功能写完了,用户如何使用它。通常需要考虑两个方面,用户如何提交请求,系统如何向用户展示结果。可理解为通常意义上的输入和输出。输入和输出主要使用JSP页面来完成,可根据输入输出功能所涉及的元素设计JSP页面。也是就是MVC模式中的V部分的设计。
②考虑功能如何实现,所有的功能最后都是通过方法来实现。考虑两个方面:首先考虑这个方法应该属于已存在的某个模型的方法,还是不属于任何已经存在的模型,对于前者只需要在原有模型中增加方法即可,对于后者需要创建新模型;然后考虑这个方法的定义,包括方法的名字、参数、返回值、异常和执行过程。这个过程属于MVC模式中M部分的设计。
③考虑输入界面、功能和输出界面间如何关联。需要编写控制器,也就是MVC模式中C部分的设计。控制器的设计需要考虑如下几方面信息:
*需要从输入界面获取哪些信息,也就是视图层向控制层传递的信息;
*需要调用JavaBean的哪个方法,需要传递什么信息,属于控制层向模型层传递的信息;
*是否需要把模型执行的结果传递给显示界面,包含模型层向控制层传递信息和从控制层向视图层传递信息两个方面;
*根据模型的执行结果选择界面对用户进行响应。
-----------------------------------------------------------------------------
MVC模式中值的传递
传值包括两个方面:
*视图层和控制层之间值的传递
*从视图层到控制层
@ 通过表单
@也可采用在请求字符串之后使用问号加参数的方式(如:http://127.0.0.1:8080/bookstore/login?userid=zhuansan&Userpass=lisi)
@控制层通过getParameter和getParameterValue获取。
*从控制层到视图层
@控制层把信息保存到request中,setAttribute方法
@视图层使用表达式语言获取控制层保存的信息
*控制层和模型层之间值的传递
*从控制层向模型层传递信息,通常采用如下3种方式之一:
@在调用构造方法的时候传递;
@调用专门的初始化方法赋值或者通过调用setter方法赋值;
@通过业务方法的参数传递。
*从模型层到控制层传递信息,通常都是通过方法的返回值
分享到:
相关推荐
本书应用“项目驱动”最新教学模式,通过完整的项目案例系统地介绍了使用ASP.NET进行Web应用设计与开发的方法和技术。全书论述了ASP.NET开发概述、C#及ADO.NET背景知识、ASP.NET Web窗体的基本控件、数据控件和数据...
本书应用“项目驱动”最新教学模式,通过完整的项目案例系统地介绍了使用ASP.NET进行Web应用设计与开发的方法和技术。全书论述了ASP.NET开发概述、C#及ADO.NET背景知识、ASP.NET Web窗体的基本控件、数据控件和数据...
MVC 设计模式: 介绍 MVC 设计模式的概念、原理和基本组成部分,包括模型、视图和控制器。 PHP 简介: 提供 PHP 编程语言的基础知识和语法,以及如何在 PHP 中实现 MVC 设计模式。 框架介绍: 介绍流行的 PHP 框架...
本文通过三个部分来介绍JSP...第三部分就是过滤器的设计模式,包括过滤器和MVC设计模式. 目录 [隐藏] •1 Servlet知识及常见错误和规律 •2 XML配置 •3 会话跟踪技术总结 •4 构建实体Bean的原则 •5 MVC实现数据封装
详细描述:内容简介本书采用循... 试、部署和持续集成第三部分 SPL(标准PHP库) 第9章 SPL简介 第10章 SPL迭代器 第11章 SPL文件和目录处理 第12章 SPL数组重载 第13章 SPL异常第四部分 MVC模式 等 。。
第三部分 谁的地盘谁做主—模式PK篇 第30章 创建类模式大PK 30.1 工厂方法模式VS建造者模式 30.1.1 按工厂方法建造超人 30.1.2 按建造者模式建造超人 30.1.3 最佳实践 30.2 抽象工厂模式VS建造者模式 30.2.1 按抽象...
它包含了从基础到高级的完整知识体系,以及实际项目操作的全部流程。具体内容包括: 项目背景与目标:详细介绍了“系统管理”项目的起源、目的和核心功能。 技术栈概览:涵盖了Spring、SpringMVC、MyBatis等主流...
反射API 第8章 测试、部署和持续集成 第三部分 SPL(标准PHP库) 第9章 SPL简介 第10章 SPL迭代器 第11章 SPL文件和目录处理 第12章 SPL数组重载 第13章 SPL异常 第四部分 MVC模式 第14章 MVC架构 第15章 ...
测试、部署和持续集成 第三部分 SPL(标准PHP库) 第9章 SPL简介 第10章 SPL迭代器 第11章 SPL文件和目录处理 第12章 SPL数组重载 第13章 SPL异常 第四部分 MVC模式 第14章 MVC架构 第15章 Zend框架简介 第16章 Zend...
然后介绍了静态方法、单例模式、工厂模式和PHP 6 的新特性等内容, 接着介绍了测试和文档方面的内容,还介绍了标准PHP 库SPL 方面的知识以及PHP 开发人员最有可能用到的MVC 模式,最后介绍了Ajax 、JSON 、SOAP Web ...
它包含了从基础到高级的完整知识体系,以及实际项目操作的全部流程。具体内容包括: 项目背景与目标:详细介绍了“系统管理”项目的起源、目的和核心功能。 技术栈概览:涵盖了Spring、SpringMVC、MyBatis等主流...
一种软件架构模式,把软件系统分为三个基本部分模型(Model),视图(View),控制器(Controller) 用户通过 使用 控制器来 操作 模型 ,模型负责 更新 视图中的内容,用户通过 检视 视图来发现这种改变 MVC并非一...
11.1 Spring MVC概述 Spring MVC是Spring提供的一个实现了Web MVC设计模式的轻量级Web框架。它与Struts2框架一样,都属于MVC框架,但其使用和性能等方面比Struts2更加优异。 11.1 Spring MVC概述 是Spring框架的一...
介绍使用依赖注入(DI)模式创建MVC3应用程序的基本信息和步骤。
适合学习/练手、毕业设计、课程设计、期末/期中/大作业、工程实训、相关项目/竞赛学习等。 项目具有较高的学习借鉴价值,也可直接拿来修改复现。... 部分字体以及插图等来自网络,若是侵权请联系删除。
第一部分 设计模式初体验第1章 你好,设计模式1.1 这是一本什么书1.2 开始前的准备1.3 预备知识1.4 似曾相识的设计1.5 设计模式的起源——模型、视图和控制器1.5.1 在模型对象中封装数据和基本行为1.5.2 使用视图...
第12章介绍如何将两个以上的设计模式结合起来成为新的设计模式(例如著名的MVC模式),作者称其为复合设计模式(这是作者自创的名称,并非四人组的标准名词),第13章介绍如何进一步学习设计模式,如何发觉新的设计...
它的整体框架分为二个部分,第一部分为angular基础知识介绍,该部分为9个章节,分别为angular简介、表达式与模板、数据绑定与作用域、依赖注入、MVC模式、angular的服务、与服务端交互、angular的指令、使用$...
《Yii框架深度剖析》配套代码 本书不是简单地介绍如何使用 Yii 框架,而是站在框架设计的高度,从源代码级别深 度剖析。... 充分了解了这部分知识后,读者对 Yii 框架也有了初步认识,然后正式进入 Yii 框架的学习。
要顺利的阅读这篇文章,希望读者能对“面向对象的程序设计思想”有一定深度的认识,最好能懂一些“设计模式”的知识。如果你并不了解前面这些,那么这篇文章可能并不适合你现在阅读。不过,无论这篇文章面对的读者是...