【springMVC】@RequestMapping的作用

发布于:2024-04-27 ⋅ 阅读:(27) ⋅ 点赞:(0)

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属性相同