开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第12天
请求映射方式的分类
基于注解风格的Spring MVC,通过@RequestMapping注解指定请求映射的URL路径。URL路径映射常用的方式有:
- 基于请求方式的URL路径映射
- 基于Ant风格的URL路径映射
- 基于RESTful风格的URL路径映射
基于请求方式的URL路径映射
我们之前的博文中提到过,可以使用@RequestMapping注解的method属性来限定当前方法匹配哪种类型的请求方式。
除了可以使用@RequestMapping注解来限定客户端的请求方式之外,从Spring4.3版本开始,还可以使用组合注解来完成客户端请求方式的限定。组合注解简化了常用的HTTP请求方式的映射,并且更好的表达了被注解方法的语义
组合注解:
- @GetMapping:匹配GET方式的请求
- @PostMapping:匹配POST方式的请求
- @PutMapping:匹配PUT方式的请求
- @DeleteMapping:匹配DELETE方式的请求
- @PatchMapping:匹配PATCH方式的请求
例:
@GetMapping(value="/myController")
public void sayHi(){
//...
}
这样注解我们就可以用组合注解来替代@RequestMapping注解,省去method属性,简化代码
基于Ant风格的URL路径映射
Spring MVC支持Ant风格的URL路径映射,所谓Ant风格其实就是一种通配符风格,可以在处理器映射路径中使用通配符对访问的URL路径进行关联。
Ant风格的通配符有三种:
- ? 匹配任意单字符—— /ant?表示可以匹配/ant1、/ant2等后面加一个任意字符的路径
-
- 匹配0或者任意数量的字符——/ant/表示可以匹配/ant/后接任意数量的任意字符的路径,如果是//ant,则字符数不能为0
- ** 匹配0或者多级目录——/ant/**表示可以匹配/ant/后接任意层数的目录
如果当映射路径中有多个通配符,导致冲突,那么路径会遵守最长匹配原则去匹配
比如:/ant/a/path同时满足/**/path和/ant//path匹配规则,但最终会匹配/ant//path路径
基于RESTful风格的URL路径映射
REST是一种网络资源的访问风格,规范了对网络资源的访问方式。
REST所访问的网络资源可以是一段文本、一首歌曲、一种服务,总之就是一个具体的存在。每个网络资源都有一个URI指向它,要获取这个资源,访问它的URI就可以,因此URI即为每一个资源的独一无二的标识符
RESTful是按照REST风格访问网络资源,简单来说,RESTful就是把请求参数变成请求路径的一种风格。
传统风格:
RESTful风格:
将动词findUserById变成了user名词
将参数?id=1变成了/id/1
RESTful风格在HTTP请求中,通过GET、POST、PUT和DELETE4个动词对应四种基本请求操作,具体如下所示:
- GET——获取资源
- POST——新建资源
- PUT——更新资源
- DELETE——删除资源
使用RESTful风格的优势就在于路径的书写比较简便,并且通过地址无法得知要做何种操作,可以隐藏资源的访问行为