1.作用
将指定 URL 的请求绑定到一个特定的方法或类上,从而实现对请求的处理和响应。
RequestMapping注解只能出现在类上或者方法上。
2.value属性
Ant风格的value(模糊匹配路径):
1)?,代表任意一个字符
2)*,代表0到N个任意字符
3)**,代表0到N个任意字符,并且路径中可以出现路径分隔符 /;且只能出现路径末尾
value中的占位符:
传统方式:uri?name1=value1&name2=value2&name3=value3
Ant风格:uri/value1/value2/value3
在value属性中使用占位符使得在控制器中获取请求中的数据:如:
/login/{id}/{username}/{password}
3.method属性
method规定了前端请求的方式,多一个属性,就相当于多了一个映射的条件,如果value和method属性都有,则表示只有前端发送的请求路径 + 请求方式都满足时才能与控制器上的方法建立映射关系,只要有一个不满足,则无法建立映射关系。
3.1.衍生Mapping:
1)@PostMapping:默认采用POST处理方式
2)@GetMapping:要求前端必须发送get请求
3)@PutMapping:要求前端必须发送put请求
4)@DeleteMapping:要求前端必须发送delete请求
5)@PatchMapping:要求前端必须发送patch请求
3.2.web的请求方式:
1)GET:获取资源,只允许读取数据,不影响数据的状态和功能。使用 URL 中传递参数或者在 HTTP 请求的头部使用参数,服务器返回请求的资源
2)POST:向服务器提交资源,可能还会改变数据的状态和功能。通过表单等方式提交请求体,服务器接收请求体后,进行数据处理
3)PUT:更新资源,用于更新指定的资源上所有可编辑内容。通过请求体发送需要被更新的全部内容,服务器接收数据后,将被更新的资源进行替换或修改
4)DELETE:删除资源,用于删除指定的资源。将要被删除的资源标识符放在 URL 中或请求体中
5)HEAD:请求服务器返回资源的头部,与 GET 命令类似,但是所有返回的信息都是头部信息,不能包含数据体。主要用于资源检测和缓存控制
6)PATCH:部分更改请求。当被请求的资源是可被更改的资源时,请求服务器对该资源进行部分更新,即每次更新一部分
7)OPTIONS:请求获得服务器支持的请求方法类型,以及支持的请求头标志。“OPTIONS *”则返回支持全部方法类型的服务器标志
8)TRACE:服务器响应输出客户端的 HTTP 请求,主要用于调试和测试
9)CONNECT:建立网络连接,通常用于加密 SSL/TLS 连接
注意:
1)使用超链接以及原生的form表单只能提交get和post请求,put、delete、head请求可以使用发送ajax请求的方式来实现
2)使用超链接发送的是get请求,使用form表单,如果没有设置method,发送get请求
3.3.get和post区别
1)get请求发送数据的时候,数据会挂在URI的后面,并且在URI后面添加一个“?”,"?"后面是数据。这样会导致发送的数据回显在浏览器的地址栏上
2)post请求发送数据的时候,在请求体当中发送。不会回显到浏览器的地址栏上。也就是说post发送的数据,在浏览器地址栏上看不到
3)get请求只能发送普通的字符串。并且发送的字符串长度有限制,不同的浏览器限制不同。这个没有明确的规范。get请求无法发送大数据量
4)post请求可以发送任何类型的数据,包括普通字符串,流媒体等信息:视频、声音、图片。post请求可以发送大数据量,理论上没有长度限制
5)get请求比较适合从服务器端获取数据,post请求比较适合向服务器端传送数据
6)get请求是安全的。因为在正确使用get请求的前提下,get请求只是为了从服务器上获取数据,不会对服务器数据进行修改
7)post请求是危险的。因为post请求是修改服务器端的资源
8)get请求支持缓存。 也就是说当第二次发送get请求时,会走浏览器上次的缓存结果,不再真正的请求服务器(有时需要避免,怎么避免:在get请求路径后添加时间戳)
9)post请求不支持缓存。每一次发送post请求都会真正的走服务器
4.params属性
要求请求参数必须和params数组中要求的所有参数完全一致后,才能映射成功
5.headers属性
与params属性相同