小议MVC模式

简介:
MVC是一种设计模式,是Model-View-Controller的缩写。它把应用程序分为3个部分:
1.  模型(Model)
它代表了应用程序的核心功能,负责处理用户的数据,实现业务逻辑,为视图提供显示所用的数据,而且可以被多个视图所共用。
2.  视图(View)
它主要是指与用户交互的界面,它接收用户的输入,但并不包括任何实际的业务处理,它只是简单地将数据转交给控制器,同时,它负责展现模型传递过来的数据,当后台模型更新数据时,视图就会更新它的显示。
3.  控制器(Controller)
控制器负责接收用户的请求和数据,再由它来做出判断将请求和数据交由哪个模型来进行处理,最后调用视图来显示模型返回的数据。
6-25-1.JPG

视图接收来自用户的数据和请求,并将这些发给控制器,控制器接收到请求后,对请求进行判断,并选择合适的业务处理模块来完成用户的请求。当请求处理完成后,模型就通知控制器,并选择合适的视图来展示处理结果给用户。
MVC模式的好处:
(1)       多个视图可以共享一个后台模型,这就为在一个应用中为客户提供多种用户界面提供了便利。当需要修改界面时,由于表示和业务逻辑分开,因此不需要改动后台模型,而可以直接修改界面。
(2)       由于实现和界面独立,因此模型只需要提供接口提供给上层调用,从而实现信息封装和隐藏。当需要修改模型时,只要保证接口不变,原来的上层程序就可以不变。而由于模型是面向接口编程,因此可以使用不同的实现来替换模型。
控制器作为介于视图和模型间的控制组件,能够更好地维护程序流程,选择业务模型,选择用户视图,使程序的调用规则更加清晰。

Java Web的实现模型
1,  模型1:JSP+javaBean
 
6-25-3.JPG

这里,jsp充当控制器和视图的双重角色,javaBean则是控制器。Jsp直接调用后台模型来进行业务处理,同时,再由jsp返回处理结果到用户界面。优点是:模型简单,对于小型系统很实用。但缺点是:HTML标记和java代码混合,不利于维护,设计和程序没有分开,合作开发复杂。
2,模型2:JSP+Servlet+JavaBean

 6-25-4.JPG

不再用jsp做控制器了,而是使用Servlet作为控制器,jsp则单纯负责显示逻辑。客户向服务器发送请求时,Servlet接收请求,并根据自己的逻辑判断来调用相应的javaBean来处理用户的请求,而javaBean负责业务逻辑的处理和数据持久化等任务,等处理完成,javaBean返回结果,由Jsp将结果返回给客户浏览器。
   这种结果清晰地划分了表示,控制,模型3层,很好地实现了MVC的设计思想。

3。Struts模型(基于模型2)

6-25-6.JPG

   struts是著名的Apache开发的一套用于构建java Web应用程序的框架。它的目标是分离Web程序的表示层,控制层和后台功能层,也就是MVC模式的实现。但和模型不同的地方在于,Struts提供了它自己的控制器组件,并且后台可以和JDBC,EJB,或者和Hibernate技术集成,视图方面,Struts使用了Jsp技术,并还可以将标记库技术,Velocity模板,XSLT技术结合起来。Struts采用了ActionServlet和Action来代替模型中的Servlet来作为控制器。在Struts中,用户请求都由ActionServlet接收,然后根据用户请求的样式到struts-config.xml.中查找对应的子控制器,也就是对应的Action。由Action来执行具体的控制器功能,并且调用相应的后台模型来完成业务逻辑的处理。Action执行它的execute()方法,返回一个ActionForward对象给ActionServlet,由ActionServlet对这个对象进行分析,并根据struts-config.xml来转发请求到另一个Action或者Jsp页面。用户通过视图表单发送数据时使用了一个ActionForm,它的作用是将用户提交的数据打包成一个Bean对象。而对于模型部分, Struts没有过多的限制,一般采用EJB或Hiberater等来实现模型部分。

4,其他著名MVC框架
   WebWork等。。。。


本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2006/06/25/435269.html,如需转载请自行联系原作者
目录
相关文章
|
4月前
|
设计模式 前端开发 JavaScript
浅谈MVC、MVP、MVVM框架模式
浅谈MVC、MVP、MVVM框架模式
32 0
|
4月前
|
XML 前端开发 测试技术
Android基础知识:解释Android的MVC和MVP模式。
Android基础知识:解释Android的MVC和MVP模式。
32 0
|
5月前
|
设计模式 前端开发 Java
Java设计模式【二十六】:MVC模式
Java设计模式【二十六】:MVC模式
35 0
|
7月前
|
SQL 前端开发 Java
JSP毕业设计选题系统统myeclipse开发sql数据库BS模式java编程mvc结构
JSP 毕业设计选题系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。
28 0
|
2月前
|
前端开发 数据安全/隐私保护
什么是mvvm,mvp、mvc和mvvm模式有什么区别?
什么是mvvm,mvp、mvc和mvvm模式有什么区别?
39 0
|
2天前
|
设计模式 前端开发 Java
19:Web开发模式与MVC设计模式-Java Web
19:Web开发模式与MVC设计模式-Java Web
11 4
|
2月前
|
JSON 前端开发 JavaScript
聊一聊MVC模式跟MVVM模式
聊一聊MVC模式跟MVVM模式
|
2月前
|
XML 前端开发 Java
MVC 模式及对象持久化
MVC 模式及对象持久化
28 7
|
3月前
|
存储 前端开发 JavaScript
什么是MVVM?MVC、MVP与MVVM模式的区别?
什么是MVVM?MVC、MVP与MVVM模式的区别?
|
4月前
|
存储 开发框架 前端开发
MVVM 模式与 MVC 模式:构建高效应用的选择
MVVM 模式与 MVC 模式:构建高效应用的选择
MVVM 模式与 MVC 模式:构建高效应用的选择