SpringMVC执行流程

目录

一、SpringMVC 介绍

二、SpringMVC 执行流程

1.发送请求

2.处理器执行

3.返回处理结果

4.处理视图

5.处理结果

6.返回响应

三、组件介绍

HandlerMapping

HandlerAdapter

Handler

ModelAndView

ViewResolver

View


一、SpringMVC 介绍

SpringMVC 是一款基于 Spring 框架的 MVC 框架,它采用了 各种设计模式,包括 FrontController、Dispatcher、ViewHelper 等。同时,SpringMVC 与 Spring 框架集成紧密,可以很方便地与其他 Spring 组件(如 Spring Security)进行整合。

二、SpringMVC 执行流程

SpringMVC 的执行流程可以分为以下几个步骤:

1.发送请求

DispatcherServlet 前端控制器是 SpringMVC 的核心组件之一,它接收客户端的请求并将请求分派到对应的处理器(Handler)进行处理。在接收到请求后,DispatcherServlet 会将请求 URL 传递给 HandlerMapping 映射器进行处理,并根据请求 URL 匹配对应的 HandlerExecutionChain 处理器执行链。HandlerExecutionChain 包含了一个或多个 Interceptor 拦截器和一个 Handler 处理器,拦截器可以在请求处理前后进行一些额外的处理,而 Handler 则负责具体的业务处理。

2.处理器执行

DispatcherServlet前端控制器请求HandlerAdapter适配器执行Handler处理器,HandlerAdapter 适配器是 SpringMVC 中用于执行处理器(Handler)的重要组件。在 HandlerMapper 映射器确定了需要执行的 Handler 处理器之后,HandlerAdapter 就负责根据具体的 Handler 处理器类型,调用相应的方法进行处理。不同的 Handler 处理器类型通常需要不同的处理方式,因此需要不同的 HandlerAdapter 适配器实现来进行适配。

3.返回处理结果

在 HandlerAdapter 适配器执行完 Handler 处理器后,会获得一个 ModelAndView 对象,它包含了处理结果视图的名称和需要在视图中使用的模型数据。这个 ModelAndView 对象将被返回给 DispatcherServlet 前端控制器,以便进行下一步的处理。

4.处理视图

DispatcherServlet请求ViewResolver对ModelAndView进行视图解析,ViewResolver 视图解析器是 SpringMVC 中用于将 ModelAndView 解析为具体视图对象(View)的组件。视图解析器可以根据指定的视图名,通过配置的 ViewResolver 实现类查找对应的视图对象。常用的 ViewResolver 实现类有 InternalResourceViewResolver 等,它们都可以将 ModelAndView 中指定的视图名解析为 JSP 视图对象。

5.处理结果

在经过 ViewResolver 视图解析器的处理后,ModelAndView 对象将被解析为对应的 View 视图对象,即用于渲染视图的具体组件。View 组件可以是 JSP 视图、FreeMarker 模板、JSON 数据等不同形式的响应内容。

6.返回响应

最后一步是前端控制器 DispatcherServlet 对视图对象进行渲染。具体的渲染方式会根据 View 类型的不同而有所差异,例如 JSP 视图的渲染方式需要使用 Servlet API 和 JSP 引擎。渲染完成后,前端控制器将生成的响应数据返回给客户端浏览器进行展示。

三、组件介绍

HandlerMapping

HandlerMapping 用于映射请求 URL 到对应的处理器(Handler)。在 SpringMVC 中,常用的 HandlerMapping 实现包括 BeanNameUrlHandlerMapping、RequestMappingHandlerMapping 等。

HandlerAdapter

HandlerAdapter 用于执行处理器(Handler),它将处理器的执行与前后端的交互分离开来。在 SpringMVC 中,常用的 HandlerAdapter 实现包括 RequestMappingHandlerAdapter、SimpleControllerHandlerAdapter 等。

Handler

Handler 即处理器,它是处理请求的核心组件,通常由 Controller 实现类来充当。处理器可以调用 Service 层、DAO 层等其他组件来获取数据和执行业务逻辑,最终返回一个 ModelAndView 对象。

ModelAndView

ModelAndView 是处理器返回的结果对象,它包含了视图名和需要在视图中渲染的模型数据。

ViewResolver

ViewResolver 用于将视图名解析为对应的视图对象(View)。在 SpringMVC 中,常用的 ViewResolver 实现包括 InternalResourceViewResolver(用于解析 JSP 视图)、FreeMarkerViewResolver(用于解析 FreeMarker 模板)等。

View

View 即视图,它用于渲染模型数据,最终生成响应内容。在 SpringMVC 中,常用的 View 实现包括 JstlView(用于渲染 JSP 视图)、FreeMarkerView(用于渲染 FreeMarker 模板)等。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值