浅谈Model1 VS Model2
在学习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的更多相关文章
- 浅谈HTML5单页面架构(二)——backbone + requirejs + zepto + underscore
本文转载自:http://www.cnblogs.com/kenkofox/p/4648472.html 上一篇<浅谈HTML5单页面架构(一)--requirejs + angular + a ...
- 浅谈 Fragment 生命周期
版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...
- 浅谈 LayoutInflater
浅谈 LayoutInflater 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/View 文中如有纰漏,欢迎大家留言指出. 在 Android 的 ...
- 浅谈Java的throw与throws
转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...
- 浅谈SQL注入风险 - 一个Login拿下Server
前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...
- 浅谈WebService的版本兼容性设计
在现在大型的项目或者软件开发中,一般都会有很多种终端, PC端比如Winform.WebForm,移动端,比如各种Native客户端(iOS, Android, WP),Html5等,我们要满足以上所 ...
- 浅谈angular2+ionic2
浅谈angular2+ionic2 前言: 不要用angular的语法去写angular2,有人说二者就像Java和JavaScript的区别. 1. 项目所用:angular2+ionic2 ...
- iOS开发之浅谈MVVM的架构设计与团队协作
今天写这篇博客是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇博客的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦 ...
- Linux特殊符号浅谈
Linux特殊字符浅谈 我们经常跟键盘上面那些特殊符号比如(?.!.~...)打交道,其实在Linux有其独特的含义,大致可以分为三类:Linux特殊符号.通配符.正则表达式. Linux特殊符号又可 ...
随机推荐
- lua迭代
迭代 function enum(array) local index = 1 return function() --返回迭代函数 local ret = array[index] index = ...
- 使用WebGL + Three.js制作动画场景
使用WebGL + Three.js制作动画场景 3D图像,技术,打造产品,还有互联网:这些只是我爱好的一小部分. 现在,感谢WebGL的出现-一个新的JavaScriptAPI,它可以在不依赖任何插 ...
- sql中数据库连接与断开式连接有什么区别?
连接式指的是对数据的操作在 conn.Open() 与 conn.Close()之间: 断开式连接指的是 conn.Open()打开连接之后,先将数据放入adapter中,然后关闭连接(conn.Cl ...
- MySQL 5.6 Reference Manual-14.1 Introduction to InnoDB
14.1 Introduction to InnoDB 14.1.1 InnoDB as the Default MySQL Storage Engine 14.1.2 Checking InnoDB ...
- Windows 10 常用软件推荐
QQ/TIM 大众的通讯工具,十多年之后的今天,依然是国内常驻用户第一的通讯工具 截图.远程桌面.视频会议.文件传送依旧是非常好用 TIM 算是轻聊版的升级版 微信 for Windows 近年新兴的 ...
- Kattis - Game Rank
Game Rank Picture by Gonkasth on DeviantArt, cc by-nd The gaming company Sandstorm is developing an ...
- 莫烦大大TensorFlow学习笔记(9)----可视化
一.Matplotlib[结果可视化] #import os #os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' import tensorflow as tf i ...
- sessionStorage与clone方法在项目中的应用
//资料列表: //JSON.parse(jsonstr); //json格式字符串转换成json对象 //JSON.stringify(jsonobj); //json对象转换成json格式字符串 ...
- Linux下MATLAB安装及使用
安装过程 1.在在media目录下创建matlab文件夹,并挂载R2017b_glnxa64_dvd1.iso镜像文件 sudo mkdir /media/matlab sudo mount -t a ...
- alsa文章
http://blog.csdn.net/azloong/article/details/6140824 http://blog.csdn.net/tianshuai1111/article/deta ...