• springmvc处理一个请求的全流程


    首先,用户的浏览器发出了一个请求,这个请求经过互联网到达了我们的服务器。

    Servlet 容器首先接待了这个请求,并将该请求委托给 DispatcherServlet 进行处理。

    接着 DispatcherServlet 将该请求传给了处理器映射组件 HandlerMapping,并获取到适合该请求的拦截器和处理器。

    在获取到处理器后,DispatcherServlet 还不能直接调用处理器的逻辑,需要进行对处理器进行适配。

    处理器适配成功后,DispatcherServlet 通过处理器适配器 HandlerAdapter 调用处理器的逻辑,并获取返回值 ModelAndView。

    之后,DispatcherServlet 需要根据 ModelAndView 解析视图。解析视图的工作由 ViewResolver 完成,若能解析成功,ViewResolver 会返回相应的视图对象 View。

    在获取到具体的 View 对象后,最后一步要做的事情就是由 View 渲染视图,并将渲染结果返回给用户。

    核心组件:

    组件

    说明

    DispatcherServlet

    Spring MVC 的核心组件,是请求的入口,负责协调各个组件工作

    HandlerMapping

    内部维护了一些 <访问路径, 处理器> 映射,负责为请求找到合适的处理器

    HandlerAdapter

    处理器的适配器。Spring 中的处理器的实现多变,比如用户处理器可以实现 Controller 接口,也可以用 @RequestMapping 注解将方法作为一个处理器等,这就导致 Spring 不止到怎么调用用户的处理器逻辑。所以这里需要一个处理器适配器,由处理器适配器去调用处理器的逻辑

    ViewResolver

    视图解析器的用途不难理解,用于将视图名称解析为视图对象 View。

    View

    视图对象用于将模板渲染成 html 或其他类型的文件。比如 InternalResourceView 可将 jsp 渲染成 html。

    参考:https://cloud.tencent.com/developer/article/1156025

  • 相关阅读:
    tee:结果输出到文件同时也作为往后的输入信息
    hexdump:查看文件头部信息,以十六制形式查看文件
    删除大文件方法
    rename:批量更改文件名
    求从1加到100的结果
    简书里面的面试题
    开源好网站
    ubuntu 14上安装mysql离线包
    单点登录原理与简单实现---转
    Revit API 判断一个构件在某个视图中的可见性
  • 原文地址:https://www.cnblogs.com/cuiqq/p/12083724.html
Copyright © 2020-2023  润新知