注解:
了解这些注解之前 先讨论一下 get 和 post 的区别:
最直观的区别就是GET把参数包含在URL中,POST 通过Request Body传递参数。
个人开发过程中查询用GET,其他用POST, 写业务的时候 一般没参数用 GET , 有参数用 POST :通过 RequestBody传递参数
首先,什么情况下是 get 请求呢:
直接在浏览器地址栏输入某个地址
表单默认的提交方式
什么情况下是 post 请求呢:
设置表单 method = “post”
ajax type: ‘post’,
浏览器通过url处理的请求为get请求,如果后台限制只能用post请求会发生如下错误:
method not allowed, The specified HTTP method is not allowed for the requested resource.
get请求特点:
a. 请求参数会添加到请求资源路径的后面,只能添加少量参数(因为请求行只有一行,大约只能存放2K左右的数据)
b. 请求参数会显示在浏览器地址栏,路由器会记录请求地址 (极为的不安全)
c.如果传输中文,必定会乱码(原因:get请求默认编码格式为:IIO-8859-1,后台编码格式一般为:GBK或者UTF-8)
post请求的特点:
a. 请求参数添加到实体内容里面,可以添加大量的参数(也解释了为什么浏览器地址栏不能发送post请求,在地址栏里我们只能填写URL,并不能进入到Http包的实体当中)
b. 相对安全,但是,post请求不会对请求参数进行加密处理(可以使用https协议来保证数据安全)
@RequestMapping 变种 @GetMapping ,@Postmapping ,@PutMapping ,@DeleteMapping @PatchMapping
Spring 4.3 中引进了下面的注解 @RequestMapping 在方法层级的变种,来帮助简化常用 HTTP 方法的映射,并更好地表达被注解的方法的语义。
比如,@GetMapping可以读作 GET @RequestMapping。
@GetMapping :
@GetMapping注释将 HTTP GET 请求映射到特定的处理程序方法。 它是一个组合的注释,
用作@RequestMapping(method = RequestMethod.GET)的快捷方式。
当方法体有参数时 一般搭配 @PathVariable 使用
@PostMapping
PostMapping注释将 HTTP POST 请求映射到特定的处理程序方法。 它是一个组合的注释,
用作@RequestMapping(method = RequestMethod.POST)的快捷方式
当方法体有参数时 一般搭配 @RequestParam 使用
@PutMapping
@PutMapping注释和 @PostMapping 没太大区别, 一般更新或修改数据用@PutMapping,添加数据用@GetMapping