Spring系列之SpringMVC接口工作流程

本文深入探讨了Spring MVC的请求处理流程,从浏览器发起HTTP请求开始,经过DispatcherServlet、HandlerMapping、HandlerAdapter、模型数据处理,到视图渲染和响应返回。主要涉及前端控制器、拦截器、数据转换、模型数据填充、视图解析等多个关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们在编写接口的时候,对外暴露用于获取请求,那请求是怎么进来的呢?进来之后做了哪些操作?结果是怎么返回的呢?我们带着疑问,去看一下底层原理,首先先看一下图

我们请求接口出发点都是从浏览器上操作的,所有我们从IE浏览器那边开始看起

1、通过IE或其他 浏览器请求接口,发送HTTP请求,我们这个请求会被前端控制器DispatcherServlet捕获

2、DispatcherServlet根据-servlet.xml中的配置对请求的URL进行解析,得到请求资源标识符URI,然后根据URI调用HandlerMapping获得该Handler配置的所有相关的对象,包括Handler对象以及Handler对象对应的拦截器,最后以HandlerExecutionChain对象的形式返回

3、DispatcherServlet根据获得的Handler选择一个合适的HandlerAdapter,然后执行拦截器中的preHandler方法

4、提取Request中的模型数据,填充Handler入参,开始执行Handler,也就是Controller,在填充Handler的入参过程中,根据你的配置,Spring将为你做一些额外的工作

  • HttpMessageConveter:将请求消息转换为一个对象,将对象转换为指定的响应信息
  • 数据转换:对请求消息进行数据转换,如String转换为Integer等
  • 数据根式化:对请求消息进行数据格式化,如将字符串转换为格式化数字或格式化日期
  • 数据验证:验证数据的有效性,验证结果存储到BindingResult或Error中

5、Handler执行完成后,向DispatcherServlet返回一个ModelAndView对象

6、根据返回的ModelAndView,选择一个合适的ViewResolver,必须是已经注册到Spring容器中的ViewResolver返回给DispatcherServlet

7、ViewResolver结合Model和View,来渲染视图

8、视图负责将渲染结果返回给客户端,也就是我们最后看到的请求响应

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值