1、模型-视图- 控制器(MVC )是 80 年代 Smalltalk-80 出现的一种软件设计模式,现在已经被广泛的使用。1、模型(Model)模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑.2、视图( View)视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。 3、控制器( controller) 控制器工作就是根据用户的输入,控制用户界面数据显示和更新 model 对象状态。MVC 式的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性 早期的程序中,如果不注意对数功能和显示的解耦合,常常会导致程序的复杂及难
2、以维护。很多 VB,Delphi 等 RAD 程序都有这种问题。甚至现在的 C#,Java 有时候也会出现把业务逻辑写在显示模块中的现象 管 MVC 设计模式很早就提出,但在 Web 项目的开发中引入 MVC 却是步履维艰。主要原因:一是在早期的 Web 项目的开发中,程序语言和 HTML 的分离一直难以实现。CGI 程序以字符串输出的形式动态地生成 HTML 内容。后来随着脚本语言的出现,前面的方式又被倒了过来,改成将脚本语言书写的程序嵌入在 HTML 内容中。这两种方式有一个相同的不足之处即它们总是无法将程序语言和 HTML 分离。二是脚本语言的功能相对较弱,缺乏支持 MVC 设计模式的一
3、些必要的技术基础。直到基于 J2EE 的 JSP Model 2 问世时才得以改观。它用 JSP 技术实现视图的功能,用 Servlet 技术实现控制器的功能,用 JavaBean 技术实现模型的功能 JSP Model 1 与 JSP Model 2SUN 在 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 来处理逻辑