• 【MVC 开发模式】


    【MVC 开发模式和三层架构介绍】

    一、 JSP 演变历史

    1. 早期只有 Servlet ,只能使用 Response 对象输出标签数据,非常麻烦
    2. 后来出现了 JSP ,简化了 Servlet 的开发,但是如果过度使用 JSP ,在 JSP 中既写入大量的 Java 代码,又有 HTML 标签,造成难以维护,难以分工协作
    3. 再后来,Java 的 Web 开发,借鉴了 MVC 开发模式,使得程序的设计更加合理

    二、 MVC

    1. MVC 概述

    1. M :Model :模型
    2. V :View :视图
    3. C :Controller :控制器

    运行过程:浏览器向服务器请求资源先经过控制器控制器去调用模型,调用模型去进行一些业务的操作,操作完成后,模型把数据返回给控制器,之后控制器将数据传递给视图去展示数据,之后给浏览器客户端做出响应

    2. MVC 各个部分的作用

    • 控制器:
      1. 获取客户端的输入
      2. 调用模型
      3. 将数据交给视图展示
    • 模型:
      • 完成具体的业务逻辑操作,如:查询数据库、封装对象
    • 视图:
      • 展示数据

    3. 实际开发中的角色

    • 在实际开发中:
      • Servlet 充当控制器
      • JavaBean 充当模型
      • JSP 充当视图

    4. 优点

    • 耦合性低,方便维护,可以利于分工协作
    • 重用性高
    • 生命周期成本低
    • 部署快

    5. 缺点

    • 使得项目的架构变得复杂,对开发人员要求高
    • 没有明确的定义
    • 不适合小型,中等规模的应用程序
    • 增加系统结构和实现的复杂性
    • 视图与控制器间的过于紧密的连接
    • 视图对于模型数据的低效率访问
    • 一般高级的界面工具或构造器不支持模式

    三、 三层架构

    1. 三层架构概述

    三层架构:软件设计架构

    1. 界面层(表面层):用户看的到的界面,用户可以通过界面上的组件和服务器进行交互
    2. 业务逻辑层:处理业务逻辑
    3. 数据访问层:操作数据存储文件

    2. Web 服务器中三层架构的运行过程

    发送请求
    进行响应
    操作数据库
    数据返回
    浏览器
    Web 数据库
    数据库
    包含
    包含
    包含
    Web 数据库
    界面层/表示层/Web 层
    业务逻辑层/service 层
    数据访问层/dao 层 Data Access Object 层
    调用
    数据返回
    访问
    封装返回
    界面层/表示层/Web 层
    业务逻辑层/service 层
    数据访问层/dao 层 Data Access Object 层

    在 Web 服务器中三层架构的运行过程:由浏览器访问界面层界面层调用对应的业务逻辑层业务逻辑层再去访问数据访问层数据访问层操作数据库,数据库将数据返回给数据访问层数据访问层将数据封装返回给业务逻辑层业务逻辑层将数据提供给界面层界面层将数据显示到最终的浏览器中

    3. 三层架构与 MVC 开发模式联系下的运行过程

    • 在 MVC 开发模式中,浏览器向服务器请求资源先经过控制器,而控制器在界面层中,以 Servlet 实现类充当控制器,接收用户请求,获取用户提交的参数信息,将数据封装
    • 然后 Servlet 就去调用业务逻辑层,之后业务逻辑层将数据返回给 Servlet
    • Servlet 将数据存储起来转发到一个 JSP 页面,JSP 页面充当视图的功能,由 JSP 页面最终给浏览器做出响应

    4. 业务逻辑层不可省略的原因

    为什么不可以直接使用界面层调用数据访问层,略过不写业务逻辑层,简化代码量?

    • 数据访问层中定义了对于数据库最基本的增删改查操作,都是一个个单一的方法,不可能一个方法完成一件具体的功能
    • 业务逻辑层则可以进行简单方法的组合,实现复杂操作(业务逻辑操作)
    • 界面层则是接收用户参数,封装数据,调用业务逻辑层完成处理,转发 JSP 页面完成显示

    5. 三层架构下包的命名

    • 界面层:com.公司名.项目名.web
    • 业务逻辑层:com.公司名.项目名.service
    • 数据访问层:com.公司名.项目名.dao

    6. 三层架构对应的框架

    • 界面层:SpringMVC 框架
    • 业务逻辑层:Spring 框架(它也涉及到界面层和数据访问层)
    • 数据访问层:Mybatis 框架(持久层框架)
  • 相关阅读:
    UE5 C++ 斯坦福 1
    相控阵应用的理解
    工作记录--(关于接口设计)---每天学习多一点
    Oracle/PLSQL: Replace Function
    2022.11.7-11.13 AI行业周刊(第123期):技术人员的职业发展在哪里?
    软件型企业必备的“爆款资质”,千万不要错过!投标加分项!
    做个清醒的程序员之要不要做程序员
    【ElasticSearch和whoosh实现项目中搜索功能】
    Python 自然语言处理 文本分类 地铁方面留言文本
    leetcode 343 整数拆分
  • 原文地址:https://blog.csdn.net/Jade_Heng_Star/article/details/126179694