• 什么是SpringMVC?它有哪些优点?又是如何执行的?


    目录

    什么是MVC?

    SpringMVC的优点

    Spring的执行流程

     时序图

     执行图


     经典MVC模式中,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。

    它是基于MVC开发模式的框架,用来优化控制器。它是spring家族的一员,它也具备IOC和AOP。

    什么是MVC?

     它是一种开发模式,它是模型视图控制器的简称。所有的web应用都是基于MVC开发
    M:模型层,包含实体类,业务逻街层,数据访问层
    V:视图层,html,javascript,vue等都是视图层,用来显现数据
    C:控制器,它是用水接收客户端的请求,并返回响应到客户端的组件,servlet就是组件

     

    SpringMVC:是基于spring的一个框架, 实际上就是spring的一个模块, 专门是做web开发的。
               理解是servlet的一个升级。

    web开发底层是servlet , 框架是在servlet基础上面加入一些功能,让你做web开发方便。

    SpringMVC就是一个Spring。 Spring是容器,ioc能够管理对象,使用, @Component, @Repository, @Service, @Controller
     SpringMVC能够创建对象, 放入到容器中(SpringMVC容器), springmvc容器中放的是控制器对象,我们要做的是使用@Contorller创建控制器对象, 把对象放入到springmvc容器中, 把创建的对象作为控制器使用这个控制器对象能接收用户的请求, 显示处理结果,就当做是一个servlet使用。使用@Controller注解创建的是一个普通类的对象, 不是Servlet。 springmvc赋予了控制器对象一些额外的功能。


    web开发底层是servlet, springmvc中有一个对象是Servlet : DispatherServlet(中央调度器)
    DispatherServlet: 负责接收用户的所有请求, 用户把请求给了DispatherServlet,之后DispatherServlet把请求转发给我们的Controller对象, 最后是Controller对象处理请求。

    index.jsp-----DispatherServlet(Servlet)----转发,分配给---Controller对象(@Controller注解创建的对象)
     main.jsp                                                   MainController
     addUser.jsp                                             UserController

    MVC指MVC模式的某种框架,它强制性地使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。最典型的MVC就是JSP + servlet + javabean的模式。

     

    SpringMVC的优点

    1. 轻量级。基于MVC的框架
    2. 易于上手,容易理解,功能强大
    3. 它具备IOC与AOP
    4. 完全基于注解开发

    Spring的执行流程

     时序图

      执行图

     简单的说就是首先是视图向控制器发送请求,控制器再将业务请求发送给模型,然后模型处理请求业务并把结果返回给控制器,控制器根据结果再选择视图。

    1.用户点击某个请求路径,发起一个HTTP request请求,该请求会被提交到DispatcherServlet(前端控制器);

    2.由DispatcherServlet请求一个或多个HandlerMapping(处理器映射器),并返回一个执行链(HandlerExecutionChain).

    3.DispatherServlet将执行链返回的Handler信息发送给HandlerAdapter(处理器适配器);

    4.HandlerAdapter根据Handler信息找到并执行相应的Handler(常称为Controller);

    5.Handler执行完毕后会返回给HandlerAdapter一个ModelAndView对象(SpringMVC的底层对象,包括Model数据模型和View视图信息)

    6.HandlerAdapter接收到ModelAndView对象后,将其返回给DispatcherServlet.

    7.DispatcherServlet接收到ModelAndView对象后,会请求ViewResolver(视图解析器)对视图进行解析;

    8.ViewResolver根据View信息匹配到相应的视图结果,并返回给DispatcherServlet;

    9.DispatcherServlet接收到具体的View视图后,进行视图渲染,将Model中的模型数据填充到View视图中的request域,生成最终的View(视图)

    10.视图负责将结果显示到浏览器(客户端).


     

     

  • 相关阅读:
    MPN – 制造零件号
    Tensorflow Lite移动平台编译
    Vue中如何进行移动端手势操作
    JAVA面向对象基础
    pytest-bdd快速示例和问题解决
    Redis
    如何使用vue的计算属性来处理数据计算?
    我赢助手之引流篇:短视频私域、自有鱼塘背后的底层逻辑是什么?
    顺利通过论文查重检测的小技巧
    语音前处理技术在会议场景中的应用及挑战
  • 原文地址:https://blog.csdn.net/weixin_48826996/article/details/126011410