RestFul 它只是一种风格 而不是规范。 Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
传统方式操作资源 :通过不同的参数来实现不同的效果!方法单一,post 和 get
http://127.0.0.1/item/queryItem.action?id=1 查询,GET
http://127.0.0.1/item/saveItem.action 新增,POST
http://127.0.0.1/item/updateItem.action 更新,POST
http://127.0.0.1/item/deleteItem.action?id=1 删除,GET或POST
使用RESTful操作资源 : 可以通过不同的请求方式来实现不同的效果!如下:请求地址一样,但是功能可以不同!
http://127.0.0.1/item/1 查询,GET
http://127.0.0.1/item 新增,POST
http://127.0.0.1/item 更新,PUT
http://127.0.0.1/item/1 删除,DELETE
RestFul风格 没有?后加参数这样的url地址了 它都是用/分隔 这样的地址看起来很简介 同时也具有很好地安全性 用户无法通过它的参数 去判断他是什么类型的请求了
@Controller
public class MyController {
@GetMapping("/test/{a}/{b}")
public String test(@PathVariable String a, @PathVariable String b, Model model){
String msg = String.valueOf(Integer.parseInt(a) + Integer.parseInt(b));
System.out.println(msg);
model.addAttribute("msg","结果为" + msg);
return "test";
}
}
@GetMapping注解就是生命这是Get方式才能请求到的地址 如果是Post请求的方式就使用@PostMapping 它后面的{}中的值对应的是方法中的参数名 同时这个参数名也要有一个@PathVariable 注解声明 让他们相互对应 这样就形成了RestFul风格的url地址.。
@Controller
public class MyController {
//RestFul风格的传参 RestFul可以有4中类型的函数 Get Put Post Delete
//其中 Get类型的只能通过Get请求才能跳转到这个Controller Post类型的就只能通过Post请求跳转到该Controller
//其他的同理 重点是Post和Get 这两种方式
//@GetMapping 注解代表使用了RestFul风格 并且只能通过Get请求才能跳转到这个Controller中
@GetMapping("/fun1/{a}/{b}")//路径中的a和b表示传递的参数 使用{}包起来 在Controller中 使用@PathVariable注解拿到传递的这个参数
public String fun1(@PathVariable int a, @PathVariable String b, Model model){
System.out.println("i am in");
String r = a + b;
model.addAttribute("msg",r);
return "welcome";
}
//使用@PostMapping注解 表示只能通过Post请求才能进入 其中的参数也是通过@PathVariable注解拿到
@PostMapping("/fun1/{a}/{b}")
public String fun2(@PathVariable int a, @PathVariable int b,Model model){
System.out.println("i am in");
int r = a + b;
model.addAttribute("msg",r);
return "welcome";
}
@RequestMapping("/fun1")
public String fun3(Model model){
System.out.println("i am in");
int r = 111;
model.addAttribute("msg",r);
return "welcome";
}
}