JavaWeb:MVC设计模式
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设计模式相关推荐
- Javaweb MVC设计模式、Modle发展史、项目分层和三层架构
文章目录 MVC设计模式 MVC的目的 MVC举例 jsp+servlet+javabean模式 MVC的优点 MVC的缺点 Modle 发展史 项目分层 三层架构 MVC设计模式 MVC模式(Mod ...
- IT兄弟连 JavaWeb教程 MVC设计模式
MVC是Model-View-Controller的简称,即模型-视图-控制器.MVC是一种设计模式,它强制性地把应用程序的数据展示.数据处理和流程控制分开.MVC把应用程序分成3个核心模块:模型.视 ...
- Java-Web JSTL标签库、自定义标签库和MVC设计模式
目录 一.JSTL标签库 1.什么是JSTL 2.JSTL标签库 3.使用taglib指令导入标签库 4.core标签库常用标签 (1)out和set (2)remove (3)url (4)if ( ...
- 浅谈javaweb三大框架和MVC设计模式
浅谈javaweb三大框架和MVC设计模式 转载自:http://blog.csdn.net/sunpeng19960715/article/details/50890705 小序:博主以前在学jav ...
- JavaWeb基础之MVC设计模式
JavaWeb基础之MVC设计模式 几天代码,然后对之前学到的知识,进行反思,写出来放在QQ空间上和博客上,目的是互相学习,然后希望可以得到编程高手的补充!这是我转载加修改的博客. 这是我做了2.3天 ...
- MVC设计模式与JavaWeb的三层架构
引言: MVC是一种设计思想,是无色无味看不见摸不着的.它是设计师脑子里的东西,而web的三层架构则是落地实现,也就是划分各部分的包(controller.service.dao),然后进行代码的编写 ...
- JavaWeb——MVC与三层架构
文章目录 JavaWeb--MVC与三层架构 1.三层架构 2.MVC 3.MVC与三层架构的对应联系 4.MVC与三层架构的区别 JavaWeb--MVC与三层架构 1.三层架构 三层架构 (3-t ...
- java mvc设计模式_JavaEE知识点:MVC设计模式
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代 ...
- 终极完美《简易商城购物车系统》揭秘--MVC设计模式
<简易商城购物系统> 大家经常去网上够物,对网上所谓的购物车应该不会陌生吧,那么今天我们就用使用javaweb的MVC设计模式来实现一个网上购物系统的案例. 最终效果如下: 三层架构的简单 ...
最新文章
- 统计ES性能的python脚本
- linux常用命令大全(转)
- Anroid-async-http封装网络请求框架源码分析
- Web框架之Django_10 重要组件(Auth模块)
- php session作用,PHP中Session的作用
- ReactJs 第三章 React元素的渲染
- MySQL学习笔记:SQL基本语法
- 怎样让公式编号不从1开始
- Jakarta-ORO正则表达式的运用
- css 垂直居中_CSS垂直居中的另类实现
- IIS——MIME介绍与添加MIME类型
- matlab求解集合覆盖问题,Set Cover Problem (集合覆盖问题)
- windows下python xgboost 安装方法以及安装了xgboost,pycharm却不能自动补全问题解决
- Qt 环境下MAPX组件的编程
- java 发卡平台支付_基于jsp的自动发卡平台-JavaEE实现自动发卡平台 - java项目源码...
- ORACLE的exp和expdp何时需要特权豁免访问策略(Exempt Access Policy)进行导出?
- Surface Go使用体验——一文告诉你我为什么没有选择iPad
- spin_lock、spin_lock_bh、spin_lock_irq、spin_lock_irqsave的使用
- [NLP] 文本分类之TextCNN模型原理和实现(超详细)
- windows10/11通过蓝牙传输文件