在学习drp的过程中就对model1和model2产生了浓厚的兴趣,一直都没有好好总结下,接下来就和大家一起学习下它们的真面目。

一、是什么?

首先大家提到model想到了什么?它的名词意识是:模型;典型;榜样;样式。那么在这里它也逃只是这个意思。它就是SUN公司对于MVC模式所先后推出的二种规范,第一种是JSP
MODEL1,另外一种就是JSPMODEL2。简单的概括:

JSP MODEL1就是jsp + javabean。它在一定程度上实现了M
VC,即jsp是控制层和表示层合二为一。没有将两者的职责分离出来

JSP MODEL2就是 jsp + servlet + javabean ,它是将控制层(Servlet)单独划分出来。专门负责业务流程的控制,接收页面的请求。创建所需的JavaBean实例,并将处理后的数据再返回到jsp。

二、怎么用?

JSP MODEL1用在比較小型的项目开发中,例如以下面时序图:

长处:架构简单,比較适合小型项目开发

缺点:jsp的职责不单一,职责过重,不便于维护

JSP MODEL2主要用在大型项目开发中。时序图例如以下:

长处:职责清楚。较适合于大型项目架构。提高开发效率

缺点:不适合于小型项目开发

三、两者对照

通过以上它们什么时候用及各自的优缺点就能够看出:

JSP MODEL2在JSP MODEL1的基础上分离了控制。从而可以更好地适应需求的变化,进一步更好地进行人员分工。

通过它们两个的对照能够看出没有优劣之分,仅仅是适应的场合不同。JSP MODEL1用在小型项目中会显得简单。easy管理;而JSP
MODEL2用在大型的项目中,就会体现职责清楚的优势。大大提高了管理和开发的效率。

四、联系

记得刚開始就提到“它们都是SUN公司对于MVC模式所先后推出的二种规范”。那么MVC又是什么呢?接下来就看看一个典型的MVC架构图:

我们在开发drp的过程中主要用的就是这样的模型图,它们之间的调用关系及职责都非常明白,相信在今后的开发中会一直伴随着我们。

五、总结

通过以上对Model1及Model2的总结。能够看出事物的存在都是有意义的。各有优劣。希望在今后的开发中让它们发挥各自的价值。

浅谈Model1 VS Model2的更多相关文章

  1. 浅谈HTML5单页面架构(二)——backbone + requirejs + zepto + underscore

    本文转载自:http://www.cnblogs.com/kenkofox/p/4648472.html 上一篇<浅谈HTML5单页面架构(一)--requirejs + angular + a ...

  2. 浅谈 Fragment 生命周期

    版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...

  3. 浅谈 LayoutInflater

    浅谈 LayoutInflater 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/View 文中如有纰漏,欢迎大家留言指出. 在 Android 的 ...

  4. 浅谈Java的throw与throws

    转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...

  5. 浅谈SQL注入风险 - 一个Login拿下Server

    前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...

  6. 浅谈WebService的版本兼容性设计

    在现在大型的项目或者软件开发中,一般都会有很多种终端, PC端比如Winform.WebForm,移动端,比如各种Native客户端(iOS, Android, WP),Html5等,我们要满足以上所 ...

  7. 浅谈angular2+ionic2

    浅谈angular2+ionic2   前言: 不要用angular的语法去写angular2,有人说二者就像Java和JavaScript的区别.   1. 项目所用:angular2+ionic2 ...

  8. iOS开发之浅谈MVVM的架构设计与团队协作

    今天写这篇博客是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇博客的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦 ...

  9. Linux特殊符号浅谈

    Linux特殊字符浅谈 我们经常跟键盘上面那些特殊符号比如(?.!.~...)打交道,其实在Linux有其独特的含义,大致可以分为三类:Linux特殊符号.通配符.正则表达式. Linux特殊符号又可 ...

随机推荐

  1. awk杂集-20170911

    awk 格式 1.awk -F '分割符' 'BEGIN{} /执行条件/{} END{}' filepath; 默认使用空格分割 2.awk -v word=$command '{print wor ...

  2. P1284 三角形牧场

    题目描述 和所有人一样,奶牛喜欢变化.它们正在设想新造型的牧场.奶牛建筑师Hei想建造围有漂亮白色栅栏的三角形牧场.她拥有N(3≤N≤40)块木板,每块的长度Li(1≤Li≤40)都是整数,她想用所有 ...

  3. art-template简单使用

    art-template是一款较通用的前端模板引擎. 简单的使用方法如下: 具备3个要素 1)模板 <script type="text/template" id=" ...

  4. mybatis 高级映射和spring整合之查询缓存(5)

    mybatis 高级映射和spring整合之查询缓存(5) 2.0 查询缓存 2.0.1 什么是查询缓存 mybatis提供缓存,用于减轻数据压力,提高数据库性能. mybatis提供一级缓存和二级缓 ...

  5. python第三方库 pip 豆瓣源

    pip install xxx -i http://pypi.douban.com/simple/ xxx 为包名

  6. 10件5G能实现,但4G不能做的事情

    10件5G能实现,但4G不能做的事情 从三星Galaxy S10 5G手机到OnePlus 7 Pro 5G手机以及更高版本,首批5G手机现已上市.5G网络时代的开启是从小范围内,如果你居住在可以使用 ...

  7. Select, Poll,Epoll

    Date: 2019-06-19 Author: Sun 1. Select ​ select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当se ...

  8. SQL2012安装

    SQL2012安装 1.打开SQL安装包,点击setup安装 2.选择安装界面,点击全新安装 3.验证通过后,点击确定 4.选择我接受,点击下一步 5.在外网环境,可进行在线更新,内网环境取消勾选产品 ...

  9. Java Mybatis 缓存介绍

    0 引言 本文主要介绍有关MyBatis的缓存. 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 1. 一级缓存: 基于PerpetualCache 的 HashMap本 ...

  10. SQL SEVER (ROLLUP与CUBE,ROW_NUMBER())使用方法

    1.建立测试专用数据: if object_id('TESTDB') is not null drop table TESTDB ), B INT) insert into TESTDB union ...