文章目录

  • 1. 前言
  • 2. MVC模式
  • 3. 三层架构
  • 4. MVC和三层架构
  • 5. 总结
    • 5.1 IDEA 小技巧

1. 前言

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

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

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

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

2. MVC模式

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

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

image-20230214162150402

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

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

3. 三层架构

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

image-20230214163407668

  • 数据访问层:对数据库进行增删改查等基本操作。
  • 业务逻辑层:对业务逻辑进行封装,组合数据访问层中的基本功能,形成复杂的业务逻辑功能,例如注册业务功能,我们先调用数据访问层的 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 等等,其实不同的框架是对不同层进行的封装,如图:

image-20230214164937744

4. MVC和三层架构

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

image-20230214165751518

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

5. 总结

5.1 IDEA 小技巧

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

image-20230214141702544

原因:未添加 main() 方法

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

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