SSM框架学习——MVC模式与三层架构

MVC模式与三层架构

什么是MVC模式

MVC模式代表Model-View-Controller(模型-视图-控制器)模式。这种应用模式用于应用程序的分层开发。

  • Model代表存取数据的对象,它自身可带有逻辑,数据变化时更新Controller
  • View代表Model包含数据的可视化。
  • Controller作用在ViewModel之上,控制数据流向Model,并在数据变化的时候更新View,使ModelView分离。

三者的关系如下图所示:

MVC

最典型的MVC就是JSP+Servlet+JavaBean的模式。

三层架构

三层架构中的“三层”分别指:

  • 数据访问层(DAL,Data Access Layer)
  • 业务逻辑层(BLL,Business Logic Layer)
  • 表示层(USL,User Show Layer)

DAL

DAL也被称为持久层,位于三层最下层,用于对数据进行处理。该层方法一般为“原子性”的。

在Java程序中,DAL一般都在dao包中;有时也将实体类放在Dao包中,Mapper的方法放在Mapper包中。

BLL

BBL起到数据交换承上启下的作用,对于业务逻辑进行封装,但与DAL不同的是,这里的方法一般不是原子的,而是包含业务逻辑。例如删除,就要先进行逻辑判断或数据校验再进行DAL中的删除。

BLL一般写在service包中。

USL

位于最上层,负责与用户进行交互,为用户提供交互界面。其中USL分为前台和后台,前台指用户能够看到的界面,后台指来调用BLL的代码。

MVC与三层架构的关系

**MVC与三层架构没有任何关系。**前者是用来解决B/S程序(即浏览器/服务器程序)的耦合关系的,而后者适用于任何技术。二者的设计角度不一样。

之所以会混淆,是因为二者经常一块用,USL可以用View(USL前台)和Controller(USL后台)来实现,而BLL和DAL可以由Model来实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/509806.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

最牛的音乐大模型-suno 音乐界的ChatGPT

一、前言 之前一直对音乐是无感的,但随着 suno.ai 大火,开始喜欢上了音乐,喜欢上了音乐创作的 二、suno介绍 2.1 基本介绍 基于 Suno 任何人都可以创作美妙音乐。无论您是歌手还是艺术家抑或是对音乐一无所知的人,suno都会打破…

STM32(1):系统架构地址映射

STM32(1):系统架构&地址映射 前提摘要 个人说明: 限于时间紧迫以及作者水平有限,本文错误、疏漏之处恐不在少数,恳请读者批评指正。意见请留言或者发送邮件至:“Email:noahpanzzzgmail.com…

基因组Survey分析

流程图: 图片来源:https://www.jianshu.com/p/94da86093843 一、Fastp质控 二、NT比对 一般选择第六个输出格式 结果示例: 三、k-mer分析 软件:GCE/genomescope 分析目的:预估基因组大小,重复序列比…

团聚金刚石研磨液为高性能研磨抛光材料 中机新材是国内领先供应商

团聚金刚石研磨液为高性能研磨抛光材料 中机新材是国内领先供应商 团聚金刚石研磨液是一种高性能研磨抛光材料,是以团聚金刚石微粉为原料采用特殊配方配制而成。团聚金刚石微粉是由金刚石微粉、粘结剂经特殊工艺处理集合而成的球形磨料。金刚石微粉制备方式多样&am…

4年经验来面试20K的测试岗,一问三不知,我还真不如去招应届生。

公司前段缺人,也面了不少测试,结果竟然没有一个合适的。一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资在10-20k,面试的人很多,但平均水平很让人失望。看简历很多都是4年工作经验,但面试…

使用Java流API构建树形结构数据

简介: 在实际开发中,构建树状层次结构是常见需求,如组织架构、目录结构或菜单系统。本教案通过解析给定的Java代码,展示如何使用Java 8 Stream API将扁平化的菜单数据转换为具有层级关系的树形结构。 1. 核心类定义 - Menu Data…

中科驭数超低时延网络解决方案入选2023年度金融信创优秀解决方案

近日,由中国人民银行领导、中国金融电子化集团有限公司牵头组建的金融信创生态实验室发布「2023年度第三期金融信创优秀解决方案」,中科驭数超低时延网络解决方案从众多方案中脱颖而出,成功入选,代表了该方案的技术创新和金融实践…

Servlet基础 管理员注册页面

管理员注册页面 index.jsp <% page language"java" import"java.util.*" pageEncoding"UTF-8"%> <% String path request.getContextPath(); String basePath request.getScheme()"://"request.getServerName()":&quo…

Linux下javaweb项目部署

javaweb项目部署测试 测试环境&#xff1a;centos7 下载安装jdk rpm -ivh jdk-8u131-linux-x64.rpm 下载安装MySQL wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-server-5.7.33-1.el7.x86_64.rpm https://downloads.mysql.com/archives/get/p…

Android12 简单的共享内存驱动实现 参考Ashmem

Android12 共享内存驱动实现 SOC&#xff1a;RK3568 system&#xff1a;Android12 概述&#xff1a; 1. 概述 Ashmem&#xff08;Anonymous Shared Memory&#xff0c;Android 匿名共享内存&#xff09;&#xff0c;它基于 mmap 系统调用&#xff0c;可以让不同进程将同一段…

DHCP服务

DHCP简介 DHCP&#xff08;DynamicHost ConfigurationProtocol&#xff0c;动态主机配置协议&#xff09;通常被应用在大型的局域网络环境中&#xff0c;主要作用是集中的管理、分配IP地址&#xff0c;使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息&…

Flutter应用在App Store上架的完整指南

本文探讨了使用Flutter开发的iOS应用能否上架&#xff0c;以及上架的具体流程。苹果提供了App Store作为正式上架渠道&#xff0c;同时也有TestFlight供开发者进行内测。合规并通过审核后&#xff0c;Flutter应用可以顺利上架。但上架过程可能存在一些挑战&#xff0c;因此可能…

Git版本管理使用手册 - 8 -拉取开发分支、提交代码、查看提交日志

开发者从仓库获取开分支&#xff08;检出分支以及分支切换&#xff09; 根据仓库地址克隆的本地仓库&#xff0c;目录中默认是master的代码&#xff0c;即工作区是master代码&#xff0c;需要某一开发分支时&#xff0c;需要在工作区切换或者idea中先更新再切换分支&#xff0…

【java】关于String、StringBuffer和StringBuilder的那些事

在之前的文章中我们曾简单介绍过String这个引用类型变量&#xff0c;其实它还有许多特性&#xff0c;还有StringBuffer和StringBuilder这两个方法在字符串操作中也有非常重要的地位&#xff0c;接下来就由小编带大家梳理一下吧&#x1f44a; 目录 一、String 1、构造方法 2、…

RIP协议(路由信息协议)

一、RIP协议概述 RIP协议&#xff08;Routing Information Protocol&#xff0c;路由信息协议&#xff09;是一种基于距离矢量的内部网关协议&#xff0c;即根据跳数来度量路由开销&#xff0c;进行路由选择。 相比于其它路由协议&#xff08;如OSPF、ISIS等&#xff09;&#…

【Web】记录Polar靶场<中等>难度题一遍过(全)

目录 到底给不给flag呢 写shell 注入 某函数的复仇 xxe SSTI unpickle BlackMagic 反序列化 找找shell 再来ping一波啊 wu 代码审计1 你的马呢&#xff1f; ezphp 随机值 phpurl search file PlayGame csdn 反正持续一个月&#xff0c;感觉XYCTF…

MS SQL Server STUFF 函数实战 统计记录行转为列显示

目录 范例运行环境 视图样本设计 数据统计要求 STUFF函数实现 小结 范例运行环境 操作系统&#xff1a; Windows Server 2019 DataCenter 数据库&#xff1a;Microsoft SQL Server 2016 视图样本设计 假设某一视图 [v_pj_rep1_lname_score] 可查询对某一被评价人的绩效…

有单片机基础,准备过一遍freertos,之后再学linux

应届生我觉得继续把单片机深入一下比较好。 站在公司的角度思考一下&#xff0c;个人觉得应该有以下结论&#xff1a; 1 大公司具备技术资金等优势&#xff0c;因此喜欢学历好&#xff0c;理论扎实能够攻坚的人。倾向于培养各个领域的专家&#xff0c;共同构建自己产品的竞争…

网络安全之IP地址证书的重要性

在数字化时代&#xff0c;网络空间已成为各类活动的重要载体&#xff0c;无论是商业交易、信息交流还是远程办公&#xff0c;都离不开互联网的支撑。然而&#xff0c;网络环境的开放性与匿名性也带来了安全风险&#xff0c;如何确保网络交互中的身份真实可信&#xff0c;成为了…

C++中的面向对象到底是什么

C中的面向对象到底是什么 对象嘛&#xff0c;就和大家都有的对象一样&#xff0c;两只眼睛、一个嘴巴、两条腿…… 对不起跑题了&#xff0c;C的面向对象中的对象可不是显示中的对象哦&#xff0c;但是有一些相似之处&#xff0c;有对象的同学可以参考着去学习C面向对象的概念…