深入剖析 MVC 模式与三层架构

简介: 深入剖析 MVC 模式与三层架构

1. 前言


前面我们探讨了 JSP 的使用,随着计算机技术的不断更新迭代,JSP 的技术由于存在很多的缺点,已经逐渐退出了历史的舞台,所以在学习时,我们只需要了解其如何实现的数据的增删改查。不用刨根问底,花费大量的时间,得不偿失。

  • 理解 JSP 及其原理
  • 学会使用 EL 表达式和 JSTL 标签
  • 理解 MVC 模式和三层架构


快速阅读:一文带你吃透JSP

学习 MVC 模式和三层架构的知识,可以让我们在开发中提高代码的维护性和扩展性。

2. MVC模式


MVC模式是一种分层开发的模式,其中:

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

4.1.png

其中,控制器(Servlet)用来接收浏览器发送的请求,控制器调用模型(JavaBean)来获取数据,比如从从数据库查询数据,控制器获取数据后在交给视图(JSP)进行数据的展示。

使用 MVC 模式开发有很多的好处,例如,职责单一,互不影响,每个角色各司其职。有利于分工协作和组件重用等。

3. 三层架构


三层架构的模型将我们的项目分成了三个层面,分别是表现层,业务逻辑层和数据访问层。其中数据访问层又称持久层。

4.2.png

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


在整个流程中,浏览器发送请求,表现层的 Servlet 接收请求并调用业务逻辑层的方法进行业务逻辑处理,而业务逻辑层方法调用数据访问层方法进行数据的CRUD 操作,依次返回给 Servlet,然后 Servlet 将数据交给 JSP 进行展示。

三层架构的每一层都有特有的包名名称,以后我们在学习中就要使用更加规范的命名方式,他们分别是:

  • 表现层:org.chengzi.web 或者 org.chengzi.controller
  • 业务逻辑层:org.chengzi.service
  • 数据访问层:org.chengzi.mapper或者org.chengzi.dao


马上就要学习完 JavaWeb 了,后面我们会学习更多的框架,Spring,SpringMVC,MyBatis 等等,其实不同的框架是对不同层进行的封装,如图:

4.3.png

4. MVC和三层架构


我们已经说完了 MVC 模式和三层架构,下面来看看两者有什么关系呢?

4.4.png

如图,上半部分是 MVC 模式,后半部分是三层架构,其中,MVC 模式中的控制器和视图就是三层架构中的表现层,而 MVC 模式中的模型就是三层架构中的业务逻辑层和数据访问层。

5. 总结


5.1 IDEA 小技巧


解决 Ctrl+Alt+V 快捷键 自动补全代码失败的问题,如图:

4.5.png

原因:未添加 main() 方法

解决:在类中添加main() 方法,如果是在Servlet中,则添加toGet() 等方法。

如果将 MVC 理解为一个大的概念,那么三层结构就是对 MVC 模式实现架构的思想,根据标准,我们将不同层的代码放在不同的包下,每一层里面职责单一,将来如果表现层的技术更新迭代,而业务逻辑层和数据访问层的代码则不用发生变化,大大提高的代码的可维护性。

目录
相关文章
|
2月前
|
存储 前端开发 调度
Flux 与传统的 MVC 架构模式区别
Flux是一种用于构建用户界面的架构模式,与传统的MVC架构不同,它采用单向数据流,通过Dispatcher统一管理数据的分发,Store负责存储数据和业务逻辑,View只负责展示数据,使得应用状态更加可预测和易于维护。
|
1月前
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
188 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
3月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
223 6
|
3月前
|
缓存 监控 API
探索微服务架构中的API网关模式
【10月更文挑战第5天】随着微服务架构的兴起,企业纷纷采用这一模式构建复杂应用。在这种架构下,应用被拆分成若干小型、独立的服务,每个服务围绕特定业务功能构建并通过HTTP协议协作。随着服务数量增加,统一管理这些服务间的交互变得至关重要。API网关作为微服务架构的关键组件,承担起路由请求、聚合数据、处理认证与授权等功能。本文通过一个在线零售平台的具体案例,探讨API网关的优势及其实现细节,展示其在简化客户端集成、提升安全性和性能方面的关键作用。
91 2
|
3月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
101 2
|
3月前
|
存储 缓存 监控
探索微服务架构中的API网关模式
【10月更文挑战第1天】探索微服务架构中的API网关模式
105 2
|
2月前
|
缓存 负载均衡 JavaScript
探索微服务架构下的API网关模式
【10月更文挑战第37天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务的航向。它不仅是客户端请求的集散地,更是后端微服务的守门人。本文将深入探讨API网关的设计哲学、核心功能以及它在微服务生态中扮演的角色,同时通过实际代码示例,揭示如何实现一个高效、可靠的API网关。
|
2月前
|
缓存 监控 API
探索微服务架构中的API网关模式
随着微服务架构的兴起,API网关成为管理和服务间交互的关键组件。本文通过在线零售公司的案例,探讨了API网关在路由管理、认证授权、限流缓存、日志监控和协议转换等方面的优势,并详细介绍了使用Kong实现API网关的具体步骤。
56 3
|
2月前
|
存储 缓存 监控
探索微服务架构中的API网关模式
探索微服务架构中的API网关模式
57 2
|
3月前
|
存储 前端开发 测试技术
MVC、MVP、MVVM 模式
MVC、MVP 和 MVVM 是三种常见的软件架构模式,用于分离用户界面和业务逻辑。MVC(Model-View-Controller)通过模型、视图和控制器分离数据、界面和控制逻辑;MVP(Model-View-Presenter)将控制逻辑移到 Presenter 中,减少视图的负担;MVVM(Model-View-ViewModel)通过数据绑定机制进一步解耦视图和模型,提高代码的可维护性和测试性。