1.MVC的概念
1.1什么是MVC?
MVC是一种架构型模式,它本身不引入新的功能,只是指导我们把web应用结构做的更加合理,实现逻辑与页面相分离。
(1)视图:我们能直观的看到的web界面。
(2)控制器:向系统发出指令的工具和帮手。
(3)模型:模型的工作是按要求从数据库取出数据。
1.2MVC解析
在MVC模式中,应用程序被划分成了模型(Model)、视图(View)和控制器(Controller)三个部分。
(1)模型部分包含了应用程序的业务逻辑和业务数据;
(2)视图部分封装了应用程序的输出形式,也就是通常所说的页面或者是界面;
(3)控制器部分负责协调模型和视图,根据用户请求来选择要调用哪个模型来处理业务,以及最终由哪个视图为用户做出应答。
1.3MVC包含三个部分和功能
(1)Model
(I)封装应用状态 <-------封装数据(vo)
(II)响应状态查询 <--------获取数据(vo)
(III)暴露应用的功能 <---------逻辑层API
(2)Controller
(I)接收并验证HTTP请求的数据 <----收集数据,封装数据
(II)将用户数据与模型的更新相映射<-----调用逻辑层API
(III)选择用于响应的视图 <-----根据返回值选择下一个页面
(3)View
(I)产生HTML响应 <------展示数据
(II)请求模型的更新 <------触发事件
(III)提供HTML form用于用户请求 <-----人际交互
MVC中的模型和视图是分离的,解耦的,同一个模型可以对应多种不同的视图。
1.4 MVC组件关系图
2.相关理论知识
2.1 观察者模式初步
(1)Java中的Swing组件,是MVC模式最典型的体现,在Java中跟MAC模式相关的一种常见实现方式,就是采用观察者模式。
(II)观察者模式(也称发布-订阅模式)的定义:
定义对象间的一种一对多的依赖关系;当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动跟新。
2.2入口程序
在网上经常被称为单一入口机制,单一入口指在一个web应用程序中,所有的请求都是指向一个脚本文件,例如我们经常看到某一个网站所有的页面都是index.php?xxxx这样的形式。所有对使用程序的访问都是必须通过这个入口。
3MVC理论深层次解释
3.1改进版MVC组件关系图
在实际开发Web应用的时候,大多数情况下是不会按照标准的 MVC去做的,通常我们都会把逻辑部分移动到逻辑层去做,那么Model就退变为只用来封装数据,也就是我们常写的VO;此时view一般不直接和逻辑层 去交互,所有跟逻辑层的交互都由控制器来做,view只和控制器交互。如下图所示:
3.2MVC工作流初步认识
(1)第一步:浏览者->调用控制器,对他发出指令。
(2)第二步:控制器->按指令选取一个合适的模型
(3)第三步:模型->按控制器指令取相应数据
(4)第四步:控制器->按指令选取相应视图
(5)第五步:视图->把第三部取到的数据按用户想要的样子显式出来。
3.3MVC作用
(1)控制器的作用是调用模型,并调用视图。将模型产生的数据传递给视图,并让相关视图去显示。
(2)模型的作用是获取数据并处理返回数据。
(3)视图的作用是将取得的数据进行组织、美化等,并最终向用户终端输出。