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)视图的作用是将取得的数据进行组织、美化等,并最终向用户终端输出。

最新文章

  1. Web客户端数据存储学习笔记——Cookie
  2. C语言中用宏来作注释
  3. 5个让DBA爱上你的SQL技巧
  4. PYTHON---FILE IO
  5. 《University Calculus》-chaper8-无穷序列和无穷级数-泰勒定理的证明
  6. C#基础知识01(continue、break 和 return、ref 和 out)
  7. 【Nginx】epoll事件驱动模块
  8. SQL2005附加数据库时遇到的问题:用户组或角色在当前数据库已存在
  9. Codeforces758B
  10. Haproxy基于ACL做访问控制
  11. python函数式编程之装饰器(一)
  12. 从构建分布式秒杀系统聊聊Disruptor高性能队列
  13. NOIP2000提高组复赛C 单词接龙
  14. Golang 微框架 Gin 简介
  15. jenkins 构建nodejs-pipeline流水风格的任务
  16. Verilog手绘FVH信号
  17. python 模拟百度搜索
  18. TestNG 框架的运用
  19. odp.net连接方式,部署问题总结
  20. Linux学习笔记:scp远程拷贝文件

热门文章

  1. 重学ps_1
  2. Android中的适配方式
  3. 使用 Composer 为 ThinkPHP(3.2.3)框架添加和管理组件
  4. swift-重写方法和属性、禁止重写
  5. ESXi 5.5开启并配置SNMP
  6. Objc Block
  7. 网络服务器之HTTPS服务
  8. imx6 DDR_Stress_Test
  9. 任务9user表建表语句
  10. 中英文维基百科语料上的Word2Vec实验