Spring MVC 工作流程

Handler是特定工具,HandlerMapping是找到特定的工具,HandlerAdapter是使用工具的人

发送请求->

中央控制器
    (dispatcherServlet)(该控制器会过滤出哪些请求可以访问Servlet、哪些不能访问)->

处理器映射器
    (handlerMapping:通过HandlerMapping完成url到controller映射的组件,并返回handlerExecutionChain)
    (handlerExecutionChain包含handlerIntercepter:处理器拦截器,handler:处理器对象)->

    HandlerMapping接口:
        HandlerExecutionChain是通过HandlerMapping的getHandler(HttpServletRequest request)方法返回的。
        继承该接口的类是来实现请求和handler对象的映射关系的。

    HandlerExecutionChain类:
        这个类由一个Handler和若干的HandlerInterceptor构成。将拦截器和Handle组合起来执行,即对Handle进行了包装。

中央控制器->

处理器适配器
    (handlerAdapter:用于适配,执行处理器)(dispatcherServlet根据Handler找到handlerAdapter)->

处理器
    (handler:处理业务,并返回modelAndView给handlerAdapter)->

处理器适配器
    (返回modelAndView给dispatcherServlet)->

中央控制器->

视图解析器
    (viewResolver:解析视图,并返回view)
    (ViewResolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象)->

中央控制器->

渲染视图(对View进行渲染),将处理结果通过页面展示给用户

原文地址:https://www.cnblogs.com/loveer/p/11473846.html