三层架构和MVC以及它们的融合

devtools/2024/11/13 23:54:45/

前缀知识点:

Servlet是什么?

Dao层是什么?

三层架构是什么:

1.三层架构含义:

三层架构就是为了符合“高内聚,低耦合”思想,把各个功能模块划分为UI(表现层)、BLL:(业务逻辑层)、DAL:(数据访问层)三层架构。额外的还有一层实体类(Model),作为数据传递的载体,在各层之间传递数据。

UI(视图层)/(表现层)

主要是指与用户交互的界面。用于接收用户输入的数据和显示处理后用户需要的数据。

BLL:(业务逻辑层)

UI层和DAL层之间的桥梁。实现业务逻辑。业务逻辑具体包含:验证、计算、业务规则等等。

DAL:(数据访问层)/(持久层)

与数据库打交道。主要实现对数据的增、删、改、查。将存储在数据库中的数据提交给业务层,同时将业务层处理的数据保存到数据库。(当然这些操作都是基于UI层的。用户的需求反映给界面(UI),UI反映给BLL,BLL反映给DAL,DAL进行数据的操作,操作后再一一返回,直到将用户所需数据反馈给用户)

这三层之间的数据传递(单向)是靠变量或实体作为参数来传递的,

MVC的应用:

MVC是Model(模型)+view(视图层)+controller(控制器)这三者的缩写。

  • 模型(Model):表示应用程序的数据和业务逻辑。模型负责从数据源(如数据库)获取数据、处理数据,并且在数据发生变化时通知视图更新。
  • 视图(View):表示用户界面,负责显示数据(通常来自模型)给用户,并接收用户的输入。视图与用户交互,但它不处理业务逻辑。
  • 控制器(Controller):是模型和视图之间的中介,接收用户输入(如按钮点击或表单提交),并更新模型或视图。控制器处理用户的请求并决定模型如何更新以及如何展示给视图

MVC强制性地使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。

执行流程为由终端的客户端进行操作,控制器基于用户的操作将请求传达给M层,M层接收到请求去执行关于数据库的动作,从而调用数据库的数据展示到V层,也就是前端的页面展示出来。

C层:(Controller包)里面都是Servlet

接收前端的指令传达到M层(Dao包)执行,然后接收到执行的结果,把数据传回前端

M层:(Dao包)

M层接收C层的指令,去执行关于数据库操作的指令,然后再传回C层

V层(前端的):把数据展示给用户的页面,把用户的指令转达给C层(Servlet),再展示受到C层传来的数据

三层架构和MVC结合:

三层架构和MVC融合:

从MVC的角度来说:

由servlet控制service和dao,service和dao就相当于是模型

servlet是控制器

前端JSP是视图

从三层架构的角度来说:

视图层:前端

逻辑层:service

持久层:dao


http://www.ppmy.cn/devtools/133769.html

相关文章

Android关机流程知多少?

在 Android 中,关机流程涉及系统各个组件的协同工作,确保设备在断电之前能够安全地关闭所有活动并保存数据。以下是 Android 系统中关机流程的详细介绍: 1. 用户触发关机请求 关机流程由用户的操作触发,通常有以下几种方式&#…

利用Java Agent 做Spring MVC Controller 层的出参入参打印日志

许多开发使用的spring aop来做切面 今天尝试一下使用JVM层面的切面 1、建立 agent jar工程 创建工程 logging-agent 使用POM为 javassist 日志 如下&#xff1a;使用了字节码 javassist 如果想处理springaop 代理的请增加依赖否则就不需要 <dependency><groupId&g…

【操作系统】输入/输出(I/O)管理

王道笔记 一、I/O管理描述 1.1 I/O设备的概念和分类 1.1.1 什么是I/O设备 “I/O”就是“输入/输出”&#xff08;Input/Output&#xff09; I/O设备机会可以将数据输入到计算机&#xff0c;或者可以接收计算机输出数据的外部设备&#xff0c;属于计算机中的硬件部件。下图就…

医疗影像分割 | 使用yolo v11训练自己的数据集

代码下载:GitHub - ultralytics/ultralytics: Ultralytics YOLO11 🚀 环境配置可以参考:目标检测:YOLOv11(Ultralytics)环境配置,适合0基础纯小白,超详细_yolov11环境配置-CSDN博客 自己的数据集标注教学(使用labelme):

【嵌入式开发】单片机CAN配置详解

0 前言 CAN外设作为一种传输速率较高&#xff0c;且连线较为简洁的通信协议&#xff0c;如今很多单片机内部都集成了CAN控制模块&#xff0c;这样只需要再外接一个CAN收发芯片&#xff0c;将TTL/CMOS电平转换成CAN协议的差分电平&#xff0c;就是一个完整的CAN收发节点。   最…

CLion配置QT开发环境

一、将qmake工程转为cmake工程&#xff08;方法一&#xff1a;用工具转换并做适当修改&#xff09; 1、工具链接&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1grW2QY3sW8X2JaHWM_ePPw 提取码&#xff1a;7at4 工具源码:https://github.com/milahu/qmake2cmake 2、执行…

发布 VectorTraits v3.0(支持 X86架构的Avx512系列指令集,支持 Wasm架构及PackedSimd指令集等)

文章目录 支持 X86架构的Avx512系列指令集支持Avx512时的输出信息 支持 Wasm架构及PackedSimd指令集支持PackedSimd时的输出信息VectorTraits.Benchmarks.Wasm 使用说明 新增了向量方法支持 .NET 8.0 新增的向量方法提供交织与解交织的向量方法YGroup3Unzip的范例代码 提供重新…

python实战(八)——情感识别(多分类)

一、任务目标 本文使用的是来自Kaggle的一个情感识别数据集&#xff0c;这个数据集的总数据量是5934条&#xff0c;标签为anger、fear、joy三种情感的其中一种&#xff0c;很明显是一个多分类任务。这里&#xff0c;我们将使用微调技巧进行深度学习建模&#xff0c;同时我们会比…