首页 > 其他分享 >MVC模式与三层架构

MVC模式与三层架构

时间:2024-03-28 19:31:51浏览次数:31  
标签:Web 逻辑 架构 数据 业务 MVC 三层 Servlet

目录

1、MVC模式

2、三层架构

3、MVC+三层架构

4、分层后的处理请求与响应流程

5、注意事项

6、基于MVC模式的框架

7、基于三层架构的框架


MVC模式和三层架构在Web中经常一起使用,可以实现业务逻辑、数据访问和用户界面的分离,提高代码的可维护性和可扩展性。

1、MVC模式

  • M:Model,业务模型,处理业务
  • V:View,视图,界面展示
  • C:Controller,控制器,处理请求,调用模型和视图

控制器(serlvlet)接收浏览器发送过来的请求,控制器调用模型(JavaBean)来获取数据,控制器获取到数据后再交由视图(JSP)进行数据展示。

2、三层架构

通过将应用程序划分为不同的层次,使得各个层次之间的职责更加明确,降低了层次之间的耦合度,提高了代码的可维护性和可重用性。

  • 数据访问层:对数据库的增删改查操作。对应com.example.dao 或 com.example.mapper。
  • 业务逻辑层:对业务逻辑进行封装。组合数据访问层的基本功能,形成复杂的业务逻辑。如注册业务功能 ,要先调用数据访问层的selectByName() 方法判断该用户名是否存在,如果不存在再调用数据访问层的insert() 方法进行数据的添加操作。对应com.example.service。
  • 表现层:接收请求、封装数据、调用业务逻辑层、响应数据。对应com.example.controller。

3、MVC+三层架构

4、分层后的处理请求与响应流程

  1. 浏览器发送请求:用户通过浏览器访问Web应用的某个页面或执行某个操作时,浏览器会向服务器发送一个HTTP请求。
  2. 表现层的Servlet接收请求:在服务器端,配置好的Servlet会监听特定的URL路径。当请求到达时,对应的Servlet会被调用。Servlet作为表现层的一部分,负责接收和解析请求中的参数。
  3. 调用业务逻辑层的方法:Servlet根据请求的内容,调用业务逻辑层(Service层)中相应的方法。业务逻辑层包含了处理具体业务逻辑的代码,比如验证用户输入、计算数据等。
  4. 业务逻辑层调用数据访问层方法:在业务逻辑处理过程中,如果需要与数据库进行交互(例如查询、更新数据),业务逻辑层会调用数据访问层(DAO层)的方法。数据访问层负责执行实际的数据库操作。
  5. 数据访问层执行数据操作:数据访问层与数据库进行交互,执行CRUD操作(增删改查),并将结果返回给业务逻辑层。
  6. 数据返回业务逻辑层和Servlet:业务逻辑层接收来自数据访问层的数据或操作结果,并根据需要进行进一步处理。处理完毕后,业务逻辑层将结果返回给Servlet。
  7. Servlet将数据交由JSP进行展示:Servlet将业务逻辑层返回的数据封装到request或session等对象中,然后转发(forward)或重定向(redirect)到一个JSP页面。JSP页面作为视图层,负责将数据以HTML的形式展示给用户。
  8. JSP渲染并返回响应给浏览器:JSP页面接收来自Servlet的数据,根据页面模板和数据进行渲染,生成最终的HTML页面。然后,这个HTML页面作为HTTP响应返回给浏览器。
  9. 浏览器展示页面:浏览器接收到来自服务器的HTTP响应后,解析HTML页面并展示给用户。

这个流程中,Servlet扮演了控制器的角色,业务逻辑层是模型,而JSP页面则是视图。

5、注意事项

  • 保持各层之间的松耦合,避免跨层调用,确保职责清晰。
  • 使用接口或抽象类定义层之间的交互,提高代码的可维护性和可扩展性。

6、基于MVC模式的框架

SpringMVC是Spring框架中的一个模块,它是一个基于MVC设计模式的Web框架。SpringMVC将业务逻辑、数据、显示分离,使得代码更加清晰、易于理解和维护。它提供了丰富的功能和灵活的配置。

SpringMVC的主要作用包括:

  1. 通过一套注解,使得一个简单的Java类能够成为处理请求的控制器,无需实现任何接口。
  2. 支持RESTful编程风格的请求,满足现代Web应用的需求。
  3. 与Spring框架的其他模块无缝集成,如Spring的依赖注入功能,使得业务逻辑层的实现更加灵活和可维护。

在三层架构中,SpringMVC通常负责表示层(UI层)的实现。它接收用户的请求,调用业务逻辑层处理业务逻辑,然后将结果传递给视图进行展示。通过SpringMVC,开发者可以更加高效地构建结构清晰、易于维护和扩展的Web应用程序。

SpringMVC是最广泛使用的MVC框架之一,是一个强大且灵活的Web框架,它基于MVC模式和Spring框架,提供了构建高效、可维护的Web应用程序的工具。

7、基于三层架构的框架

三层架构更多的是一种设计思想,而不是特定的框架。很多Web框架都遵循或支持这种架构。例如,在Spring框架中,Spring MVC负责表示层,Spring的核心功能(如依赖注入)可以用于业务逻辑层,而Spring Data或MyBatis等则负责数据访问层。

MVC模式和三层架构提供了一种组织和管理代码的有效方式,使得Web应用程序更加清晰、可维护且易于扩展。

标签:Web,逻辑,架构,数据,业务,MVC,三层,Servlet
From: https://blog.csdn.net/u010852547/article/details/136662257

相关文章

  • SpringMVC对 Restful ⻛格请求⽀持
    rest⻛格请求是什么样的呢?RESTful⻛格URL:互联⽹所有的事物都是资源,要求URL中只有表示资源的名称,没有动词。RESTful⻛格资源操作:使⽤HTTP请求中的method⽅法put、delete、post、get来操作资源。分别对应添加、删除、修改、查询。不过⼀般使⽤时还是post......
  • Chap2:操作系统架构
    简述操作系统支持多进程任务,并且每个进程之前还应当隔离,但又在必要的时候进行交互。操作系统必须满足的三个要求:多路复用、隔离和交互抽象系统资源实现隔离禁止应用程序直接访问敏感的硬件资源,将这些资源抽象为服务,提供接口向应用程序服务。一般来说就是通过系统调用命令来实......
  • 知乎:多云架构下大模型训练,如何保障存储稳定性?
    知乎,中文互联网领域领先的问答社区和原创内容平台,2011年1月正式上线,月活跃用户超过1亿。平台的搜索和推荐服务得益于先进的AI算法,数百名算法工程师基于数据平台和机器学习平台进行海量数据处理和算法训练任务。为了提高系统的易用性和灵活性,知乎实施了多云混合部署架构,允......
  • 关于 NVIDIA 全新 Blackwell AI 超级芯片和架构的了解
    英伟达AI和GPU市场的先锋,最近宣布推出其最新的创新产品BlackwellB200GPU,以及更强大的对应产品GB200超级芯片,以及构成Blackwell。此次发布标志着人工智能处理能力的重大飞跃,巩固了NVIDIA在竞争激烈的行业中的影响力地位。BlackwellB200和GB200的推出恰逢对......
  • 深入浅出:探索Hadoop生态系统的核心组件与技术架构
    目录前言HDFSYarnHiveHBaseSpark及SparkStreaming书本与课程推荐关于作者:推荐理由:作者直播推荐:前言进入大数据阶段就意味着 进入NoSQL阶段,更多的是面向OLAP场景,即数据仓库、BI应用等。大数据技术的发展并不是偶然的,它的背后是对于成本的考量。集中式数据库或......
  • 银行核心系统应用架构设计最全详述
    我国金融行业信息化建设经过40多年发展,从无到有,从小到大,逐步建立起独立自主、开放创新的科技体系。其中,作为交易中枢的核心系统,通过不断迭代创新,逐步向更加开放、稳定的新一代现代化金融核心系统迈进。伴随着中国金融行业整体发展的现代化,金融核心系统从外部引进到消化吸......
  • Redis高可用之战:主从架构
    ★Redis24篇集合1主从模式介绍在笔者的另外两篇文章《Redis系列:RDB内存快照提供持久化能力》、《Redis稳定性之战:AOF日志支撑数据持久化》中,我们介绍了Redis中的数据持久化技术,包括RDB快照和AOF日志。有了这两个利器,我们再也不用担心机器宕机,数据丢失了。但是持久化技术......
  • 综合架构--9--工作防火墙使用学习--38
    综合架构--9--工作防火墙使用学习--38防火墙--学习笔记防火墙分类:硬件:华为思科深信服软件:Windows:360电脑管家金山毒霸linux:firewalldiptables防火墙的作用:隔离严格过滤出站入站firewalld设计流程定义不同区域每个区域制定自己配置通过的......
  • 综合架构---6--网站负载均衡--36
    综合架构---6--网站负载均衡--36环境环境:虚拟机ip:10.0.1.0网关:10.0.1.2子网掩码:255.255.255.0测试机器ip:10.0.1.102tips:机器不可以有nginx,所以这里建议你重新开个新机器或者克隆一个模版机实战1.给网站替换图片#步骤#1.复制图片地址http://10.0.1.102/upload......
  • 综合架构--8--高可用服务--37
    综合架构--8--高可用服务--371.访问一个网站,用户访问的终端不同显示网站页面也不同nginx如何配置?(根据访问终端不同显示页面不同)需求讲解最终实现结果:手机端www.it.comiphone10.0.1.146(手机端集群)谷歌www.it.comGoogle10.0.1.147web2集群ie#......