分类：电脑/网络-程序设计
问题：什么事MVC，MVC是怎么工作的？ 
什么事，MVC是怎么工作的？
回答：MVC(Model/View/Controller)模式是国外用得比较多的一种设计模式，好象最早是在Smaltalk中出现。MVC包括三类对象。Model是应用对象，View是它在屏幕上的表示，Controller定义用户界面对用户输入的响应方式。 模型-视图-控制器（MVC）是80年代Smalltalk-80出现的一种设计模式，现在已经被广泛的使用。 1、模型（Model） 模型是应用程序的主体部分。模型表示业务数据，或者业务逻辑. 2、视图（View） 视图是应用程序中用户界面相关的部分，是用户看到并与之交互的界面。 3、控制器（controller) 控制器工作就是根据用户的输入，控制用户界面数据显示和更新model对象状态。 MVC 式的出现不仅实现了功能模块和显示模块的分离，同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性 早期的程序中，如果不注意对数功能和显示的解耦合，常常会导致程序的复杂及难以维护。很多VB,Delphi等RAD程序都有这种问题。甚至现在的C#,Java有时候也会出现把业务逻辑写在显示模块中的现象 管MVC设计模式很早就提出，但在Web项目的开发中引入MVC却是步履维艰。主要原因：一是在早期的Web项目的开发中，程序语言和HTML的分离一直难以实现。CGI程序以字符串输出的形式动态地生成HTML内容。后来随着脚本语言的出现，前面的方式又被倒了过来，改成将脚本语言书写的程序嵌入在HTML内容中。这两种方式有一个相同的不足之处即它们总是无法将程序语言和HTML分离。二是脚本语言的功能相对较弱，缺乏支持MVC设计模式的一些必要的技术基础。直到基于J2EE的JSP Model 2问世时才得以改观。它用JSP技术实现视图的功能，用Servlet技术实现控制器的功能，用JavaBean技术实现模型的功能 JSP Model 1 与 JSP Model 2 SUN在JSP出现早期制定了两种规范，称为Model1和Model2。虽然Model2在一定程度上实现了MVC，但是它的应用用并不尽如人意 JSP Model 1 JSP Model 2 model2 容易使系统出现多个Controller，并且对页面导航的处理比较复杂 有些人觉得model2仍不够好，于是Craig R. McClanahan 2000年5月提交了一个WEB framework给Java Community.这就是后来的Struts. 2001年7月，Struts1.0，正式发布。该项目也成为了Apache Jakarta的子项目之一 Struts 质上就是在Model2的基础上实现的一个MVC架构。它只有一个中心控制器，他采用XML定制转向的URL。采用Action来处理逻辑