SpringMVC请求流程

本文内容来自朱要光老师编著的《SpringMVC+MyBatis开发从入门到项目实战》书的第8章。

在学习SpringMVC框架之前,首先需要了解SpringMVC框架的整体请求流程和使用到的API流。SpringMVC的整体请求流程如下:

第一步:用户单击某个请求路径,发起一个request请求,此请求会被前端控制器(DispatcherServlet)处理。

第二步:前端控制器(DispatcherServlet)请求处理器映射器(HandlerMapping)去查找 Handler。可以依据注解或者XML配置去查找。

第三步:处理器映射器(HandlerMapping)根据配置找到相应的 Handler(可以包含若干个 Interceptor 拦截器),返回给前端控制器(DispatcherServlet)。

第四步:前端控制器(DispatcherServlet)请求处理器适配器(HandlerAdapter)去执行相应的 Handler(常称为Controller

)。

第五步:处理器适配器(HandlerAdapter)执行 Handler。

第六步:Handler 执行完毕后返回给处理器适配器(HandlerAdapter)一个 ModelAndView 对象(SpringMVC底层对象,包括 Model 数据模型和 View 视图信息)。

第七步:处理器适配器(HandlerAdapter)接收到 Handler 返回的  ModelAndView 对象后,将其返回给前端控制器(DispatcherServlet)。

第八步:前端控制器(DispatcherServlet)接收到  ModelAndView 对象后,会请求视图解析器(ViewResolver) 对视图进行解析。

第九步:视图解析器(ViewResolver)根据 View 信息匹配到相应的视图结果,反馈给前端控制器(DispatcherServlet)。

第十步:前端控制器(DispatcherServlet)接收到 View 具体视图后,进行视图渲染,将 Model 中的模型填充到 View 视图中的 request 域,生成最终的视图(View)。

第十一步:前端控制器(DispatcherServlet)向用户返回请求结果。

以上就是 SpringMVC 的整个请求处理流程,其中用到的组件有:前端控制器(DispatcherServlet)、处理器映射器(HandlerMapping)、处理器适配器(HandlerAdapter)、处理器(Handler)、视图解析器(ViewResolver)、视图(View)。

流程中出现的各个组件的功能说明如下:

组件说明
前端控制器(DispatcherServlet)其作用是接收用户请求,然后给用户反馈结果。它的作用相当于一个转发器或中央处理器,控制整个流程的执行,对各个组件进行统一调度,以降低组件之间的耦合性,有利于组件之间的扩展。
处理器映射器(HandlerMapping)其作用是根据请求的URL路径,通过注解或者XML配置,寻找匹配的处理器(Handler)信息。
处理器适配器(HandlerAdapter)其作用是根据映射器找到的处理器(Handler)信息,按照特定规则执行相关的处理器(Handler)。
处理器(Handler)其作用是执行相关的请求处理逻辑,并返回相应的数据和视图信息,将其封装至 ModelAndView 对象中。
视图解析器(ViewResolver)

其作用是进行解析操作,通过 ModelAndView 对象中的 View 信息将逻辑视图名解析成真正的视图 View (如通过一个JSP路径返回一个真正的JSP页面)。

视图(View)其本身是一个接口,实现类支持不同的 View 类型(JSP、FreeMarker、Excel等)。

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

pan_junbiao

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

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

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

打赏作者

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

抵扣说明:

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

余额充值