IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> mvc架构详解 -> 正文阅读

[开发测试]mvc架构详解

MVC架构

mvc是一种架构模型,本身并没有新功能,只是对项目的一种规范,方便后期进行维护;mvc架构将模型(M),视图(V)和控制(C)割离开,这么做可以提高代码书写的效率和后期维护;

MVC分层次介绍

模型(MODEL)

模型负责封装应用的状态,并实现应用的功能;
封装的是数据源和所有对这些数据的操作;
在组件中,模型表示组件的状态和操作状态的方法。

模型通常分为数据模型和业务逻辑模型:

  1. 数据模型
    数据模型主要存放业务数据,如订单,用户信息等。
  2. 业务逻辑模型
    业务逻辑模型往往是对数据的处理,如订单和用户信息的修改。

mvc的三个部件中模型拥有处理的处理能力,安装上文所说,M可以连接和处理数据库。(EJBs和ColdFusion Components构建对象处理数据库)被模型返回的数据是中立的(模型于数据格式无关),这么一来一个模型可以被多个视图调用。可以减少代码的重复性。

视图(VIEW)

**
视图是将模型的内容呈现出来,用户可以通过对视图的操作进而操作模型,封装的是对数据源Model的显示;**
一个模型可以被多个视图复用,一个视图理论上也可以和多个模型进行关联;
视图从模型中获取展示的数据,然后用自己的方法展示给用户。如用户点击H5页面的登录,视图会给模型提交用户的数据,视图接收模型的数据,然后按照自己的方式展示给用户。

在实际WEB项目中,视图通常是HTML,XHTML,XML/XSL,WML代码组成的界面。
在MVC模式中,视图只是起到展示的作用,真正处理数据其实并没有发生。

控制器(CONTROLLER)

**
控制器时用来出来视图和模型关系的组件。封装的是外界对模型的操作。**
这些操作一般为转发给模型,模型处理数据,并调用模型中相应的一个或多个方法;
一般控制器是在模型和视图之间作为沟通的组件存在的。
用户填写完账号密码由控制器接收处理并转发给模型。可以让视图和控制器之间的耦合关系更加密切;严格的分工可以提高工作的效率。

当控制器接收到用户的请求之后,会将用户的数据和模型的更新相映射,也就是调用模型来实现用户请求的功能;控制器会选择响应应用的视图,把模型更新后的数据发送给视图,视图按照自己的方式展示给用户;

当点击WEB的超链接和发送HTML表单时,控制器本身并不传输任何数据,也不做任何处理。只是接收请求并决定调用哪个模型进行构建去处理请求,然后决定用哪个视图来显示模型返回的数据。

MVC的组件关系

根据上文的描述,Model和View是严格分开的,甚至他们之间互相不知道彼此。只有Controller作为中介连接他们两个。

视图里不会有逻辑的东西。控制器里没有展示的东西。一个模型会有很多的展示方法,每一个展示方法页不止一种模型。

比如:windows下打开文件夹;

文件夹的大图标小图标就是不同的视图但内容数据是一样的(模型数据一样);
点击进入其他的文件夹内,视图一样但是数据不同。

即–模型和视图之间并非一一对应的。

而Controller作为模型和视图之间的桥梁,可以保证模型和视图之间相互制约;点击视图的操作控制器立即给出相应;

MVC交互关系:

  1. 登入程序后,展示视图用户在视图上进行操作,填写业务数据
  2. 用户点击提交来提交发出的请求
  3. 视图发出的请求传到控制器,其中包含想要完成什么样的业务功能及相关数据
  4. 控制器处理用户请求并封装,选择合适的模型,请求模型来处理用户请求的数据,接收模型的更新,并选择接下来用哪一个视图进行展示这些数据
  5. 模型会处理用户请求的业务功能,同时进行模型状态的维护和更新
  6. 当模型进行更新后模型会通知相应的视图进行更新
  7. 当视图接收到模型的通知后,会向模型进行状态查询,获取需要展示的数据,然后按照视图的规则进行展示
  8. 等待用户的下一次操作,重复上面的操作

JAVA EE的MVC架构

MVC是一种横向分层的模型。采用MVC模式的用户不可以直接访问JSP视图,即使不需要调用业务逻辑功能,也应该让用户的所有操作都经过控制器,由控制器转到视图。

JAVA EE中视图层一般JSP实现一个交互性高的异步通信Web应用。
模型层:一般以JAvaBean为主体,实现Java的业务主体
控制器:用Servlet实现,

JavaEE中通常把Servlet+JSP+Javabean的模型称为Model2模型,基本划分如下:

  1. Javabean作为模型,既可以作为数据模型来封装业务数据,也可以作为业务逻辑模型来实现业务的操作;其中数据模型用来存储和传递业务数据。业务逻辑模型接收控制器传来的模型请求更新后,执行特定的业务逻辑 处理,返回相应的执行结果;
  2. JSP作为视图,负责提供页面给用户展示数据。提供相应的表单(Form)来相应用户的请求,并在适当的时候(比如用户点击提交按钮)向控制器发送用户请求来要求模型进行更新;
  3. Servlet作为控制器,用来接收用户提交的请求,并获取请求中的数据,将其转化为业务模型中需要的数据模型,然后调用业务模型中相应的方法,请求业务模型进行更新,同时根据业务执行的结果来选择需要返回的视图。发送数据给相应的视图JSP;
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-30 12:30:37  更:2021-08-30 12:31:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/10 15:31:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码