zoukankan      html  css  js  c++  java
  • SpringMVC执行流程

    MVC

    在SpringMVC中,MVC三部分的作用如下:

    01

    执行流程

    具体到执行流程上,SpringMVC主要依赖了HandlerMapping 处理器映射器、HandlerAdapter 处理器适配器以及 ViewReslover 视图解析器三个组件。

    SpringMVC执行流程示意图如下:

    02

    图中将SpringMVC的执行流程分成了11个步骤:

    1. 用户发送请求至前端控制器 DispatcherServlet。
    2. DispatcherServlet 收到请求调用 HandlerMapping 处理器映射器。
    3. 处理器映射器根据请求 url 找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给 DispatcherServlet。
    4. DispatcherServlet 通过 HandlerAdapter 处理器适配器调用处理器。
    5. HandlerAdapter 执行处理器(handler,也叫后端控制器)。
    6. Controller 执行完成返回 ModelAndView。
    7. HandlerAdapter 将 handler 执行结果 ModelAndView 返回给 DispatcherServlet。
    8. DispatcherServlet 将 ModelAndView 传给 ViewReslover 视图解析器。
    9. ViewReslover 解析后返回具体 View 对象。
    10. DispatcherServlet 对 View 进行渲染视图(即将模型数据填充至视图中)。
    11. DispatcherServlet 响应用户。
       

    相关组件

    这里对用到的组件在进行一个汇总:

    DispatcherServlet:前端控制器

    用户请求到达前端控制器,它就相当于 MVC 模式中的 C,DispatcherServlet 是整个流程控制的中心,由它调用其它组件处理用户的请求,dispatcherServlet 的存在降低了组件之间的耦合性。

    HandlerMapping:处理器映射器

    HandlerMapping 负责根据用户请求找到 Handler 即处理器,SpringMVC 提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。

    Handler:处理器

    Handler 是继 DispatcherServlet 前端控制器的后端控制器,在 DispatcherServlet 的控制下Handler 对具体的用户请求进行处理。

    由于 Handler 涉及到具体的用户业务请求,所以一般情况需要程序员根据业务需求开发Handler。

    HandlAdapter:处理器适配器

    通过 HandlerAdapter 对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。

    View Resolver:视图解析器

    View Resolve r负责将处理结果生成 View 视图,View Resolver 首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成 View 视图对象,最后对 View 进行渲染将处理结果通过页面展示给用户。

    View:视图

    SpringMVC 框架提供了很多的 View 视图类型的支持,包括:jstlView、freemarkerView、pdfView 等。我们最常用的视图就是jsp。

  • 相关阅读:
    【docker】win10安装docker教程
    【大数据】hive 删除临时文件 .hive-staging_hive
    【PostgreSql】生成数据字典
    【python3】基于scrapyd + scrapydweb 的可视化部署
    【python3】将视频转换为代码视频
    博客转移,永久退出博客园
    对dataframe中某一列进行计数
    解决mac上matplotlib中文无法显示问题
    在Jupyter notebook中使用特定虚拟环境中的python的kernel
    ubuntu18.04里更新系统源和pip源
  • 原文地址:https://www.cnblogs.com/amunote/p/10398459.html
Copyright © 2011-2022 走看看