Model1模式:使用纯JSP或者JSP+JavaBean开发,存在如下缺陷:JSP页面中混合了HTML和JAVA代码,从而给代码的开发和阅读带 来了麻烦;系统后期维护和扩展非常困难,例如在JSP页面进行数据库连接和操作,如果需要对数据库进行任何修改,都必须打开所有操作数据库的JSP页面进 行相应的修改,当页面非常多的时候,工作量相当大;系统不容易调试,由于HTML、JAVA、JavaScript都混合在一起,必须要启动服务器并调用 JSP页面才能查看运行效果。故此模式适合小规模的WEB应用开发。
     JSP+JavaBean开发,虽然实现了逻辑功能和显示功能的分离,但是由于视图层和控制层都是由JSP页面实现的,即视图层和控制层没有实现分离,所以它任然属于Model1模式。

Model2模式——MVC开发模式
   它是为了克服Model1存在的不足而设计的,MVC的具体含义是:model+view+control,即模型+视图+控制,这样的模式集成了JSP、Serclet、JavaBean,非常适合大型项目的开发。

View视图层
  代表和用户交互的界面,可以通过html、xml、applet小java程序等实现,它仅仅负责数据的采集和处理(显示)。在JSP中它由JSP页面单独实现。

Model模型层
   它常常使用JavaBean来编写,它接受视图层请求的数据,然后进行相应的业务处理并返回最终的处理结果,它负担的责任最为核心,并利用JavaBean具有的特性实现了代码的重用和扩展以及给维护带来了方便。

Control控制层
  控制层是从用户端接收请求,然后将请求传递给模型层并告诉模型层应该调用什么功能模块来处理该请求,它将协调视图层和模型层之间的工作,起到中间枢纽的作用,它一般交由Serclet来实现。

MVC开发模式与Model1模式比较,显示出如下特点:
(1)各层各负其责,互不干涉。各自更新之后对其它层没有任何干扰;
(2)MVC开发模式有利于责任分工,让专门人员分别从事专门层的设计,提高工作效率和质量;
(3)组件可以得到很好的重用,由于分工明确,各层的组件可以独立成一个可以重用的组件。
   但是MVC开发模式相对Model1来说比较复杂,所以它比较适合开发大中型项目应用,而Model1模式适合小规模的WEB应用开发。

转自:http://blog.sina.com.cn/s/blog_4171e80d0100a065.html

什么是MVC开发模式以及它和传统开发模式的区别的更多相关文章

  1. SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

    熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...

  2. GJM : Taurus.MVC 2.0 开源发布:WebAPI开发教程 [转载]

    Taurus.MVC 2.0 开源发布:WebAPI开发教程 转载自http://www.cnblogs.com/cyq1162/p/6069020.html 因是新手  粘贴时有一个版权问题 本文原 ...

  3. js架构设计模式——你对MVC、MVP、MVVM 三种组合模式分别有什么样的理解?

    你对MVC.MVP.MVVM 三种组合模式分别有什么样的理解? MVC(Model-View-Controller)MVP(Model-View-Presenter)MVVM(Model-View-V ...

  4. [框架模式]经典的模型视图控制器模式MVC

    参考:<设计模式> http://blog.csdn.net/u010168160/article/details/43150049 百度百科 引言: Model(模型)是应用程序中用于处 ...

  5. 面对对象之差异化的网络数据交互方式--单机游戏开发之无缝切换到C/S模式

    上一篇这里描写叙述了一个关于差异数据在开发过程中的一个长处,这里来演示另外一个特点:单机开发之无缝切换到C/S模式 一般C/S模式都面临一个问题: 就是开发过程中的调试难题,由于涉及到client和服 ...

  6. 《C#微信开发系列(1)-启用开发者模式》

    1.0启用开发者模式 ①填写服务器配置 启用开发模式需要先成为开发者,而且编辑模式和开发模式只能选择一个(进入微信公众平台=>开发=>基本配置)就可以看到以下的界面: 点击修改配置,会出现 ...

  7. 使用ASP.NET MVC、Rabbit WeixinSDK和Azure快速开发部署微信后台

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:公众号后台系统和数据都基本准备妥当了,可以来分享下我是如何开发本微信公众号的后台系统了 ...

  8. Web的Ajax应用开发模式(二)——Ajax开发模式分析

    寄语: 前天在查看一些公司的招聘要求时,看到有公司要求测试人员了解Ajax,故写此博文旨在帮助测试人员提高自身技术知识水平,愿与广大测试同胞共同进步.(欢迎纠错!!!) Web应用的传统开发模式总结: ...

  9. 第二篇 :微信公众平台开发实战Java版之开启开发者模式,接入微信公众平台开发

    第一部分:微信公众号对接的基本介绍 一.填写服务器配置信息的介绍 登录微信公众平台官网后,进入到公众平台后台管理页面. 选择 公众号基本设置->基本配置 ,点击“修改配置”按钮,填写服务器地址( ...

随机推荐

  1. 斯特灵数 (Stirling数)

    @维基百科 在组合数学,Stirling数可指两类数,都是由18世纪数学家James Stirling提出的. 第一类 s(4,2)=11 第一类Stirling数是有正负的,其绝对值是个元素的项目分 ...

  2. Light oj 1236 - Pairs Forming LCM (约数的状压思想)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1236 题意很好懂,就是让你求lcm(i , j)的i与j的对数. 可以先预处理1e7以 ...

  3. Objective-C: NSFileManager 的使用

    在Objective-C 中的 Foundation 框架中,文件操作是由NSFileManager 类来实现的. 下面通过例子来说明如何创建一个文件,并向文件中写内容,以及如何读出文件中的内容: - ...

  4. RSA前台js加密,后台C#解密

    一.需求: 为了安全,项目中前台登陆用的密码需要加密传到后台,后台c#解密登陆密码. 二.解决方案 采用非对称加密算法RSA来达到目的,前台登陆页面一加载便发送一次ajax请求获取后台产生的公钥,用于 ...

  5. python的socket里 gethostbyname 与 gethostbyname_ex 的区别

    python里有一个模块,叫socket,提供了BSD socket 的通信接口,在看了这个模块之后,我发现了两个很相似的函数------gethostbyname 和gethostbyname_ex ...

  6. sql prompt格式设置

    sql prompt格式设置. 格式前: 格式后:

  7. CustomerSOList

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  8. Hyper-V网络配置

    Hyper-V虚拟交换机类型应用: 外部虚拟网络: 可以实现虚拟机之间.虚拟机和物理机.虚拟机和外部网络的通信. 生产环境不勾选“允许管理操作系统共享此网络适配器”,勾选之后会为主机创建虚拟网卡,会实 ...

  9. iOS 2D绘图详解(Quartz 2D)之路径(点,直线,虚线,曲线,圆弧,椭圆,矩形)

    前言:一个路径可以包含由一个或者多个shape以及子路径subpath,quartz提供了很多方便的shape可以直接调用.例如:point,line,Arc(圆弧),Curves(曲线),Ellip ...

  10. Android 滑动效果基础篇(三)—— Gallery仿图像集浏览

    Android系统自带一个Gallery浏览图片的应用,通过手指拖动时能够非常流畅的显示图片,用户交互和体验都很好. 本示例就是通过Gallery和自定义的View,模仿实现一个仿Gallery图像集 ...