【框架篇07】SpringMVC框架-执行流程

53 阅读1分钟

组件

DispatherServlet 前端控制器(查询handler、执行handler)

HandlerMapping 处理器映射器(查询路径(key值路径path,value值类名#方法名),返回HandlerExecutionChain)

HandlerAdaptor 处理器适配器(去执行处理器Handler并处理Handler请求参数和Handler返回值;)

ViewResolver 视图解析器

image.png

DispatherServlet --> handlerMapping

DispatherServlet --> handlerAdaptor

DispatherServlet --> viewResolver

DispatherServlet --> 渲染视图

handlerAdaptor ---> 处理器handler

image.png

springmvc 执行流程知道么?

版本1:视图版本,jsp

  1. 用户发送请求到前端控制器dispatcherServlet
  2. dispatcherServlet收到请求调用HandlerMapping(处理器映射器)
  3. handlerMapping找到具体的处理器,生成处理器对象及处理器拦截器(如果有),再一起返回给DispatcherServlet
  4. DispatcherServlet调用HandlerAdapter(处理器适配器)
  5. HandlerAdapter找到具体的处理器(handler/controller)
  6. controller执行完成后返回modelAndView对象
  7. HandlerAdapter将controller执行结果modelAndView对象返回给DispatcherServlet
  8. DispatcherServlet将modelAndView传给viewReslover(视图解析器)
  9. viewReslover解析后返回具体view(视图)
  10. DispatcherServlet根据view进行渲染视图(将数据模型填充至视频中)
  11. DispatcherServlet响应给用户页面

版本2:前后端开发,接口开发

  1. 用户发送请求到前端控制器dispatcherServlet
  2. dispatcherServlet收到请求调用HandlerMapping(处理器映射器)
  3. handlerMapping找到具体的处理器,生成处理器对象及处理器拦截器(如果有),再一起返回给DispatcherServlet
  4. DispatcherServlet调用HandlerAdapter(处理器适配器)
  5. HandlerAdapter找到具体的处理器(handler/controller)
  6. 方法上添加了@ResponseBody
  7. 通过HttpMessageConverter来返回结果转换为JSON并响应