JavaWeb中MVC模型的演变

MVC架构 1、MVC简介   MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,最早为Trygve Reenskaug 提出,为施乐帕罗奥多研究中心(Xerox PARC)的Smalltalk语言发明的一种软件设计模式。   MVC结构是位那些需要为同样的数据提供多个视图的应用程序而设计的,通过把职责、性质相近的成分归结在一起,不相近的进行隔离,把软 阅读详情

MVC的发展过程

MVC设计模式


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

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

l  控制器Controller:对请求进行处理,负责请求转发;

l  视图View:界面设计人员进行图形界面设计;

l  模型Model:程序编写程序应用的功能(实现算法等等)、数据库管理;


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


JavaWeb与MVC

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


JSP Model1第一代

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


JSP Model1第二代

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


JSP Model2

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

l  JSP:视图层,用来与用户打交道。负责接收用来的数据,以及显示数据给用户;

l  Servlet:控制层,负责找到合适的模型对象来处理业务逻辑,转发到合适的视图;

l  JavaBean:模型层,完成具体的业务工作,例如:开启、转账等。

 

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

JavaWeb经典三层框架

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

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

l  WEB层:包含JSP和Servlet等与WEB相关的内容;

l  业务层:业务层中不包含JavaWeb API,它只关心业务逻辑;

l  数据层:封装了对数据库的访问细节;


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

 

 

从MVC到微服务,技术演变的必经之路 - 北京简网CTO - 郭理靖 为什么传统的MVC模式已经不满足业务的快速变化?如何从传统的MVC框架转移到微服务架构?又应该如何制定相应的微服务架构?微服务架构又应该如何被治理?容器云是微服务治理的最好方案吗?本次演讲将和大家一起探讨这些问题。 立即下载

相关推荐

十一、学生信息管理系统(PyQt5+MySQL+PyMySQL模块实现)

学生信息管理系统(PyQt5+MySQL+PyMySQL模块实现)

ungoing的博客 8991

MVC的历史和发展

它通过采用Java Servlet/JSP技术,实现了基于Java EE Web应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。Struts的优点主要集中体现在两个方面,Taglib和页面导航。Taglib是Struts的标记库,灵活多用,能大大提高开发效率。MVC框架是软件开发过程中的实用设计典范,虽然对于程序员来说增加了代码的工作量以及系统结构的复杂性,但是其拥有提高代码重用性、构建低耦合度的组件、控制器提高应用程序的灵活性和可重用性的优点。

z1076233241的博客 2471

CoppeliaSim学习笔记(1):建立Python脚本与CoppeliaSim的连接

CoppeliaSim学习笔记,建立python和CoppeliaSim的连接,实现联调。

qq_22487889的博客 1万+

Java web开发发展历程(MVC结构介绍)

Java web开发发展历程(MVC结构介绍)

我是老伯的博客 756

USRP N210与MATLAB连接实战:从驱动安装到信号接收

本文详细介绍了USRP N210与MATLAB连接的完整流程,涵盖驱动安装、网络配置、支持包安装及信号接收实战。重点解决了安装过程中的常见错误和硬件连接问题,并通过MATLAB代码示例展示了如何配置接收器、处理信号数据,帮助用户快速实现从设备对接到信号分析的全过程。

blue的专栏 819

QT与Coin3D实现机器人的仿真

前言 Coin3D编程环境配置好后,开始下一步的机器人仿真任务。本文根据在研5轴机器人,完成三维模型生成与机器人的仿真。主要参考博主冯Jungle的博客,在此表示感谢。 ——2021.05.23 环境 Win10:VS2019、QT5.15.2、Coin3D、SolidWorks2016 机器人三维模型生成 目前广泛应用于因特网的VRML ( Virtual Reality Modeling Language,虚拟现实建模语言)为用户提供一种可参与的、并能对场景中对象主动做出反应的虚拟现实环境,现已成

焦露的博客 6907

MVC的起源和理解

MVC的起源和历史我们很多人都会在网址上看到各种mvc或者mvp相关文章,有的写的很详细、有的写的则很绕口,这里我自己也分享一份自己的心得!一、MVC起源 MVC:全称:Model - View - Controller,它是于1970年的时候有TrygveReenskaug在Smalltalk-80系统上首次提出。起初并不是MVC,而是MVCE,也就是Model - View - Contro

bobo89455100的博客 5131

RKNN3588——YOLOv8的PT模型转RKNN模型

1. 首先克隆rknn修改后的ultralytics版本项目到本地主要是修改了源码的ultralytics/nn/modules/head.py和ultralytics/engine/exporter.py两个文件。2. 使用修改后的ultralytics对pt模型进行模型转换,此处的format=rknn代表支持rknn后续的转换,而不是用onnx,一定要注意!!!

张飞飞的博客 7169

Java web ----- 第七章MVC模式

模型-视图-控制器( Model-View Controller),简称为MVC. MVC已经成为软件设计者必须熟练使用的开发模式。本章必须理解、掌握在JSP程序设计中怎祥具体体现MVC开发模式(其他语言的程序设计是非常类似的,仅仅是具体使用的API不同MVC是一种通过三部分构造一个软件或组件的理想办法。MVC模式主要由三部分构成:●用于存储数据的对象。向控制器提交所需数据、显示模型中的数据。●控制器(controller)

hhhhhhzzzzzdbdd的博客 831

华中科技大学头歌 交通灯系统设计 Lojisim 详细实验报告,实验图,仅供参考

本实验也是参考了许多大神的做法,也是小白一个!有完整实验代码,实验报告,答辩PPT(ppt当时做得仓促,有点拉胯)~ 需要请评论或私QQ:3096524043(有偿~~) 一、数码管驱动 由真值表生成电路 二、四位无符号比较器设计 三、8位无符号比较器设计 四、一位2路选择器设计 五、八位2路选择器设计 六、BCD双向计数器状态机设计 七、BCD双向计数器输出函数设计 ...

FindXY的博客 1万+

NRF52832调试方法1——HardFault_Handler问题定位

一、遇到问题 keil debug模式下,直接点击全速运行(Run)发现程序卡死,点击stop按钮后,停到了HardFault_Handler位置,如下图所示。 此时使用navigate backwards(蓝色左箭头)是无效的,找不到程序卡在哪里。 二、解决办法 此时首先观察register窗口 若Stack为MSP,则复制R13(SP)的值到memory观察窗的地址搜索栏。每一行显示连续的28个地址上的存储信息,每个地址上存有一个字节。 从第21个位置起的连续四个字节是LR的值,

小梁的博客 3650

【Java开发中的MVC模式(初学者)】

利用html+java+mysql等技术手段,写一个demo,功能如下:根据准考号查找学生相关信息。 在查询页面中输入学生的考试号,及时查询到学生的姓名、班级、课程、成绩等信息。(该文主要讲述MVC模式,所以默认数据库只有一门课程一个成绩,利用第一范式构建数据库)...

LeeChance的专栏 3036

一步到位解决Docker拉取镜像失败的问题!超详细的Docker代理设置教程!(使用代理解决群晖Docker获取注册表失败的问题)

一步到位解决Docker拉取镜像失败的问题!超详细的Docker代理设置教程!(使用代理解决群晖Docker获取注册表失败的问题)

XiaoqiangClub的博客 1万+

MVC开发模式

文章目录1. MVC 演变历史2. MVC 的概念3. MVC 的优缺点 1. MVC 演变历史 在早期只有 Servlet,没有 JSP,如果想给客户端响应动态的页面(既有程序获取的数据,也有前端的数据),只能使用 Response 输出标签数据,非常麻烦 后来有了 JSP,简化了 Servlet 的开发。但在 JSP 中既写大量的 Java 代码,又写前端代码,会造成难以维护,难以分工协作等...

bm1998 198

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

JavaWeb之MVC模型

JavaWeb的经历了JSP Model1、JSP Model1二代、JSP Model2三个时期。 Javaweb的开发模式的发展 模型1: (1)第一代 所有代码(JSP页面) (2)第二代 JavaBean模式(显示层+数据访问层) 模型2:基于MVC架构模式 mvc与三层架构很类似 MVC架构就是将三层架构中的显示层 一分...

weixin_54401885的博客 462

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

MVC学习

MVC和分页一,MVC模式的简介1.1 MVC概念1.2 MVC模式详解1.3 MVC高级框架应用二,JSP开发模型2.1 JavaWeb经历两个时期2.1.1 jsp_model_12.1.2 jsp_model_22.2 基于MVC的三层架构的实现三,分页概述3.1 分页实现思路3.2 分页的代码实现MVC和分页思想的代码展示 一,MVC模式的简介 1.1 MVC概念 首先我们需要知道MVC...

木讷的鱼 624

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

MVC:开发模式

MVC:开发模式

感谢关注 361

15.mvc和分页

MVC和分页 第一节 MVC模式简介 1.1 MVC概念 ​ 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种设计模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),即为MVC。它是一种软件设计的典范,最早为Trygve Reenskaug提出,为施乐帕罗奥多研究中心(Xerox PARC)的Sma...

松松的博客 1152

第十一次学习

JSP开发模型 一 JSP开发模型 JavaWeb经历两个时期 JSP Model1 JSP Model1是JavaWeb早期的模型,它适合小型Web项目,开发成本低!Model1第一代时期,服务器端只有JSP页面,所有的操作都在JSP页面中,连访问数据库的API也在JSP页面中完成。也就是说,所有的东西都耦合在一起,对后期的维护和扩展极为不利。 JSP Model1优化后有所改进,把业务逻辑和数据访问的内容放到了JavaBean(狭义JavaBean:实体类,广义JavaBean:实体类,dao,serv

weixin_55680620的博客 91

第11章 JSP开发模型

JSP开发模型 一 JSP开发模型 JavaWeb经历两个时期 JSP Model1 JSP Model1是JavaWeb早期的模型,它适合小型Web项目,开发成本低!Model1第一代时期,服务器端只有JSP页面,所有的操作都在JSP页面中,连访问数据库的API也在JSP页面中完成。也就是说,所有的东西都耦合在一起,对后期的维护和扩展极为不利。 JSP Model1优化后有所改进,把业务逻辑和数据访问的内容放到了JavaBean(狭义JavaBean:实体类,广义JavaBean:实体类,dao,ser

qq_55682497的博客 413

MVC的运用

了解MVC # 入坑MVC JavaWEB发展史(4个阶段) https://blog.youkuaiyun.com/yuangan1529/article/details/118441239 ## 1.JSP的发展 早期只有Servlet,只能使用response输出标签数据,非常麻烦后来。JSP的出现,简化了 Servlet的开发。但是过度的使用JSP,在JSP中写大量的java代码,又前端的页面,造成难以维护,难于分工协作的窘境。再后来,随着java的web开发的逐步完善,公司的开发需要形成一种...

weixin_61523879的博客 251

JavaWeb--MVC

一、MVC演变过程 整个javaweb的开发模式 jsp模型1---- 第一代: jsp:html+css+js (java); 第二代 把相关的java代码使用javaBean模式进行简单的封装 jsp模型2----MVC 模式 M---Model.模型 完成具体操作,如查找数据库封装对象 V--View视图 jsp,html等来进行数据展示 C--Controller控制器 sevlet获取view的请求,通过视图展示出来 二、三层架构 业务逻辑层,数据库访问层,表

qq_66924116的博客 1154

MVC模型

1.MVC设计概述 在早期 Java Web 的开发中,统一把显示层、控制层、数据层的操作全部交给 JSP 或者 JavaBean 来进行处理,我们称之为 Model1: 出现的弊端: JSP 和 Java Bean 之间严重耦合,Java 代码和 HTML 代码也耦合在了一起 要求开发者不仅要掌握 Java ,还要有高超的前端水平 前端和后端相互依赖,前端需要等待后端完成,后端也依赖前端完成,才能进行有效的测试 代码难以复用 正因为上面的种种弊端,所以很快这种方式就被 Servlet + JSP

qq_49516941的博客 214

JavaWeb:Http和servlet

HTTP 1 什么是Http 超文本传输协议,简单的请求-响应协议,运行在TCP之上 文本:html,字符串 超文本:图片,音乐,视频 端口:80 Https:安全的 端口:443 2 两个时代 http1.0 http/1.0:客户端可以与web服务器连接,连接后只能获得一个web资源,然后断开连接 http2.0 http/1.1:客户端可以与web服务器连接,连接后可以获得多个web资源,然后断开连接 3 http请求 请求行 Request URL: https://ww

Cloud_lee_7562的博客 532

Javaweb研发的发展史以及演变过程

一、背景 首先介绍一个整理文章的背景:本来打算学习web容器是如何加载web应用程序的,越了解越深入,发现自己有很多地方都是模棱两可的,这时就对javaweb的前世今生产生了很大好奇,于是查询各种资料和对比,查阅大量资料的同时突然明白了一些问题,了解javaweb开发的前世今生对javaweb的开发有很大的帮助加深理解; Javaweb的早期发展:使用Javaweb技术实现时可以借助于多种相关的技术,如常见的JavaBean、servlet、等,也可以使用支持MVC的设计框架,常见的框架有 s...

liuyaguang0606的博客 3827

MVC模型和JavaWeb模型入门_简单的注册登录案例

很久没有写博客了,主要的原因还是因为懒惰…前些日子上课讲到了一个简单的注册登录案例; 虽然案例本身需求并不复杂,但因为老师将MVC的基本思想和JavaWeb的分层模型思想加入到里面,让这个小案例有了很多可以咀嚼的地方,特此做个记录; 小生水平有限,不足之处望多多交流:) 基础知识: MVC模型和JavaWeb分层思想; MVC模型; 控制器Controller:对请求进行处理,负责

Up in the Air 5118
上一篇: Jsp中的自定义标签
下一篇: Java中IO流的File类
午-夜
博客等级 码龄12年 95粉丝 133原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值