JavaEE设计模式

1.传统设计模式(现在几乎不再使用):

Jsp + javaBean,

JavaBean用来对应数据库中的表,jsp负责显示界面、接受请求、处理业务、访问数据库。

弊端: 业务多时,导致jsp页面容易混乱,开发效率低

2.MVC设计模式

Jsp + servlet + javaBean

Model à javaBean à 封装数据(对应数据库中的表)

View à Jsp à 页面展示

Controller à servlet à 获取数据,对数据进行封装,传递数据、指定页面显示

仍存在的问题:servlet 业务繁重,代码利用率不高,不利于后期修改

三层架构

web层 à Jsp + servlet à 与客户端交互

Service层 à service à 复杂业务逻辑

Dao层 à dao à 与数据库进行交互存放到javaBean数据模型中

总结:

MVC的VC实现的是三层架构中的web层,用来展示页面和控制调用具体的业务逻辑,M即Model 用来与数据库中的表对应存放数据

Service层简化了MVC设计模式中Controller ,将具体的业务分离出来供servlet 调用。(一般分为接口和实现类)

Dao层 封装了数据库中某一表的相关操作,供service层调用。(也分为接口和实现类,或是利用泛型写一个公共Dao)

MVC设计模式和三层架构的更多相关文章

  1. MVC设计模式与三层架构

    三层架构分别是:表示层(Web层).业务逻辑层(BLL层)和数据访问层(DAL层). (1)表示层负责: a.从用户端收集信息 b.将用户信息发送到业务服务层做处理 c.从业务服务层接收处理结果 d. ...

  2. MVC 设计模式与三层架构

    一.JavaEE开发模式 什么是开发模式 模式是在开发过程中总结出的"套路",总结出的一套约定俗成的设计模式 JavaEE模式 model1模式 技术组成 :jsp+javaBea ...

  3. MVC模式与三层架构的区别

    之前总是混淆MVC表现模式和三层架构模式,为此记录下. 三层架构和MVC是有明显区别的,MVC应该是展现模式(三个加起来以后才是三层架构中的UI层) 三层架构(3-tier application) ...

  4. 浅析MVC模式与三层架构的区别

    浅析MVC模式与三层架构的区别 三层架构和MVC是有明显区别的,MVC应该是表现模式(三个加起来以后才是三层架构中的UI层).三层架构(3-tier application) 通常意义上的三层架构就是 ...

  5. MVC和普通三层架构的区别

    MVC和普通三层架构的区别 其中这里的模型(Model)和视图(View )是完全区别于三层架构中的模型(Model)和视图(View)的. MVC 1)MVC中的模型(Model)指的是数据模型,用 ...

  6. 浅析MVC模式与三层架构的区别01

    三层架构和MVC是有明显区别的,MVC应该是展现模式(三个加起来以后才是三层架构中的UI层)三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI ...

  7. MVC简介与三层架构

    感谢博客园团队日夜辛苦的付出 感谢阅读我文章的每位读者 1.MVC简介 MVC最早于1978年提出,是软件工程中的一种软件架构模式,这时距离微软在1985年推出Window1.0还有7年之久,当时的M ...

  8. MVC模式(三层架构模式)

    (Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller). MVC模式最早由Try ...

  9. MVC模式与三层架构和表示层

    1.MVC模式     - Model-View-Controller     - 模型-视图-控制器     - Model(模型)         > 模型分为业务模型,和数据模型     ...

随机推荐

  1. 【OEM】OEM安装维护

    [OEM]OEM安装维护 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道 ...

  2. iview blur事件

    在iview中,失去焦点的写法是: @on-blur="editTitle(item, index)"

  3. 【Difference Between Primes HDU - 4715】【素数筛法打表+模拟】

    这道题很坑,注意在G++下提交,否则会WA,还有就是a或b中较大的那个数的范围.. #include<iostream> #include<cstdio> #include&l ...

  4. Kotlin协程第一个示例剖析及Kotlin线程使用技巧

    Kotlin协程第一个示例剖析: 上一次https://www.cnblogs.com/webor2006/p/11712521.html已经对Kotlin中的协程有了理论化的了解了,这次则用代码来直 ...

  5. uiautomator2+python自动化测试2-查看app页面元素利器weditor

    前言 android sdk里面自带的uiautomatorviewer.bat可以查看手机app上的元素,但是不太好用,网上找了个大牛写的weditor,试用了下还是蛮不错的 python环境:3. ...

  6. 0031ActiveMQ的下载安装与启动

    消息中间件activemq的作用主要是解耦.异步.削峰. 我们按如下步骤详细讲解一下activemq的下载.安装与启动. 1.activemq的下载 下载地址: http://activemq.apa ...

  7. LeetCode(数据库)部门最高工资

    ), Salary int, DepartmentId int) )) Truncate table Employee ') ') ') ') Truncate table Department ', ...

  8. MSSQL行车列规则

    行转列,是SQL中经常会遇到的一个问题,并且分为静态转换和动态转换,所谓静态转换即在转换的行数已知或固定:动态转换则为转换的行数不固定. 转换的方法一般采用case when语句或pivot(MSSQ ...

  9. 查看.NET应用程序中的异常(上)

    内存转储是查明托管.NET应用程序中异常的原因的一种极好的方法,特别是在生产应用程序中发生异常时.当您在无法使用Visual Studio的应用程序中跟踪异常时,cdb和sos.dll的使用技术就变成 ...

  10. NTSTATUS代码摘录

    00000000 STATUS_SUCCESS00000000 STATUS_WAIT_000000001 STATUS_WAIT_100000002 STATUS_WAIT_200000003 ST ...