好处: 安全
通过请求方式判断执行的方法
/*在Springmvc中可以使用@PathVariable注解,
让方法参数的值对应绑定到一个Url模板变量,
则url中传参不能用add?a=1&b=2的方式,
只能用add/1/2方式
*/
@Controller
public class HelloController {
//以post方式去请求,不可以在url中传参
@PostMapping("/hello/{a}/{b}")
public String hello(@PathVariable String a, @PathVariable String b,Model model){
String res=a+b;
model.addAttribute("restful","结果为:PostMapping:"+res);
return "hello";//返回字符串是视图的名字,会被解析器解析
}
//以get方式去请求,可以在url中传参
@GetMapping ("/hello/{a}/{b}")
public String hello1(@PathVariable String a, @PathVariable String b,Model model){
String res=a+b;
model.addAttribute("restful","结果为:GetMapping:"+res);
return "hello";//返回字符串是视图的名字,会被解析器解析
}
}
因在url赋值用get方式,所以走@GetMapping
或在后台写死参数,则走@PostMapping
地址栏一样,产生不一样结果
RequestMapping可在注解内部指定method
地址可以用path或者value
案例:
test.jsp下代码为:
<body>
<form action="/hello/RestFul-/PostMapping" method="post">
<input type="submit" value="PostMapping">
</form>
<form action="/hello/RestFul-/GetMapping" method="get">
<input type="submit" value="GetMapping">
</form>
</body>
hello.jsp下代码为:
<body>
${restful}
</body>
总结:为了避免报错,直接给默认值,不难发现,在同一个路径下,产生了两种方法。