4.1、概念
RestFul是一个资源定位及资源操作的一种风格
可以使设计的软件更加简洁,更有层次,更易于
4.2、功能
-
互联网所有的事物都可以抽象为资源
-
POST、GET、DELETE、PUT,可以对资源进行操作
-
分别代表 添加、查询、删除、修改
4.3、方式对比
传统方式:通过不同的参数实现不同的效果
对于一般的form表单,不同的请求就要提交到不同的action
queryitem.jsp?id=1 //查询 GET additem.jsp //新增 POST updateitem.jsp //更新 POST deleteitem.jsp //删除 GET/POST
一般使用Get和Post方法
RestFul方法:通过不同的请求方式来实现不同的效果
item/1 //查询 GET item 新增 POST item 更新 PUT item/1 删除 DELETE
4.4、风格实现
@Controller
public class RestFulcontroller {
@RequestMapping("/t1/{a}/{b}")
public String test1(@PathVariable int a,@PathVariable int b, Model model){
int res=a+b;
model.addAttribute("msg",res);
return "hello";
}
}
@PathVariable:让方法的参数绑定到url变量上
简化:
@GetMapping ("/t1/{a}/{b}")
public String test2(@PathVariable int a,@PathVariable int b, Model model){
int res=a+b;
model.addAttribute("msg","res1="+res);
return "hello";
}
若同时指定了Post提交方式,且使用同一请求路径
@PostMapping("/t1/{a}/{b}")
public String test2(@PathVariable int a,@PathVariable int b, Model model){
int res=a+b;
model.addAttribute("msg","res2="+res);
return "hello";
}
则默认走Get
对于同时有Get与Post方法,且有同一请求路径,若直接在url中修改参数值,则会走Get方法
method方法中给定了8种方法:
public enum RequestMethod { GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE }
方法级别的注解变体有:
@GetMapping//代表 //@RequestMapping(method = RequestMethod.GET) @PostMapping @PutMapping @DeleteMapping @PatchMapping
注意:url中的模板变量必须与方法参数名一致,位置相匹配,url请求路径中,用户给定的参数类型需要与方法参数的类型一致,否则报错