程序员社区

?【SpringMVC专题】「原理系列」执行流程执行处理方式

**具体执行逻辑如下: **

1.浏览器提交请求到中央调度器.(dispatcherServlet)

2.中央调度器将请求转给处理器映射器.(handlerMapping)

3.处理器映射器找到请求对应的处理器, 并将其封装为处理器执行链返回给中央调度器.(handlerExecuteChain)

4.中央调度器根据处理器执行链中的处理器, 找到能够执行该处理器的适配器.(handlerAdapter)

5.适配器调用执行处理器.(handlerAdapter)

6.处理器将结果和要跳转的视图封装到一个对象ModelAndView中, 将其返回给处理器适配器.

7.适配器将结果返回给中央调度器.

8.中央调度器调用视图解析器, 将ModelAndView中的视图名封装为视图对象.

9.视图解析器将封装了的视图对象返回给中央处理器.

10.中央调度器调用视图对象, 让其渲染, 即进行数据填充, 形成响应对象.

11.中央调度器响应浏览器.

?【SpringMVC专题】「原理系列」执行流程执行处理方式插图

DispatcherServlet

   中央调度器, 它用来调用诸如**处理器映射器, 适配器, 视图解析器**等组件处理用户请求.

** 中央调度器的存在降低了组件之间的耦合.**

HandlerMapping

** 处理器映射器, 负责根据用户请求找到对应的Handler, 即处理器, 并将处理器封装为处理器执行链(HandlerExecuteChain)返回给中央调度器.**

HandleAdaptor

** 适配器模式, 可以扩展适配器来对更多类型的处理器进行执行, 中央调度器根据不同的处理器自动选择适配器, 以执行处理器.**

Handler

  处理器, 即后端控制器. 在DispatcherServlet控制下Handler调用Service层对具体用户请求进行处理.Handler一般涉及的是用户具体的业务请求, 充当MVC中的Controller.

ViewResolver

  视图解析器, 负责将处理结果生成View视图, ViewResolver首先将逻辑视图名解析为物理视图名(具体页面地址).

 再生成View视图(html/json/xml), 返回给中央处理器, 由中央处理器将结果通过页面形式展现给用户.

SpringMVC中提供了多种View视图类型, 例如: JstlView, RedirectView等等.

?【SpringMVC专题】「原理系列」执行流程执行处理方式插图1
?【SpringMVC专题】「原理系列」执行流程执行处理方式插图2
?【SpringMVC专题】「原理系列」执行流程执行处理方式插图3
?【SpringMVC专题】「原理系列」执行流程执行处理方式插图4
赞(0) 打赏
未经允许不得转载:IDEA激活码 » ?【SpringMVC专题】「原理系列」执行流程执行处理方式

一个分享Java & Python知识的社区