B/S中的三层架构和MVC设计模型

一.B/S系统中的三层架构
1.引子:

我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器,另一种是 B/S 架构,也就 是浏览器服务器。在 JavaEE 开发中,几乎全都是基于 B/S架构的开发。那么在 B/S架构中,系统标准的三层架构 包括:表现层、业务层、持久层。三层架构在我们的实际开发中使用的非常多。

2.表现层:

表现层: 也就是我们常说的web层。它负责接收客户端请求,向客户端响应结果,通常客户端使用http协议请求 web 层,web 需要接收 http 请求,完成 http 响应。 表现层包括展示层和控制层:控制层负责接收请求,展示层负责结果的展示。 表现层依赖业务层,接收到客户端请求一般会调用业务层进行业务处理,并将处理结果响应给客户端。

3.业务层:

业务层: 也就是我们常说的 service 层。它负责业务逻辑处理,和我们开发项目的需求息息相关。web 层依赖业 务层,但是业务层不依赖 web 层。 业务层在业务处理时可能会依赖持久层,如果要对数据持久化需要保证事务一致性。(也就是我们说的, 事务应该放到业务层来控制)

4.持久层:

持久层: 也就是我们是常说的 dao 层。负责数据持久化,包括数据层即数据库和数据访问层,数据库是对数据进 行持久化的载体,数据访问层是业务层和持久层交互的接口,业务层需要通过数据访问层将数据持久化到数据库中。通俗的讲,持久层就是和数据库交互,对数据库表进行曾删改查的。

5.三层架构图解(与相应框架的对应):

在这里插入图片描述当用户访问一个网站时:
用户需要经历的过程有:在浏览器输入 url,然后浏览器向服务器发起一个 http 请求,服务器端拿到这个http请求之后会根据相关的条件到数据库查询相关数据,然后把数据以特定的格式,网站是 html 格式,返回给浏览器,浏览器再根据特定数据渲染出相应页面。那么对用户来说:
(1). 浏览器就是用户界面层,它主要是与用户交互的页面,根据用户的输入与事件,处理并显示返回的特定数据。
(2). 连接表示层与数据访问层的就是业务逻辑层,这包括后端程序中模型设计、验证、业务规则、各种计算等。
(3). 服务器端必须要一个强大的数据库来存储所有用户交互产生的数据,而对这些数据的处理,包括增、删、改、查就属于数据访问层。

二.MVC设计模型
1.概念:

MVC 全名是 Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写, 是一种用于设计创建 Web 应用程序表现层的模式。MVC 中每个部分各司其职。

(1). Model(模型):通常指的就是我们的数据模型(Javabean)。作用一般情况下用于封装数据。
(2). View(视图):通常指的就是我们的 jsp 或者 html。作用一般就是展示数据的。 通常视图是依据模型数据创建的。
(3) Controller(控制器):是应用程序中处理用户交互的部分(Servlet)。作用一般就是处理程序逻辑的。

例如:我们要保存一个用户的信息,该用户信息中包含了姓名,性别,年龄等等。 这时候表单输入要求年龄必须是 1~100 之间的整数。姓名和性别不能为空。并且把数据填充 到模型之中。 此时除了 js 的校验之外,服务器端也应该有数据准确性的校验,那么数据的准确性校验就是控制器的该做的。当校验失败后,由控制器负责把错误页面展示给使用者。如果校验成功,也是控制器负责把数据填充到模型(javabean中),并且调用业务层实现完整的业务需求,最后返回响应到视图层由浏览器做渲染,最后在浏览器页面上响应出来。

2.与三层架构模型之间的关系:

表现层的设计一般都使用 MVC 模型。MVC 是表现层的设计模型,和其他层没有关系。

3.MVC框架的工作流程?

(1).用户通过View页面向服务端提出请求,可以是表单请求、超链接请求、AJAX请求等。

(2). 服务端Controller控制器接收到请求后对请求进行解析,找到相应的Model对用户数据进行封装然后移交到业务层和持久层对与数据库进行交互

(3) 业务层和持久层处理后,将处理结果再交给表现层的Controller

(4).Controller在接到处理结果后,根据处理结果找到要作为向客户端发回的响应View页面。页面经渲染(数据填充)后,再发送给浏览器

三.使用架构和框架的优势

1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖,实现高内聚低耦合;
4、有利于标准化;
5、利于各层逻辑的复用。
6、结构更加的明确
7、在后期维护的时候,极大地降低了维护成本和维护时间

以上总结是学习完黑马程序员的视频总结的如有理解上的缺陷请联系我,302664347。谢谢

  • 27
    点赞
  • 206
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值