• SpringMVC


    一、结构与流程 

    1.1、简介

    Web 模块 

    Web 模块:提供了基本的 Web 开发集成特性,例如多文件上传功能、使用的 Servlet 监听器的 IOC 容器初始化以及 Web 应用上下文。
    Servlet 模块:提供了一个 Spring MVC Web 框架实现。Spring MVC 框架提供了基于注解的请求资源注入、更简单的数据绑定、数据验证等及一套非常易用的 JSP 标签,无缝与 Spring 其他技术协作。
    WebSocket 模块:提供了简单的接口,用户只要实现响应的接口就可以快速的搭建 WebSocket Server,实现双向通讯。
    Portlet 模块:提供了在 Portlet 环境中使用 MVC 实现,类似 Web-Servlet 模块的功能。

    SpringMVC 执行流程 

    1.用户发起一个 HTTP request 请求,提交到 DispatcherServlet(前端控制器);
    2.DispatcherServlet 请求一个或多个 HandlerMapping(处理器映射器),并返回一个执行链(HandlerExecutionChain)。
    3.DispatcherServlet 将执行链返回的 Handler 信息发送给 HandlerAdapter(处理器适配器);
    4.HandlerAdapter 根据 Handler 信息找到并执行相应的 Handler(Controller);
    5.Handler 执行完毕后会返回给 HandlerAdapter 一个 ModelAndView 对象(Spring MVC的底层对象,包括 Model 数据模型和 View 视图信息);
    6.HandlerAdapter 接收到 ModelAndView 对象后,将其返回给 DispatcherServlet;
    7.DispatcherServlet 接收到 ModelAndView 对象后,会请求 ViewResolver(视图解析器)对视图进行解析;
    8.ViewResolver 根据 View 信息匹配到相应的视图结果,并返回给 DispatcherServlet;
    9.DispatcherServlet 接收到具体的 View 视图后,进行视图渲染,将 Model 中的模型数据填充到 View 视图中的 request 域,生成最终的 View(视图);
    10.View 视图负责将结果显示到浏览器(客户端)。

    1.2、组成结构及作用 

    1.2.1、DispatcherServlet 

    前端控制器,本质上是个Servlet,Spring MVC 的所有请求都要经过 DispatcherServlet 来统一分发。
    Servlet 工作流程 
        1.Web Client 向Servlet容器(Tomcat)发出Http请求。
        2.Servlet容器接收Web Client的请求。
        3.Servlet容器创建一个HttpRequest对象,将Web Client请求的信息封装到这个对象中。
        4.Servlet容器创建一个HttpResponse对象。
        5.Servlet容器调用HttpServlet对象的service方法,把HttpRequest对象与HttpResponse对象作为参数传给 HttpServlet 对象。
        6.HttpServlet调用HttpRequest对象的有关方法,获取Http请求信息。
        7.HttpServlet调用HttpResponse对象的有关方法,生成响应数据。
        8.Servlet容器把HttpServlet的响应结果传给Web Client。

    Servlet 作用域 

    拦截器 与 过滤器 

    1.2.2、HandlerMapping 

    ​处理器映射器,根据请求的 URL 路径,通过注解或 XML 配置,寻找匹配的处理器(Handler)。
    作用:根据请求的url查找Handler
    servlet初始化时,会对 HandlerMappings、HandlerAdapters等做初始化。
    HandlerMapping 初始化时,将映射与 handler(Controller中配置@RequestMapping注解的方法)存到 map 里;处理请求时,从map里取出对应的处理handler。

    1.2.3、HandlerAdapter 

    处理器适配器,根据映射器找到的处理器(Handler),按特定规则执行相关的处理器(Handler)。
    作用:按照特定规则(HandlerAdapter要求的规则)执行Handler。

    1.2.4、Handler 

    处理器(Controller),执行相关的请求处理逻辑,并返回相应的数据和视图信息,将其封装至 ModelAndView 对象中。
    注意:写Handler时按 HandlerAdapter 的要求,适配器才能正确执行Handler。

    1.2.5、View Resolver 

    视图解析器,通过 ModelAndView 中的 View 将逻辑视图名解析成真正的视图 View(如通过一个 JSP 路径返回一个真正的 JSP 页面)。
    作用:进行视图解析,根逻辑视图名解析成真正的视图(view)。

    1.2.6.View 

    ​视图,本身是接口,支持不同的 View 类型(jsp、freemarker、thymeleaf、pdf...)。

  • 相关阅读:
    力扣:168. Excel表列名称(Python3)
    ECM技术学习:卷积跨分量帧内预测模型(Convolutional cross-component intra prediction model)
    如何快速安装MONAI(莫奈)医学标注软件
    「SpringCloud」06 Hystrix断路器
    【八股】Java基础、集合、JVM
    IP地址怎么实现https
    Pycharm安装配置Pyside6
    JVM 系列(4)一看就懂的对象内存布局
    扩充antd的Icon图标库
    数据结构【红黑树模拟实现】
  • 原文地址:https://blog.csdn.net/weixin_42679286/article/details/133072105