1. MVC设计模式

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

MVC模式最早为Trygve Reenskaug提出,为施乐帕罗奥多研究中心(Xerox PARC)的Smalltalk语言发明的一种软件设计模式。

MVC可对程序的后期维护和扩展提供了方便,并且使程序某些部分的重用提供了方便。而且MVC也使程序简化,更加直观。

  • 控制器Controller:对请求进行处理,负责请求转发
  • 视图View:界面设计人员进行图形界面设计
  • 模型Model:程序编写程序应用的功能(实现算法等等)、数据库管理

注意,MVC不是Java的东西,几乎现在所有B/S结构的软件都采用了MVC设计模式。但是要注意,MVC在B/S结构软件并没有完全实现,例如在我们今后的B/S软件中并不会有事件驱动!

2. JavaWeb与MVC

JavaWeb的经历了JSP Model1、JSP Model1二代、JSP Model2三个时期。

2.1 JSP Model1第一代

JSP Model1是JavaWeb早期的模型,它适合小型Web项目,开发成本低!Model1第一代时期,服务器端只有JSP页面,所有的操作都在JSP页面中,连访问数据库的API也在JSP页面中完成。也就是说,所有的东西都耦合在一起,对后期的维护和扩展极为不利。

2.2 JSP Model1第二代

JSP Model1第二代有所改进,把业务逻辑的内容放到了JavaBean中,而JSP页面负责显示以及请求调度的工作。虽然第二代比第一代好了些,但还让JSP做了过多的工作,JSP中把视图工作和请求调度(控制器)的工作耦合在一起了。

2.3 JSP Model2

JSP Model2模式已经可以清晰的看到MVC完整的结构了。

  • JSP:视图层,用来与用户打交道。负责接收用来的数据,以及显示数据给用户
  • Servlet:控制层,负责找到合适的模型对象来处理业务逻辑,转发到合适的视图
  • JavaBean:模型层,完成具体的业务工作,例如:开启、转账等

JSP Model2适合多人合作开发大型的Web项目,各司其职,互不干涉,有利于开发中的分工,有利于组件的重用。但是,Web项目的开发难度加大,同时对开发人员的技术要求也提高了

3. JavaWeb经典三层框架

我们常说的三层框架是由JavaWeb提出的,也就是说这是JavaWeb独有的!

所谓三层是表述层(WEB层)、业务逻辑层(Business Logic),以及数据访问层(Data Access)。

  • WEB层:包含JSP和Servlet等与WEB相关的内容;
  • 业务层:业务层中不包含JavaWeb API,它只关心业务逻辑;
  • 数据层:封装了对数据库的访问细节;

注意,在业务层中不能出现JavaWeb API,例如request、response等。也就是说,业务层代码是可重用的,甚至可以应用到非Web环境中。业务层的每个方法可以理解成一个万能,例如转账业务方法。业务层依赖数据层,而Web层依赖业务层!
  

JavaWeb:MVC设计模式相关推荐

  1. Javaweb MVC设计模式、Modle发展史、项目分层和三层架构

    文章目录 MVC设计模式 MVC的目的 MVC举例 jsp+servlet+javabean模式 MVC的优点 MVC的缺点 Modle 发展史 项目分层 三层架构 MVC设计模式 MVC模式(Mod ...

  2. IT兄弟连 JavaWeb教程 MVC设计模式

    MVC是Model-View-Controller的简称,即模型-视图-控制器.MVC是一种设计模式,它强制性地把应用程序的数据展示.数据处理和流程控制分开.MVC把应用程序分成3个核心模块:模型.视 ...

  3. Java-Web JSTL标签库、自定义标签库和MVC设计模式

    目录 一.JSTL标签库 1.什么是JSTL 2.JSTL标签库 3.使用taglib指令导入标签库 4.core标签库常用标签 (1)out和set (2)remove (3)url (4)if ( ...

  4. 浅谈javaweb三大框架和MVC设计模式

    浅谈javaweb三大框架和MVC设计模式 转载自:http://blog.csdn.net/sunpeng19960715/article/details/50890705 小序:博主以前在学jav ...

  5. JavaWeb基础之MVC设计模式

    JavaWeb基础之MVC设计模式 几天代码,然后对之前学到的知识,进行反思,写出来放在QQ空间上和博客上,目的是互相学习,然后希望可以得到编程高手的补充!这是我转载加修改的博客. 这是我做了2.3天 ...

  6. MVC设计模式与JavaWeb的三层架构

    引言: MVC是一种设计思想,是无色无味看不见摸不着的.它是设计师脑子里的东西,而web的三层架构则是落地实现,也就是划分各部分的包(controller.service.dao),然后进行代码的编写 ...

  7. JavaWeb——MVC与三层架构

    文章目录 JavaWeb--MVC与三层架构 1.三层架构 2.MVC 3.MVC与三层架构的对应联系 4.MVC与三层架构的区别 JavaWeb--MVC与三层架构 1.三层架构 三层架构 (3-t ...

  8. java mvc设计模式_JavaEE知识点:MVC设计模式

    MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代 ...

  9. 终极完美《简易商城购物车系统》揭秘--MVC设计模式

    <简易商城购物系统> 大家经常去网上够物,对网上所谓的购物车应该不会陌生吧,那么今天我们就用使用javaweb的MVC设计模式来实现一个网上购物系统的案例. 最终效果如下: 三层架构的简单 ...

最新文章

  1. 统计ES性能的python脚本
  2. linux常用命令大全(转)
  3. Anroid-async-http封装网络请求框架源码分析
  4. Web框架之Django_10 重要组件(Auth模块)
  5. php session作用,PHP中Session的作用
  6. ReactJs 第三章 React元素的渲染
  7. MySQL学习笔记:SQL基本语法
  8. 怎样让公式编号不从1开始
  9. Jakarta-ORO正则表达式的运用
  10. css 垂直居中_CSS垂直居中的另类实现
  11. IIS——MIME介绍与添加MIME类型
  12. matlab求解集合覆盖问题,Set Cover Problem (集合覆盖问题)
  13. windows下python xgboost 安装方法以及安装了xgboost,pycharm却不能自动补全问题解决
  14. Qt 环境下MAPX组件的编程
  15. java 发卡平台支付_基于jsp的自动发卡平台-JavaEE实现自动发卡平台 - java项目源码...
  16. ORACLE的exp和expdp何时需要特权豁免访问策略(Exempt Access Policy)进行导出?
  17. Surface Go使用体验——一文告诉你我为什么没有选择iPad
  18. spin_lock、spin_lock_bh、spin_lock_irq、spin_lock_irqsave的使用
  19. [NLP] 文本分类之TextCNN模型原理和实现(超详细)
  20. windows10/11通过蓝牙传输文件

热门文章

  1. multiple problems have occured
  2. 一个网站的诞生- MagicDict开发总结3 [日语字典数据结构]
  3. ADO.NET Entity Framework 使用数据定义语言(实体框架)
  4. 函数-生成器之斐波拉契数列
  5. AMDP + XLSX Workbench 报表开发模式
  6. c#listView
  7. Yii2中限制访问某控制器的IP(IP白名单)
  8. iOS开发系列--并行开发其实很容易
  9. C#生成不重复的随机数
  10. HtmlParser 简介