MVC是一种架构模式,程序分层,分工合作,各层既相互独立,有协同工作。

MVC:Model+View+Controller

  • Model层:业务数据的信息表示,关注支撑业务的信息构成,通常是多个业务实体的组合。
  • View是视图层:为用户提供界面UI,重点关注数据的呈现。
  • Controller:调用业务逻辑产生合适的数据(Model),同时传递数据给视图层用于呈现,有了视图,有了模型,他们之间的沟通需要控制器了,

MVC的本质:业务数据的抽取与业务数据的呈现相分离。

前端控制器。

Controller和视图起始并不耦合,他们之间没有任何联系,但是因为Controller需要根据页面的要求产生合适的数据,而页面呈现又不能脱离业务逻辑凭空展开,左移它们之间是既独立有协同的。

在Model层需要思考,去给用户展现什么,在View需要去思考,如何去将这些数据布局,以一种优美合理的方式展现给用户,而在Controller层需要调用哪些业务逻辑呈现给用户正确的数据逻辑,使得效率更高,性能更好。

1.首先用户请求通过http请求到达前端控制器(Front controller)也叫做调度器(Dispatcher),前端控制器了解这个请求应该被谁处理,传给具体的控制器(Controller),生成了业务数据,并将业务数据返回给了前端控制器,此时前端控制器将这些数据分发给视图模板(View template),由业务视图来呈现最终的用户页面,将呈现用户页面返回给前端控制器,前端控制器返回给浏览器端,此时用户即可看到所请求的页面。

Front Controller,负责分发调度(1)前端调度器将请求分发给控制器去生成业务数据;

        。(2)前端控制器将生成的业务数据分发给恰当的视图模板来生成最终的用户请求界面。

Controller控制器了解所用的业务细节,负责业务数据的抽取

view template了解所有前端的特性,负责页面的呈现,

最新文章

  1. 并发包的线程池第二篇--Executors的构造
  2. (UWP开发)更为合理的一种ListView下拉刷新(PullToRefresh)实现方法
  3. Windows - 杀死占用某个端口号的进程
  4. javaScript AJAX
  5. 解决:j-link V8下载器灯不亮,无法正常烧写固件
  6. ARC机制
  7. maven install与maven package 的区别
  8. JAVA:类的三大特征,抽象类,接口,final关键字<3>
  9. C++如何将一个整数输出为小数
  10. Nexus入门指南(图文)
  11. Java 8新特性探究(九)跟OOM:Permgen说再见吧
  12. Quartz2D 之 简单介绍
  13. Spring第二篇【Core模块之快速入门、bean创建细节、创建对象】
  14. Python hashlib 无法打印
  15. 在类文件中创建 写入Json文件
  16. SSL里的certificate格式资料小结
  17. 第五节《Git基本操作》
  18. Android 建立手机与手表数据同步机制总结
  19. Jquery Ajax 和json用法
  20. 04: Mysql性能优化

热门文章

  1. 用webpack2.0构建vue2.0单文件组件超级详细精简实例
  2. SCOI2016幸运数字(树剖/倍增/点分治+线性基)
  3. 06 Zabbix4.0系统CISCO交换机告警模板规划信息(基础)
  4. cf1088E Ehab and a component choosing problem (树形dp)
  5. UVA 11149-Power of Matrix(等比矩阵求和)
  6. [AH2017/HNOI2017]礼物(FFT)
  7. 浅析 @PathVariable 和 @RequestParam(转发,非原创)
  8. poj3889 fractal streets
  9. 中性SNP的突变年龄评估(estimate the average age of a neutral two-allele polymorphism)
  10. 关于code::blocks的编译速度问题