• SpringMVC的工作流程


    一.SpringMVC简介
    SpringMVC是一种基于Spring实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,使用了MVC架构模式的思想,将web层进行职责解耦,并管理应用所需对象的生命周期。
    M 代表 模型(Model) :模型就是数据,dao、bean
    V 代表 视图(View) : 就是网页, JSP,用来展示模型中的数据
    C 代表 控制器(controller) 控制器的作用就是把不同的数据(Model),显示在不同的视图(View)上
    SpringMVC提供了总开关DispatcherServlet来调用其他组件,处理用户的请求;请求处理映射器(Handler Mapping)和处理适配器(Handler Adapter),视图解析器(View Resolver)进行视图管理;动作处理器Controller接口(包含ModelAndView,以及处理请求响应对象request和response),配置灵活,支持文件上传,数据简单转化等强大功能。
    二、工作流程
    在这里插入图片描述
    1.客户端请求提交到DispatcherServlet
    2.DispatcherServlet接收到请求后、将提交的信息交给处理器映射器(HandlerMapping)
    3.HandlerMapping根据用户的url请求、匹配该url的Handler(Controller),并返回一个执行链
    4.DispatcherServlet调用HandlerAdapter(处理器适配器)
    5.HandlerAdapter经过适配调用具体的处理器(Controller)扫描
    6.Controller扫描完成后返回一个ModelAndView
    7.HandlerAdapter将Controller扫描结果(ModelAndView)返回给DispatcherServlet
    8.DispatcherServlet将ModelAndView请求试图解析器(ViewReslover)进行解析
    9.ViewReslover解析后返回具体的View给前端控制器DispatcherServlet
    10.DispatcherServlet将view进行渲染试图(即将模型数据填充到视图中)
    11.DispatcherServlet将页面响应给个用户

    SpringMVC的拦截器与 Servlet 的 Filter 有相似之处,比如二者都是 AOP 思想的体现,都能实现权限检查,日志记录等。不同的是:
    ● 使用范围不同: Filter 是 Servlet 规范规定的,只能用于 Web 程序中。而拦截器既可以用于 Web 程序,也可以用于 Application 、 Swing 程序中。
    ● 规范不同:Filter 是在 Servlet 规范中定义的,是 Servlet 容器支持的。而拦截器是在 Spring 容器内的,是 Spring 框架支持的。
    ● 使用的资源不同:同其他代码块一样,拦截器也是一个 Spring 的组件,归 Spring 管理,配置在 Spring 文件中,因此能使用 Spring 里的任何资源、对象,例如 Service 对象、数据源、事务管理等,通过 IOC 注入到拦截器即可;而 Filter 则不能。
    ● 深度不同:Filter 只在 Servlet 前后起作用。而拦截器能够深入到方法前后、异常抛出前后等,因此拦截器的使用具有更大的弹性。所以在 Spring 架构的程序中,要优先使用拦截器。

  • 相关阅读:
    eclipse启动tomcat无法访问
    Vue.js核心技术解析与uni-app跨平台实战开发学习笔记 第5章 Vue.js组件 5.5 Vue获取DOM元素的方法(ref)
    LinuxC实现FTP云盘
    大学生数学建模赛题解析及优秀论文-2021电工杯A题高铁牵引供电系统运行数据分析及等值建模(附Python代码)
    【微处理器】基于FPGA的微处理器VHDL开发
    STM32CubeMX学习笔记-USART_DMA
    【基础算法】圆周率的多种方法求算 & C++实现
    ACP知识串联
    ES6之函数的扩展二
    Go语言入门心法(十二): GORM映射框架
  • 原文地址:https://blog.csdn.net/weixin_54420332/article/details/125999585