`
burnquist
  • 浏览: 69150 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类

Model 1和Model 2

    博客分类:
  • WEB
阅读更多
Model 1和Model 2

对于Java阵营的动态Web编程技术而言,则经历了所谓的Model 1和Model 2时代。


图1.3  动态Web编程技术的发展历史
所谓Model 1就是JSP大行其道的时代,在Model 1模式下,整个Web应用几乎全部由JSP页面组成,JSP页面接收处理客户端请求,对请求处理后直接做出响应。用少量的JavaBean来处理数据库连接、数据库访问等操作。

Model 1模式的实现比较简单,适用于快速开发小规模项目。但从工程化的角度看,它的局限性非常明显:JSP页面身兼View和Controller两种角色,将控制逻辑和表现逻辑混杂在一起,从而导致代码的重用性非常低,增加了应用的扩展性和维护的难度。
早期有大量ASP和JSP技术开发出来的Web应用,这些Web应用都采用了Model 1架构。
Model 2已经是基于MVC架构的设计模式。在Model 2架构中,Servlet作为前端控制器,负责接收客户端发送的请求,在Servlet中只包含控制逻辑和简单的前端处理;然后,调用后端JavaBean来完成实际的逻辑处理;最后,转发到相应的JSP页面处理显示逻辑。其具体的实现方式如图1.5所示。

图1.4显示了Model 1的程序流程。




图1.5显示了Model 2的程序流程。
正如图1.5中看到的,Model 2下JSP不再承担控制器的责任,它仅仅是表现层角色,仅仅用于将结果呈现给用户,JSP页面的请求与Servlet(控制器)交互,而Servlet负责与后台的JavaBean通信。在Model 2模式下,模型(Model)由JavaBean 充当,视图(View)由JSP页面充当,而控制器(Controller)则由Servlet充当。
由于引入了MVC模式,使Model 2具有组件化的特点,更适用于大规模应用的开发,但也增加了应用开发的复杂程度。原本需要一个简单的JSP页面就能实现的应用,在Model 2中被分解成多个协同工作的部分,需花更多时间才能真正掌握其设计和实现过程。
Model 2已经是MVC设计思想下的架构,下面简要介绍MVC设计思想的优势。

注意:  对于非常小型的Web站点,如果后期的更新、维护工作不是特别大,可以使用Model 1的模式来开发应用,而不是使用Model 2的模式。虽然Model 2提供了更好的可扩展性及可维护性,但增加了前期开发成本。从某种程度上讲,Model 2为了降低系统后期维护的复杂度,却导致前期开发的更高复杂度。

转载自:http://book.51cto.com/art/200708/53966.htm
分享到:
评论

相关推荐

    JSP的两种设计模式 Model1和Model2

    JSP的两种设计模式,即Model1和Model2,是Web开发中常见的架构模式,主要用于分离展示层、控制层和业务逻辑层,提高代码的可维护性和可扩展性。 **JSP Model1模式**是最基础的JSP开发模式,主要特点是将业务逻辑、...

    Model1和Model开发模式

    在B/S(Browser/Server,浏览器/服务器)架构的开发中,存在两种主要的开发模式:Model1和Model2。这两种模式都是为了更好地管理和组织Web应用程序的结构,提高可维护性和扩展性。以下是对这两种模式的详细解释: *...

    从Servlet到JSP,从Model1到Model2.rar_java_jsp

    Model1和Model2则是两种不同的设计模式,用于组织和管理应用程序的业务逻辑、视图和控制层。本篇文章将深入探讨这些概念,并提供一个从基础到进阶的学习路径。 首先,Servlet是一种Java类,它是Java平台上的服务器...

    DDR2 model and testbench

    DDR2 model and testbench, Micron DDR2 die; File Descriptions: ------------------ ddr2.v -ddr2 model ddr2_mcp.v -structural wrapper for ddr2 - multi-chip package model ddr2_module.v -structural ...

    填坑记录之Vue中v-model与:model区别

    通过控制台得知长度一直为1。原来是拿不到数据。 v-model通常用于input的双向数据绑定,它并不会向子组件传递数据。 :model是v-bind:model的缩写,是绑定自定义属性.它只是将父组件的数据传递给子组件,并没有实现父...

    WORKING MODEL 2D 2004 V7.0

    "WORKING MODEL 2D 2004 V7.0"是一款三维动态模拟软件,专为产品设计和工程领域中的原型验证而设计。这款工具允许用户在2D环境中创建和测试他们的设计理念,以评估其功能性和物理可行性,从而在实际制造前优化设计。...

    Model2模块实现用户注册登录.zip

    1. **模型层(Model)**:这是应用的核心部分,负责处理业务逻辑和数据操作。在这个用户注册登录的场景中,Model可能会包含User类,该类定义了用户的属性如用户名、密码等,并提供相应的操作方法,如注册、验证、登录...

    MVC Model2 模型

    MVC Model2 模型 调用过程 MVC Model2 模型 调用过程 MVC Model2 模型 调用过程

    JSONModel MVC demo

    在这个demo中,我们将探讨JSONModel如何与MVC架构相结合,以及它与另外两个流行的数据转换框架——MJExtension和MVVM(Model-View-ViewModel)的关系。 首先,我们来看看MVC模式。MVC是软件工程中广泛采用的一种...

    JSP model2(MVC)思想实现用户注册

    下面将详细阐述JSP Model2和MVC模式,以及如何用它们来实现用户注册功能。 **1. JSP Model2概述** JSP Model2是JavaServer Pages(JSP)技术的一种改进,它引入了Servlet作为控制器,JavaBean作为模型,而JSP则作为...

    Modeltest 使用说明

    1.下载 Modeltest 程序和 PAUP 软件 * 从作者的网站下载 Modeltest 程序 * 下载 PAUP 软件(需要 license) 2.准备序列 alignment 文件 * 使用 ClustalX 软件将序列 alignment 转换为 NEXUS 格式 * 在文本编辑器中...

    wiki.model wiki.model.trainables.syn1neg.npy wiki.model.wv.vecto

    标题中的"wiki.model"、"wiki.model.trainables.syn1neg.npy"和"wiki.model.wv.vectors.npy"分别指的是一个预训练的自然语言处理模型、该模型的特定训练参数以及词向量文件。这些文件是进行词性标注和计算词性相似度...

    Model View Presenter vs Model View Controller

    1. **Model**:同样负责业务逻辑和数据管理,与MVP中的Model角色相同。 2. **View**:展示数据给用户,响应用户的交互。在MVC中,View可以直接绑定到Model,但通常建议避免过多的直接耦合。 3. **Controller**:...

    Spring-MVC-model(1)

    总结来说,"Spring-MVC-model(1)"涵盖了Spring MVC框架中模型层的核心概念和实践,包括模型对象的创建、模型数据的绑定与传递、以及模型验证等。理解和熟练掌握这些知识点对于开发基于Spring MVC的Web应用程序至关...

    新闻管理系统model1模式

    虽然在大型项目中可能不太适用,但对于初学者和小型项目,model1模式提供了一个快速开发和理解Web应用基础结构的途径。通过深入研究newsSystemModel1中的代码,可以进一步学习和掌握Web开发的基础技能和最佳实践。

    韩顺平的model2模式的新闻管理系统

    1. Model2模式:Model2模式是在传统的MVC模式基础上发展而来,它增强了用户交互的处理能力,特别适合于Web应用。在Model2中,控制器扮演了更重要的角色,它可以处理表单提交、验证用户输入,并根据处理结果更新模型...

    Maverick MVC Model 2

    Maverick是一个轻量而完备的MVC Model 2框架。Maverick的Action称作Controller。Controller只接受一个ControllerContext参数。request,response, servlet config, servelt context等输入信息都包装在...

    qtableview和model配合使用,实现复杂功能

    2. **自定义Model**: 对于更复杂的需求,如嵌入QCheckBox,你需要创建一个自定义的Model。继承自QAbstractTableModel,实现必要的数据接口(如data(), flags(), setData()等),并在这些方法中处理QCheckBox的状态...

    model.h5 model.json

    在这个场景中,我们有两个关键文件:"model.h5" 和 "model.json",它们与人脸表情识别任务相关,这是一种利用计算机视觉和机器学习技术来理解人类情绪的先进技术。 `model.h5` 是一个Keras模型的权重和架构存储文件...

    jspBBS源码.BBS论坛,用model1模式的项目

    2. **JavaBeans**:作为Model1模式中的Model,JavaBeans是Java对象,封装了业务逻辑,可以通过JSP的`jsp:getProperty`和`jsp:setProperty`进行数据的读写。 3. **JDBC**:了解如何创建数据库连接、执行SQL查询、...

Global site tag (gtag.js) - Google Analytics