Spring MVC的请求处理流程

(1) 用户通过客户端向服务器发起一个 request 请求,此请求会被前端控制器(DispatcherServlet)所拦截。

(2) 前端控制器请求处理器映射器(HandlerMapping)去查找Handler,可以依据XML配置或注解去查找。

(3) 处理器映射器根据请求 URL 找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成),并返回给前端控制器。

(4).前端控制器请求处理器适配器(HandlerAdapter)去执行相应的 Handler (常称为Controller)。

(5).处理器适配器会调用并执行 Handler 处理器,这里的处理器指的是程序中编写的 Controller 类,也被称为后端控制器,在请求信息到达真正调用 Handler 的处理方法之前的这段时间内,Spring MVC还完成了很多工作。

  • 信息转换:将请求信息(如 Json、xml 等数据)转换成一个对象,将对象转换为指定的响应消息。

  • 数据转换:对请求信息进行数据转换,如 Spring 转换成 Integer 、Double 等。

  • 数据格式化:对请求消息进行数据格式化,如将字符串转换成格式化数字或格式化日期等。

  • 数据验证:验证数据的有效性(长度、格式等),验证结果存储到 BindingResult 或 Error 中。

(6)Controller 执行完毕后会返回给处理器适配器一个 ModelAndView 对象(Spring MVC 底层对象),该对象中会包含 View 视图信息或包含 Model 数据模型和 View 视图信息。

(7)处理器适配器接收到 Controller 返回的 ModelAndView 后,将其返回给前端控制器。

(8)前端控制器接收到 ModelAndView 后,选择一个合适的视图解析器(ViewReslover)对视图进行解析。

(9)视图解析器解析后,会根据 View 视图信息匹配到相应的视图结果,反馈给前端控制器。

(10)前端控制器收到 View 视图后,进行视图渲染,将模型数据(在 ModelAndView 对象中)填充到 request 域。

(11)前端控制器向用户相应结果。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

We Never say die

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值