SpringMVC|学习笔记

简介: 快速学习SpringMVC

开发者学堂课程【高校精品课-厦门大学 -JavaEE 平台技术SpringMVC学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/80/detail/15911


SpringMVC


内容介绍:

一、SpringMVC的使用

二、SpringMVC是如何处理前端的请求以及回应

三、在 SpringMVC 中通过一系列的注解以及控制器的方法处理 url 。

四、patch的使用


一、SpringMVC的使用

1、说明

SpringMVC 采用了松散的可拔插的组件结构,通过用注解的方式使得 Java 的类变成控制器,该控制器不需要实现任何接口。

2、SpringMVC 的框架

SpringMVC 可支持 Rest 风格的控制器,它的整个结构围绕着 DispatchServlet来展

开的。

DispatchServlet 是 SpringMVC 的框架, SpringMVC 的框架已经做好了的 Servlet 对象,它会放在Servlet的容器中间,所有客户端发来的请求都是通过 DispatchServlet 分发给在 SpringMVC 框架中间的其他控制器对象。所以 DispatchServlet 是 SpringMVC 的中枢,接受客户端发来的 HTTP Request 分发给各控制器对象,会把从控制器处理结果产生 HTTP Request 返回给客户端。

 

二、SpringMVC是如何处理前端的请求以及回应

1、处理前端请求

当客户端发起请求到 DispatchServlet 时,DispatchServlet 会把请求交给 Handle mapping 观察用哪个 Controller来负责这个请求。Handle mapping会根据配置信

息,目前主要时根据注解在整个 SpringMVC 中有哪个 Controller 来定义的 url 和客户端发送的 url 一致。

image.png

2、回应流程

Handle mapping 处理器的映射器会把 Controller 返回给前端控制器,前端控制器则会执行对应 Controller 的方法,执行完成后,会去调后面service层的方法和dao层的方法完成整个逻辑。当第二遍完成后会返回一个 Model and Logical View Name 的结构,其中既包含了所返回的数据也包含了数据所需要展现的视图。这称

之为 Model and Logical View Name 的结构。

DispatchServlet 会把其中的view提取出来,去从View Resolver中应该由哪一个视图来完成数据的渲染,所以它会根据视图的名称,返回不同视图的解析器,解释成为一个view对象,再返回给 DispatchServlet 把模型数据和视图渲染在一起,也就是把模型数据填入视图再返回给客户端。客户端拿到了有数据的视图,这是传统的方式。如今我们使用 restful 风格时,服务器不需要向前端返回一个已渲染好的界面,只需把控制器层所返回的数据直接包装成 json 的格式通过 htv 的 response 返

回给客户端,所以View Resolver以及视图的过程在 restful 是没有的。

DispatchServlet 找 Handle mapping 去看url由哪个控制器来负责,控制器的哪个

方法来负责,去调对应控制器的方法,把返回的值丢还给前端完成整个过程。


三、在 SpringMVC 中通过一系列的注解以及控制器的方法处理 url 。

今天大量使用的是 restful 的控制器,所以用 @RestController 来标识控制器是提供 restful 风格 api 的控制器,对于 Controller中的每一个方法包括 Controller 本

身,我们都可以用 @GetMapping 、 @PostMapping 、 @PutMapping 、

@PatchMapping 、 @DeleteMapping  去标识它是什么 url 以及是哪一种请求方式。

image.png

也可用第五种方式 @RequestMapping 这种方式不指定用哪种请求,通常用来定义

在 Controller 类前,来表示类所有的方法共同的路径。

 

四、patch的使用

Patch 是用来修改某个对象的特定属性,但如今习惯使用 put 的请求完成对象属性的修改。当在用 put 请求时对象中的属性是空的那说明这个属性无需修改,要修改的是 put 对象中不为空的属性。所以在定义对象属性时往往采用对象型,如不用

int 去定义整数型而是用 integer 对象对应属性方便通过 put 请求完成对象对于部分属性的修改。

相关文章
Idea 进行远程服务器debug操作
Idea 进行远程服务器debug操作
1231 0
|
存储 SQL 监控
基于 IoT物联网 + 表格存储DB + DataV 搭建实时环境监控大屏
基于 IoT物联网 + 表格存储DB + DataV 搭建实时环境监控大屏
2653 15
|
存储
数据结构之顺序表详解(一)
今天给大家带来的是数据结构的顺序表结构,以及与其的有关功能的实现,在数据结构的这部分内容,可能有些知识点有点难以理解,在需要时小编会配合图画,让大家能够更好的理解,那么下面就让我们直接步入正题吧。
847 0
【C++】-- STL之vector模拟实现(二)
【C++】-- STL之vector模拟实现
271 0
|
数据采集 小程序
关于列表转字符串这个过程的曲折
关于列表转字符串这个过程的曲折
178 0
关于列表转字符串这个过程的曲折
|
弹性计算 JSON API
|
Swift iOS开发
Swift讲解专题六——流程控制
Swift讲解专题六——流程控制
170 0
|
Java 关系型数据库 数据库
Spring 事务传播机制
Spring 事务传播机制 前言 Spring在TransactionDefinition接口中规定了7种类型的事务传播行为。事务传播行为是Spring框架独有的事务增强特性,他不属于的事务实际提供方数据库行为。
1578 0