B/S架构
客户端(浏览器)——服务器
工作原理如下:
- 客户端——>发送请求到服务器
- 服务器处理请求(得到结果)
- 服务器——>返回响应结果给客户端
三层架构:
表示层——业务处理层——数据访问层
UI——service——dao
调用方向为:
表示层——>业务处理层——>数据访问层
调用方法有两个部分很重要:参数和返回值
无法逆向操作。
数据访问层:
数据访问层——数据库
dao——DB
单向操作:
数据访问层需要连接数据库,执行SQL语句,将结果返回。
表示层:
控制器+视图
Controller+页面html/jsp……
流程如下:
- 客户端——>发送请求到控制器
- 控制器——>调用业务处理层,获取处理结果
- 控制器——>请求页面(带上数据)
- 页面(获取数据)——>响应页面给客户端
网页:
最经典的页面为HTML,超文本标记语言,用做数据的展示和获取。
网页主要用来处理数据的显示,以一种良好的格式(超文本HyperText)
数据:从哪里来?到哪里去?
对于展示给用户的数据,从数据库来,到网页上去,经过服务器。
对于用户输入的数据(如表单),从网页来,到数据库厘去,经过服务器。
MVC架构:
模型+视图+控制器
Model-View-Controller
模型层=业务处理层+数据访问层
控制器+视图=表示层
MVC是三层架构不同的说法,侧重点不同而已,我甚至可以说两层(上图)。
springmvc架构:
同MVC架构,使用spring技术实现。
参考上图,只是在控制器上又进行了细分。
工作流程:
- 用户——>发送请求到核心控制器(DispatcherServlet)
- 核心控制器——>寻找(适配)对应的用户控制器(HandlerAdapter)
- 用户控制器(返回结果)——>核心控制器
- 视图层将结果——>返回给用户
数据载体:
传统的MVC架构使用jsp四大域对象作为数据载体,
springmvc架构使用一个类ModelAndView作为数据载体。
在用户控制器中,我们需要将转发的页面和数据都封装到ModelAndView类中。
在核心用户控制器中,他会自动的把ModelAndView类进行拆分,将数据填入页面。
最后用户收到的页面是有数据的页面。