0%

springmvc工作原理

B/S架构

客户端(浏览器)——服务器

工作原理如下:

  1. 客户端——>发送请求到服务器
  2. 服务器处理请求(得到结果)
  3. 服务器——>返回响应结果给客户端

三层架构:

表示层——业务处理层——数据访问层
UI——service——dao

调用方向为:
表示层——>业务处理层——>数据访问层
调用方法有两个部分很重要:参数和返回值
无法逆向操作。

数据访问层:

数据访问层——数据库
dao——DB

单向操作:
数据访问层需要连接数据库,执行SQL语句,将结果返回。

表示层:

控制器+视图
Controller+页面html/jsp……

流程如下:

  1. 客户端——>发送请求到控制器
  2. 控制器——>调用业务处理层,获取处理结果
  3. 控制器——>请求页面(带上数据)
  4. 页面(获取数据)——>响应页面给客户端

网页:

最经典的页面为HTML,超文本标记语言,用做数据的展示和获取。

网页主要用来处理数据的显示,以一种良好的格式(超文本HyperText)
数据:从哪里来?到哪里去?
对于展示给用户的数据,从数据库来,到网页上去,经过服务器。
对于用户输入的数据(如表单),从网页来,到数据库厘去,经过服务器。

MVC架构:

模型+视图+控制器
Model-View-Controller

模型层=业务处理层+数据访问层
控制器+视图=表示层
MVC是三层架构不同的说法,侧重点不同而已,我甚至可以说两层(上图)。

springmvc架构:

同MVC架构,使用spring技术实现。
参考上图,只是在控制器上又进行了细分。

工作流程:

  1. 用户——>发送请求到核心控制器(DispatcherServlet)
  2. 核心控制器——>寻找(适配)对应的用户控制器(HandlerAdapter)
  3. 用户控制器(返回结果)——>核心控制器
  4. 视图层将结果——>返回给用户

数据载体:

传统的MVC架构使用jsp四大域对象作为数据载体,
springmvc架构使用一个类ModelAndView作为数据载体。
用户控制器中,我们需要将转发页面和数据都封装到ModelAndView类中。
核心用户控制器中,他会自动的把ModelAndView类进行拆分,将数据填入页面
最后用户收到的页面是有数据的页面