杨老师课堂之JavaWeb体系的MVC与三层架构有什么区别
首先,声明一下,三层是三层,MVC是MVC,这俩是毫无关系的。
三层是从整个应用程序架构的角度来分的三层(如果程序需要,还可以分多层)。
三层架构通常包括表示层,业务逻辑层以及数据访问层。虽然三层架构将系统在逻辑上分成了三层,但是它并不是物理上的分层。也就是说,对不同层的代码而言,经历编译、打包、部署后,所有的代码最终还是运行在同一个进程中。
MVC是一种设计模式,一种思想,是存在于应用程序(B/S结构:又称之浏览器/服务器)的视图层划分出来的不同功能的几个模块。
MVC主要是为了解决应用程序用户界面的样式替换问题,把展示数据的 HTML 页面尽可能的和业务代码分离。MVC把纯净的界面展示逻辑(用户界面)独立到一些文件中(Views),把一些和用户交互的程序逻辑(Controller)单独放在一些文件中,在 Views 和 Controller 中传递数据使用一些专门封装数据的实体对象,这些对象,统称为Models。
只所以说MVC和三层毫无关系,是因为它们二者使用范围不同:三层可以应用于任何语言、任何技术的应用程序;而MVC只是为了解决BS应用程序视图层各部分的耦合关系。它们互不冲突,可以同时存在,也可根据情况使用其中一种。
对于,我们JAVA开发者来说:
三层架构是界面层(Web)业务逻辑层(Service)和数据访问层(Dao)构成的
MVC设计模式是模型层(Model)界面层(View)和控制层(Controller)构成的,而且他们之间也不对应。
总结:
① 三层架构是Java体系独有的专有名词,MVC在其他语言中也是存在的设计模式。
② 三层架构是采用分层思想,减轻类与类(接口)之间的耦合,通俗的说是为了减轻代码之间的依赖性,避免产生牵一发而动全身的后果。而MVC意在将后端代码和前台展示代码进行了分离。JavaBean既是一个封装的java对象,View是用来给前台客户端显示反馈的页面,采用Jsp来完成。而前台的代码与后端的逻辑代码之间的交互工作就交付给了Servlet。
运作流程:Servlet接受到前台的传递的数据进行传递给业务逻辑层Service层,Service层处理完毕传递给数据库访问Dao,Dao通过Jdbc或者持久化将数据注入到数据库中去,继而反馈给Service层,Service层响应给Servlet,Servlet返回给Jsp页面。
如下图所示:
是不是顿时感到世界明朗了,对分层又深入了解了一步。
作者: 杨校
出处: https://blog.csdn.net/kese7952
分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 如有问题, 可邮件(397583050@qq.com)咨询。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
目标反爬虫怎么办?实践出真知-scrapy集成动态ip代理(以阿布云为例)
360截图20180712215548501.jpg 一、前言 在爬虫行当,每天都要面对目标反爬虫技术,我们想要拿到数据,就需要针对它们的反爬虫来制定绕过方法,比如它识别你的UserAgent,那你可能就需要伪造、它限制IP请求次数,你可能就需要限速或者改变ip、它用验证码来识别你是人是机,你就需要模拟人的操作并且正确填写它给你弹出的验证码等等。 这里我以实际项目举例:有个项目需要爬取中国证券协会,对方使用的反爬虫手段中就有IP请求次数的限制,因为我需要的数据比较多,而且目标的数据很绕,所以我紧紧降低我爬虫的速度我觉得对我影响很大,所以我选择通过动态ip切换来应对,我需要在scrapy中实现ip自动切换,才能够在客户要求的时间内完成爬取任务。 在此之前,我用过第三方库scrapy-proxys加上芝麻ip的代理api接口,可能是之前代码没有调整好,导致的没有能够成功。(后面有机会再测试)。 二、阿布云范例 阿布云官方给出了python和scrapy的示例代码 文档python3示例 from urllib import request # 要访问的目标页面 targetUrl = "h...
- 下一篇
面向网络转型的编排管理系统和ONAP自研产品介绍
背景 网管系统通过对网络资源、故障、性能的动态监控,实现网络运行的优化管理及运维支撑,是移动通信网络正常、高效运行的重要保障。网管系统经历了“厂家OMC->专业网管->4+1综合网管”的发展历程,解决了跨专业跨厂家进行网络管理的问题,全面支撑各类移动业务、集客业务、家庭宽带业务、新业务。 随着网络新技术,尤其是NFV/SDN的引入,打破了电信行业原有的“黑盒化”封闭系统,降低了电信准入门槛,有利于打造更具活力的生态系统,从根本上改变了CT的发展生态。 一方面,充分解耦后的碎片化网络对运营商的管理和运维带来了巨大的挑战,这需要依赖于新型的管理系统。 另外一方面,NFV给网络带来极大的灵活性和敏捷性,但是网络的灵活性和敏捷性的实现依赖于新的管理系统和自动化编排系统。NFV体系中,全新的管理和编排系统MANO(NFV Management and Orchestration)系统引入,编排器(Orchestrator)作为其中的核心部件,是网络灵活调整和资源动态调度的关键,是下一代网管系统的核心。 随着运维的变革以及IT技术本身的发展,未来网管系统应具备“闭环自动化、灵活的业务定...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主