• SpringMVC工作流程


    SpringMVC 总结

    加依赖 spring-webmvc和javax.servlet-jsp,jsp-api

    SpringMVC 工作流程

    在这里插入图片描述

    前端发送请求非中央控制器(DispatcherServlet),请求转发给处理映射器(HandlerMapping),处理映射器将查找到当前请求由哪个处理器去处理以及会经过哪些拦截器,将找到的处理器和拦截器封装为过滤链(HandlerExecutionChain)返回给中央控制器,在将过滤链转发给处理适配器(HandlerAdapter),执行处理器的方法,执行过滤链,完成请求参数封装和json格式转换最终返回一个ModelandView 给中央控制器,在将modelandview发给视图解析器(ViewResovler)解析,具体是中央控制器的render方法,返回一个view对象,再将view对象发给View,调用View中的render的方法完成页面的渲染,将渲染结果返回游览器

    处理映射器 HandlerMapping

    配置处理器映射器 HandlerMapping

    处理器映射器的作用,就是根据当前请求的 URL 地址,找到对应的 Controller

    例如发送一个请求 http://localhost:8080/web01/hello,处理器映射器自动识别出请求路径是 /hello,然后据此找到这个请求应该由哪一个 controller 来处理

    BeanNameUrlHandlerMapping 表示根据 bean 的名称来映射请求路径,即如果请求的地址是 /hello,那么 SpringMVC 就会自动去查找一个名为 /hello 的 bean 去处理当前请求。

    处理适配器 HandlerAdapter

    在前面的步骤中,我们已经找到了当前请求应该由哪个 controller 来处理。接下来就是去调用 controller 中的方法,具体的调用就要通过 HandlerAdapter 来调用。
    由于 controller 有很多种不同的定义方式,不同的定义方式最终定义出来的 controller 它的调用方式也不同,就导致不同的 controller 执行的方式不一样,通过 HandlerAdapter 可以自动适配不同 controller 的调用。

    即,你怎么定义 controller,就要提供一个对应的 handlerAdapter

    如果 controller 的定义是通过实现 HttpRequestHandler 接口来做的,那么这个 controller 的调用就需要通过HttpRequestHandlerAdapter 来实现。

    视图解析器中的 prefix+suffix+代码中的视图名成,组成了完整的视图路径。

    中央控制器 DispatcherServlet 是 SpringMVC 的大脑
    mvc架构

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gZWgqtgX-1667378436364)(C:\Users\谢顺\AppData\Roaming\Typora\typora-user-images\image-20220705192532720.png)]

    拦截器

    和过滤器的区别:

    • 执行时机:拦截器晚于过滤器。
    • 拦截器是一种 AOP 风格的过滤器。
  • 相关阅读:
    利用ROS camera_calibration对usb相机标定
    Linux - 系统调用
    点成分享 | 一文读懂什么是微流控芯片
    Java————二叉树
    Appium 移动端自动化测试,触摸(TouchAction) 与多点触控(MultiAction)
    Prometheus告警
    java并发问题记录
    CF - C. Card Game(博弈,递推)
    Cannot install Microsoft Office 64-bit after removing Office 32-bit 卸载微软之前版本
    真香!宝藏学习方式还可以这样,家人们绝不能错过
  • 原文地址:https://blog.csdn.net/Xs943/article/details/127654367