模型-视图-控制器(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来处理逻辑
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器