几乎所有基于Java的web app都需要Model 2( part I)

原创 2004年02月09日 00:13:00

                                    几乎所有基于Java的web app都需要Model 2

       在Web应用方面,Java开发人员通常使用两种设计模式,简单称为Model 1和Model2. 两种模式现在都在应用,但在开发大中型的应用程序(译注:以后提及应用程序均代表Web应用程序)或复杂性将来可能增加的应用程序时,应当首推Model 2.我将谈论一下Model 2架构和实现Model 2架构的MVC(Model-View-Controller)设计模式.我还要解释一下为什么Model 2是首推模式,并提供一个实现这个模式的简单的应用程序.

       你使用的Model 1,它是以页面为中心的.适用于完成简单的应用程序或者如果你想快速的完成一些东西的话.实现这个模式的应用程序有一系列的Jsp页面,在这些页面里用户程序运行从一个页面到另一个页面.因为它的简单容易,这是你初学Jsp时经常用到的一个模式.Model 1应用的主要问题是难以维护,并且毫无灵活性可言,另外,由于开发人员已经同时被卷入到了页面开发和商业逻辑的编码中,这个架构模式在页面设计人员和web开发人员之间很难实现劳动分工.

       Model 2 是大型应用程序首推的架构.它是基于Model-view-Controller(MVC)模式,此模式是Smalltalk-80 用户界面的主要理念,那时候"pattern"这个术语还没有被使用,它被称为 MVC 范式。

       MVC模式由三个主要的分类组成:模型(Model),视图(view),控制器(Controller).模型代表应用程序对象或数据,视图是模型的展现,控制器(controller)关注于用户接口与用户输入信息的交互操作。在MVC模式之前,这三部分存在于一个类中,使应用程序失去灵活性和重用性。

       MVC模式实现了 视图和模型之间的松藕合。模型简单的封装了应用程序对象---它并不知道关于视图的任何事情。另一方面,视图是模型的可视化表述并且依赖于模型.视图含有模型实例的引用,控制器同样也是如此。

       为了更好的理解MVC模式,让我们考虑一下微软的Excel电子表格,在它里面,数据可以通过使用饼图或直线图表的形式表现。 这里的饼图和直线图表就是视图,它们可视化了同样一批数据的。控制器通过用户的输入信息给模型和视图发送命令。

       不象视图和模型之间的关系,视图和控制器有更为密切的关系。一个视图通常作为一个引用传给控制器对象并且他能够访问控制器中的一些变量。     如果你想知道更多关于MVC这个模式的一些信息,请看Steve Burbeck, Ph.D.的
 "Applications Programming in Smalltalk-80: How to use Model-View-Controller (MVC)."

                                      Model2 架构图

                                                     Model 2 架 构 图

       现在,回到Model 2架构来,在MVC模式中,我们有一个Servlet来扮演控制器的角色(请看图 1).JSP页面通常被用来做为应用程序的视图,我们使用一个封装商业逻辑的JavaBean作为模型。



未完待续

  Translated by windowsDNA



 

几乎所有基于Java的web app都需要Model 2 (part II)

                                      几乎所有基于Java的web app都需要Model 2       当Web容器从客户端程序接收到一个请求时,控制流开始运...
  • windowsDNA
  • windowsDNA
  • 2004年02月09日 00:13
  • 1441

区块链理解

区块链的定义:区块链本质上是一个去中心化的分布式账本数据库。。其本身是一串使用密码学相关联所产生的数据块,每一个数据块中包含了多次比特币网络交易有效确认的信息。去中心化举例A君去淘宝买电脑 交易流程...
  • m0_37347492
  • m0_37347492
  • 2018年01月18日 13:49
  • 130

Java Web学习(20): Java开发中的Model1与Model2

对于Java的动态Web编程技术而言,则经历了所谓的Model1和Model2时代。        Model1模式        在Web早期的开发中,通常采用的都是Model1。Model1设...
  • erlian1992
  • erlian1992
  • 2016年07月24日 19:55
  • 2594

Java I/O工作机制

深入理解Java 字节I/O,字符I/O,字节流于字符流的区别,阻塞I/O的缺点,非阻塞I/O(NIO)工作机制...
  • sunxianghuang
  • sunxianghuang
  • 2016年08月19日 19:40
  • 2106

Web开发模式:Mode I与Mode II

1、Mode I     Mode I:在开发中将显示层、控制层、数据层的操作统一交给JSP或JavaBean来处理,处理情况分两种:一种是完全使用JSP,另一种是使用JSP+JavaBean的模式...
  • liushengmeng
  • liushengmeng
  • 2012年09月17日 23:48
  • 1998

开启 J2EE(七)— Model1、Model2和三层架构的演变

Model1和Model2是Javaweb开发的两种常见的模型,Model1是jsp+javabean的模式,Model2是jsp+servlet+javabean 的模式。下面就详细的认识认识。  ...
  • akkzhjj
  • akkzhjj
  • 2014年07月10日 21:00
  • 1976

Algorithm Part I:Queues,Stacks

1.stack的LinkList实现。 2.stack的数组实现 3.stack的可变数组实现 4.Queue的LinkList实现 5.Queue的可变数组实现思...
  • yao_wust
  • yao_wust
  • 2014年09月21日 22:01
  • 761

每天都吃包子

烦不烦呀。这样我怎么长身体呀。。。
  • u013163537
  • u013163537
  • 2014年01月02日 08:01
  • 527

判别训练的多尺度可变形部件模型 A Discriminatively Trained, Multiscale, Deformable Part Model

本文介绍了一种用于目标检测的判别训练的多尺度可变形部件模型。我们的系统在平均精度上达到了2006 PASCAL 人体检测竞赛中最优结果的两倍,同样比2007 PASCAL目标检测比赛中20个类别中的1...
  • masikkk
  • masikkk
  • 2013年12月24日 18:02
  • 15439

The entity type FooterLogo is not part of the model for the current context.zai

在  “UnionContext” 最下面添加  public DbSet FooterLogo { get; set; }
  • u014479921
  • u014479921
  • 2016年06月23日 18:28
  • 779
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:几乎所有基于Java的web app都需要Model 2( part I)
举报原因:
原因补充:

(最多只允许输入30个字)