当前位置: 首页 > news >正文

Javaweb- 11 MVC架构模式

MVC(Model View Controller) 是软件工程中一种软件架构模式,它把软件系统分为模型,视图,控制器,三个基本部分。用一种业务逻辑,数据,界面显示分离的方法组织代码,将业务逻辑集群到一个部件里面。当改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。(1. 高内聚,低耦合 2. 开闭原则(对修改关闭,对拓展开放))

MVC 各层的内容

M:Model 模型层

        1. 存放和数据库对应的实体类以及一些用于存储非数据库持久化存储的相关的 VO 对象

        2. 存放一些对数据进行逻辑运算操作的业务处理代码

V:View 视图层

        1. 存放一些视图相关的代码 html css js 等

        2. 在前后端分离的项目中,该层次已经变为了独立的前端项目

C:Controller 控制层

        1. 接收客户端请求,获得请求数据

        2. 将准备好的数据,响应给客户端

MVC 项目中的常见包

M:

        1. 实体类包(pojo/entity/bean):专门存放和数据库对应的实体类和一些 VO 对象

        2. 数据库访问包(dao/mapper):专门存放对数据库不同表格 CURD 方法封存的一些类

        3. 服务包(service):专门存放对数据进行业务逻辑运算的一些类

C:

        控制层包(controller)

V:

        web 目录下的视图资源

举个栗子:

要实现一个页面,张三网络购物,买 10 本书:

用户打开页面,首先是一个视图页面

当顾客选好数量和书籍后,点击结算,将相关数据发送给控制层

 

同时,还用封装对表格数据 CRUD 的 DAO 层,和实体类层

完!

http://www.dtcms.com/a/275465.html

相关文章:

  • [BJDCTF2020]ZJCTF,不过如此
  • HarmonyOS从入门到精通:动画设计与实现之六 - 动画曲线与运动节奏控制
  • Leetcode百题斩-二分搜索
  • 【C语言】回调函数、转移表、qsort 使用与基于qsort改造冒泡排序
  • linux_线程概念
  • 死锁的概念 ⚠️
  • 告别频繁登录!Nuxt3 + TypeScript + Vue3实战:双Token无感刷新方案全解析
  • TinyBERT:知识蒸馏驱动的BERT压缩革命 | 模型小7倍、推理快9倍的轻量化引擎
  • python-for循环
  • 【Elasticsearch】昂贵算法与廉价算法
  • UI前端大数据可视化实战策略分享:如何设计符合用户认知的数据可视化流程?
  • 让 VSCode 调试器像 PyCharm 一样显示 Tensor Shape、变量形状、变量长度、维度信息
  • 「日拱一码」025 机器学习——评价指标
  • Android音视频探索之旅 | C++层使用OpenGL ES实现音频渲染
  • 单片机学习笔记.根据芯片数据手册写驱动程序(这里使用的是普中开发版,以DS1302为例)
  • 创建Spring Boot项目
  • 解决‘vue‘ 不是内部或外部命令,也不是可运行的程序
  • 前端开发的「设计鸿沟」:为什么我学了CSS却做不出好看的网页?
  • 用YOLOv5系列教程(1)-用YOLOv5轻松实现设备状态智能监控!工业级教程来了
  • 【工具】什么软件识别重复数字?
  • C++结构体的定义与使用
  • 机器学习(ML)、深度学习(DL)、强化学习(RL)关系和区别
  • Redis 基本操作笔记
  • 关于wpf的自适应
  • 基于 Redisson 实现分布式系统下的接口限流
  • [特殊字符] 深入掌握 dsquery:Active Directory 高效查询与安全运维指南
  • sqli-labs靶场通关笔记:第7-8关 布尔盲注
  • Gemini CLI 代理问题解决[API Error: exception TypeError: fetch failed sending request]
  • 【Linux-云原生-笔记】数据库操作基础
  • 【机器学习|学习笔记】详解决策树CART算法,并对比ID3 C4.5和CART算法