• MVC模式简介


    Java知识点总结:想看的可以从这里进入

    SpringMVC

    1、MVC模式


    1.1、MVC简介

    MVC,全称是 Model-View-Controller(模型-视图-控制器),它是一种设计的规范,是一种架构的模式,广泛的应用于各类语言的开发。

    • Model模型:提供数据和行为

      • 一种是业务处理Bean:即Dao和Service
      • 一种是实体类Bean
    • View视图:一般就是界面,即jsp、html等,作用是与用户进行交互,展示数据

    • Controller控制器:接收用户请求,交给业务层处理,再把处理后的模型数据响应给视图,即Servlet、Controller

    还记得我们学习WEB开发的时吗,它整体的流程就是用户通过客户端发送请求到服务器,然后服务器根据请求中的数据判断要用那个Servlet处理,servlet再调用service处理业务逻辑,service需要什么数据就用dao去数据库获取,最后servlet再将数据响应回前端,这就是 web的基本流程,而MVC 就相当于把这一些流程按照业务逻辑、数据、显示 等等按照一定的规则进行分离,从而达到降低了业务逻辑和视图之间的双向耦合。

    MVC的形成历程:

    • 最早使用response一行一行将HTML标签等内容输出到浏览器中,这太费力

    • Model1:后来使用 jsp+JavaBean结合,好了很多,解决了HTML无法动态显示等问题,但模块之间耦合性强,代码重复难以复用,前后端互相依赖,无法独立测试。

      jsp需要获取请求,处理跳转显示、还要连接数据等等,结构很乱,如果大量的jsp之间互相调用,想想就害怕。

      image-20210530160250816
    • Modle2:后面产生了基于 Servlet 的 MVC 模式:Java Bean(Model)+JSP(View)+Servlet(Controller)

      ​ 增加了servlet层(负责获取用户请求, 连接模型层和视图层, 对整个业务流程进行控制,调用JavaBean封装处理数据,调用JSP显示页面),使得前后端有一定的分离,而且后端的大量代码可以复用。

      ​ JSP只负责展示/响应对请求处理的结果

      ​ JavaBean:封装数据、访问数据库

      这一时期很多经典框架也随之产生,Struts1/2、Hibernate都能,但是随着手机、平台等兴起,前后端的数据大多需要JSON格式,对于JSP的依赖大大降低,所以这种模式也渐渐被取代

      image-20210530161530075
    • MVC:Model-View-Controller结构形成

    1.2、SpringMVC

    SpringMVC是Spring的一个子项目,是 Spring 为表述层开发提供的一整套完备的解决方案。

    SpringMVC架构:随着NoSQL、mybatis等兴起,Modle2的结构慢慢的不再那么好用,这是SpringMVC开始取代之前的框架成为主流,它的特色是结构更加松散,可以使用各种视图:JSP、HTML、JSON、PDF等,可以满足电脑、手机、平台各类需求,它可以在service层使用事务、还能访问NoSQL,所以SpringMVC逐渐成为主流的MVC框架。

    image-20220914162358216

    它是基于MVC设计模式的轻量级框架,是 Spring 框架提供的轻量级 Web 开发框架,是 Spring 为表示层(UI)开发提供的一整套完备的解决方案,其核心在于流程控制,它基于 Servlet技术,提供了DispatcherServlet最为核心控制器,``SpringMVC就是围绕DispatcherServlet而展开的,另外又指定了狠多不同结构,以适应各方面的需求。

    组件描述
    DispatcherServlet前端控制器,Spring MVC 流程控制中心,本质就是一个 Servlet,负责将所有的请求进行统一分发,对各个组件进行统一调度
    HandlerMapping处理器映射器,根据请求的 url、method 等信息查找相应的 Handler。
    Handler处理器,也就是 Controller(控制器)。它可以在 DispatcherServlet 的控制下,对具体的用户请求进行处理。
    HandlerAdapter处理器适配器,负责调用具体的控制器方法,对用户发来的请求来进行处理。
    ViewResolver视图解析器,其职责是对视图进行解析,通过 ModelAndView 对象中的 View 信息对逻辑视图名进行解析,将其解析成真正的视图 View
    View视图,它作用是将模型(Model)数据通过页面展示给用户。(这个是开发人员提供)

    优点:Spring MVC 是 Spring 家族的一员,可以与 IoC 容器等 Spring 基础设施无缝对接,且支持各种视图技术(JSP、Thymeleaf、 HTML、FreeMaker等等 ) ,各个结构松散,组件化程度高,可插拔式组件即插即用,想要使用什么功能,配置相应组件即可,尤其适合现代大型、超大型互联网项目的开发。

  • 相关阅读:
    说说C++的默认构造函数
    渲染器的设计
    oracle从入门到精通第五篇(视图|表空间|索引|存储过程|触发器|复制表)
    一文2000字从0到1用Jmeter全流程性能测试实战
    Spring Boot文档阅读笔记-Scheduling Tasks
    Unrecognized option ‘stream_loop‘.(版本不匹配,利用make编译安装)
    B. Comparison String
    数组去重方法总结(记录)
    阈值同态加密在隐私计算中的应用:解读
    C#调用Python脚本
  • 原文地址:https://blog.csdn.net/yuandfeng/article/details/126909255