我们下面将逐步进行RESTful的修改:
- 设置http请求动作
package com.itheima.controller;import com.itheima.domain.Book;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.*;@Controllerpublic class BookController {// RequestMapping中包含value和method两种属性// value:访问路径// method:访问方法@RequestMapping(value = "https://www.huyubaike.com/users",method = Request.POST)@RequestBody public String save(@RequestBody User user){System.out.println("user save" + user);return "{'module':'user save'}"}}/*名称:@RequestMapping类型:方法注解位置:SpringMVC控制器方法定义上方作用:设置当前控制器方法请求访问路径属性:value访问路径,method请求动作*/
- 设置请求参数(路径变量)
package com.itheima.controller;import com.itheima.domain.Book;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.*;@Controllerpublic class BookController {// 首先针对我们所需参数给出@PathVariable注解,并在访问路径中采用{}占位表示所传数据// 简单来说就是,系统根据请求路径,得到所需数据,再带入到方法中@RequestMapping(value = "https://www.huyubaike.com/users/{id}" ,method = RequestMethod.DELETE)@RequestBodypublic String delete(@PathVariable Integer id){System.out.println("book delete..." + id);return "{'module':'book delete'}";}}/*名称:@PathVariable类型:形参注解位置:SpringMVC控制器方法形参定义前面作用:绑定路径参数与处理器方法形参间的关系,要求路径参数名与形参名一一对应*/
下面我们给出所有情况案例:package com.itheima.controller;import com.itheima.domain.User;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.*;@Controllerpublic class UserController {//设置当前请求方法为POST,表示REST风格中的添加操作@RequestMapping(value = "https://www.huyubaike.com/users",method = RequestMethod.POST)@ResponseBodypublic String save(){System.out.println("user save...");return "{'module':'user save'}";}//设置当前请求方法为DELETE , 表示REST风格中的删除操作//@PathVariable注解用于设置路径变量(路径参数),要求路径上设置对应的占位符,并且占位符名称与方法形参名称相同@RequestMapping(value = "https://www.huyubaike.com/users/{id}",method = RequestMethod.DELETE)@ResponseBodypublic String delete(@PathVariable Integer id){System.out.println("user delete..." + id);return "{'module':'user delete'}";}//设置当前请求方法为PUT,表示REST风格中的修改操作@RequestMapping(value = "https://www.huyubaike.com/users",method = RequestMethod.PUT)@ResponseBodypublic String update(@RequestBody User user){System.out.println("user update..."+user);return "{'module':'user update'}";}//设置当前请求方法为GET,表示REST风格中的查询操作//@PathVariable注解用于设置路径变量(路径参数),要求路径上设置对应的占位符 , 并且占位符名称与方法形参名称相同@RequestMapping(value = "https://www.huyubaike.com/users/{id}" ,method = RequestMethod.GET)@ResponseBodypublic String getById(@PathVariable Integer id){System.out.println("user getById..."+id);return "{'module':'user getById'}";}//设置当前请求方法为GET,表示REST风格中的查询操作@RequestMapping(value = "https://www.huyubaike.com/users",method = RequestMethod.GET)@ResponseBodypublic String getAll(){System.out.println("user getAll...");return "{'module':'user getAll'}";}}/* 下述为原有代码:@RequestMapping@ResponseBodypublic String delete(){System.out.println("user delete...");return "{'module':'user delete'}";}@RequestMapping@ResponseBodypublic String update(){System.out.println("user update...");return "{'module':'user update'}";}@RequestMapping@ResponseBodypublic String getById(){System.out.println("user getById...");return "{'module':'user getById'}";}@RequestMapping@ResponseBodypublic String getAll(){System.out.println("user getAll...");return "{'module':'user getAll'}";}*/
我们在这里给出@RequestBody,@RequestParam , @PathVariable区别REST快速开发我们在上一小节中会发现有许多重复性的代码:
区别:
应用:
- @RequestParam用于接收url地址传参或表单传参
- @RequestBody用于接收json数据
- @PathVariable用于接收路径参数,使用{参数名称}描述路径参数
- 后期开发中,发送请求参数超过1个时,以json格式为主,@RequestBody应用较广
- 如果发送非json格式数据,选用@RequestParam接受请求参数
- 采用RESTful进行开发,当参数数量较少时,如1个 , 可以采用@PathVariable接收请求路径变量,常用来传递id值
// 每次都填写value,method导致代码繁冗// 包括每次填写ResponseBody使代码繁冗@RequestMapping(value = "https://www.huyubaike.com/users",method = RequestMethod.GET)@ResponseBody
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 火山视频怎么挣钱的(火山挣钱还是抖音挣钱)
- 第一篇 TTD 专题 :C# 那些短命线程都在干什么?
- 火山小视频怎么赚钱(玩火山怎么赚钱)
- 怎么用支付宝花呗付款(支付宝花呗付款码限额)
- 花呗如何用(花呗的使用方式)
- 怎样使用花呗(花呗12期能一次全还吗)
- 1+volte怎么关闭(怎么关闭volte通话)
- 高清视频通话怎么关闭(红米怎么关闭高清通话)
- 耳机界四大王牌厂商大盘点 耳机四大厂
- 移动volte怎么关闭(怎么取消volte功能)