学习SpringMVC框架的学习笔记【持续更新】

一、回顾MVC

1.1 概述

  • MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。
  • 目的是将数据、业务逻辑、显示分离的方法来组织代码。
  • MVC主要作用是降低了视图与业务逻辑间的双向耦合
  • MVC不是一种设计模式,而是一种架构模式。当然不同的MVC之间存在一定的差异。

  Model(模型):数据模型,提供展示的数据,因此包含数据(Dao)与动作(Service)。

  View(视图):负责进行模型的展示,一般是我们见到的界面。

  Controller(控制器):接收用户请求,委托给模型进行处理(状态改变),处理完毕之后把返回的模型数据返回给视图,由视图负责展示。也就是说控制器充当了调度员的工作。

  最典型的MVC架构模式就是:Jsp + Servlet + JavaBean

1.2 早期MVC的执行流程

  1. 用户发起请求
  2. Servlet接收请求数据,并调用相应的业务逻辑方法
  3. 业务处理完毕之后,返回相应的数据给Servlet
  4. Servlet转向到JSP,并把数据给Jsp且渲染页面

  职责分析:

  Controller(控制器)

  1. 取得表单数据
  2. 调用业务逻辑
  3. 重定向到制定的页面

  Model(模型)

  1. 业务逻辑
  2. 保存数据的状态

  View(视图)

  1. 显示界面

1.3 说明

  常见的服务器端MVC框架有:Struts、SpringMVC、ASP.NET MVC、Zend Framework、JSF

  常见的前端MVC框架有:Vue、Angularjs、react、backbone

  由MVC演进出了另一些模式有:MVVM、MVP等等

  MVVM: Model + View + ViewModel(视图模型:双向绑定)

二、什么是Spring MVC

2.1 概述

  Spring MVC是Spring Framework的一部分,是基于Java实现的轻量级Web框架。

  Spring MVC的底层是Servlet。

  Spring的web框架围绕DispatcherServlet【Servlet】设计。DispatcherServlet的作用是将请求分发到不同的处理器。

2.2 Spring MVC的特点

  1. 轻量级,简单易学
  2. 高效,基于请求响应的MVC框架
  3. 与Spring兼容性好,无缝结合(比如我们可以将SpringMVC中所有要用到的bean,都注册到Spring中)
  4. 约定优于配置
  5. 功能强大,有Restful风格、数据验证、格式化、本地化、国际化、主题、拦截器等等
  6. 简洁灵活

2.3 Spring MVC的执行过程

在这里插入图片描述

2.4 Spring MVC的执行原理

在这里插入图片描述
  图为SpringMVC的一个完整的流程图,实线为SpringMVC框架已经提供好的技术,不需要开发者实现,虚线表示需要开发者实现。

  简要分析执行流程:

  1. DispatcherServlet表示前置控制器,是整个SpringMVC的控制中心。用户发送请求,DispatcherServlet先接收并拦截请求。
  2. HandlerMapping为处理器映射。DispatcherServlet调用HandlerMapping,HandlerMapping根据请求URL寻找Handler。
  3. HandlerExecution表示具体的Handler,其主要作用是根据URL查找控制器。
  4. HandlerExecution将解析后的信息传递给DispatcherServlet,如解析处理器映射等。
  5. HandlerAdapter表示处理器映射器,其按照特定的规则去执行Handler。
  6. Handler则让具体的Controller执行操作。
  7. Controller将具体执行信息返回给HandlerAdapter,如ModelAndView。
  8. HandlerAdapter将视图逻辑名和模型返回给DispatcherServlet。
  9. DispatcherServlet调用视图解析器(ViewResoler)解析HandlerAdapter传过来视图逻辑名。
  10. 视图解析器(ViewResoler)将解析完成的视图逻辑结果传给DispatcherServlet。
  11. DispatcherServlet根据视图解析器解析出的结果,调用具体的视图。
  12. 最终将视图传给用户

  前置控制器、请求分发器(DispatcherServlet)
  Handler(HandlerExecution)
  处理器映射器(HandlerMapping)
  处理器适配器(HandlerAdapter)
  视图解析器(ViewResoler):还有比较优秀的视图解析引擎,模板引擎Thymeleaf、Freemarker。

三、 控制器Controller

3.1 概述

  1. 控制器负责提供访问应用程序的行为,通常通过接口定义和注解两种方式实现。
  2. 控制器负责解析用户的请求并将其转化为一种模型。
  3. 在Spring MVC中,一个控制器可以有多个方法。
  4. 在Spring MVC中,对Controller的配置方式可以有多种。

  注:@RequestMapping注解用于映射url到控制器类或一个特定处理程序的方法。

四、RestFul风格

4.1 概念

  RestFul就是一个资源定位以及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件会更加简洁,更加有层次,更易于实现缓存等机制。

4.2 功能

  • 资源:互联网所有的事物都可以被抽象为资源。
  • 资源操作:使用POST、DELETE、PUT、GET,使用不同的方法对资源进行操作。
  • 以上资源分别对应添加、删除、修改、查询操作。

猜你喜欢

转载自blog.csdn.net/qq_44781435/article/details/114460683
今日推荐