SpringMVC工作流程与核心组件

什么是 SpringMVC

SpringMVC 是一个 Web 框架,一个基于 Java 实现了 MVC 风格的轻量级 Web 框架。
它把复杂的 Web 应用分离成 ModelViewController 三个逻辑清晰的部分,实现了解耦,从而简化开发减少出错便于合作

SpringMVC的工作流程

SpringMVC 的详细工作流程如下图所示:
SpringMVC

上图中请求处理的详细流程如下:

  1. 客户端发送的请求会被 DispatcherServlet 收到。
  2. DispatcherServlet 收到请求后,去找 HandlerMapping 问该用哪个 HandlerHandlerMapping 根据请求的 url 映射相应的 Handler)。
  3. HandlerMapping 找到合适的 HandlerExecutionChain(包含 Handlerinterceptors ),并返回给 DispatcherServlet
  4. DispatcherServletHandlerAdapter 去处理找到的 Handler
  5. HandlerAdapter 调用 Handler,以处理业务逻辑。
  6. Handler 执行完成会产生一个 ModelAndView,其中的 Model 里面装的是要返回的数据对象,而 View 还只是个逻辑上的 View (只是个 View 的名字)。
  7. HandlerAdapterHandler 返回的 ModelAndView 再返回给 DispatcherServlet
  8. DispatcherServletModelAndView 发给 ViewResolver 进行解析(逻辑 View 只是个名字,解析的过程其实就是把名字拼接上前后缀,变成一个文件路径,从而找到具体的 View 文件),从而根据逻辑 View 找到实际的 View
  9. ViewResolver 把实际的 View 返回给 DispatcherServlet
  10. DispatcherServlet 将实际的 View 进行渲染。
  11. DispatcherServlet 得到渲染后的 View
  12. DispatcherServlet 响应客户端的请求。

SpringMVC中的核心组件

DispatcherServlet:前端控制器,SpringMVC 的核心组件,用于统一处理请求和响应,并协调各个组件的工作。

HandlerMapping:处理器映射器,根据要干的活找到需要的工具(Handler),根据请求的 url、method 等信息找到合适的处理器执行链(HandlerExecutionChain),其中包含处理器(Handler)与拦截器们(interceptors)。

HandlerAdapter:处理器适配器,使用工具(Handler)干活的人,根据映射器找到的处理器信息,按照特定的规则去执行相关的处理器。因为处理器(Handler)的类型是 Object 类型,SpringMVC 无法直接执行,需要由适配器来实现处理器(Handler)的具体执行方式。

Handler:处理器,用来干活的工具,也就是由开发人员编写的 Controller,用于对用户请求进行具体的处理

ViewResolver:视图解析器,把逻辑视图解析成物理视图(其实就是把封装在 ModelAndView 中的 View 名字连接上前后缀变成具体 View 的路径,进而得到真正的 View 对象,即物理 View),并将其返回给前端控制器。

View:视图,渲染并返回视图。

注:几大核心组件中,只有 Handler 和 View 是需要开发人员自己编写的,其他组件都是由 Spring 框架提供的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ZBH4444

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

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

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

打赏作者

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

抵扣说明:

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

余额充值