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 请求完成对象对于部分属性的修改。

相关文章
|
设计模式 前端开发 Java
SpringMVC系列(一)之SpringMVC入门详细介绍
SpringMVC系列(一)之SpringMVC入门详细介绍
|
6月前
|
前端开发 Java 应用服务中间件
|
存储 设计模式 前端开发
SpringMvc入门
SpringMvc入门
67 0
|
缓存 前端开发 Java
|
前端开发 Java fastjson
|
XML JSON 移动开发
|
前端开发 Java
下一篇
DataWorks