• 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 架构的程序中,要优先使用拦截器。

  • 相关阅读:
    淘天集团联合爱橙科技开源大模型训练框架Megatron-LLaMA
    windows编程基础概念
    一行代码解决CoreData托管对象属性变更在SwiftUI中无动画效果的问题
    深入源码!详解MultipartFile
    html5+css简易实现图书网联系我们页面
    【Spring Boot | 第一篇】Spring Boot 原理
    Nodejs 第四十一章(项目架构MVC,IoC,DI)
    音频基础模型LTU(Listen, Think, and Understand)
    删除集合中的指定元素A.discard(B)A.remove(B)
    sql性能优化以及性能测试
  • 原文地址:https://blog.csdn.net/weixin_54420332/article/details/125999585