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

    SpringMVC的执行流程无论是在实际应用中还是在面试中都很重要,希望大家都能记住!

    SpringMVC是隶属于Spring Web中的一部分, 属于表现层的框架.

    其使用了MVC架构模式的思想, 将Web层进行职责解耦, 使用请求-响应模型简化Web开发

    SpringMVC通过中央调度器DispatcherServlet,来调用MVC的三大件:Controller、Model、View。

    保证MVC的每一个组件只与DispatcherServlet耦合, 彼此之间独立运行, 降低程序的耦合性。

    具体执行逻辑如下: 

    1. 浏览器提交请求到中央调度器.
    2. 中央调度器将请求转给处理器映射器.
    3. 处理器映射器根据请求, 找到请求对应的处理器, 并将其封装为处理器执行链返回给中央调度器.
    4. 中央调度器根据处理器执行链中的处理器, 找到能够执行该处理器的适配器.
    5. 适配器调用执行处理器.
    6. 处理器将处理结果以及要跳转的视图封装到一个对象ModelAndView中, 并将其返回给处理器适配器.
    7. 适配器将结果返回给中央调度器.
    8. 中央调度器调用视图解析器, 将ModelAndView中的视图名封装为视图对象.
    9. 视图解析器将封装了的视图对象返回给中央处理器.
    10. 中央调度器调用视图对象, 让其渲染, 即进行数据填充, 形成响应对象.
    11. 中央调度器响应浏览器.

    DispatcherServlet

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

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

    HandlerMapping

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

    HandleAdaptor

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

    Handler

    处理器, 即后端控制器. 在DispatcherServlet控制下Handler调用Service层对具体用户请求进行处理.

    Handler一般涉及的是用户具体的业务请求, 充当MVC中的Controller.

    ViewResolver

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

    再生成View视图对象, 最后将处理结果通过页面形式展现给用户.

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

  • 相关阅读:
    tailf、tail -f、tail -F三者区别(转)
    Jackson是线程安全的吗
    SecureCRT同时向多个终端发送命令
    SecureCRT设置和Xshell一样的快速命令集(使用快捷键输入命令和密码)
    SecureCRT配色方案
    Java中判断字符串是否为数字的方法
    MySQL错误:Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL easonjim
    SecureCRT导出服务器列表或配置文件
    java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.SpecialProvider.<init>()
    Badge
  • 原文地址:https://www.cnblogs.com/wangjwei/p/8578733.html
Copyright © 2011-2022 走看看