1.Restful风格
概念
Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
功能
资源:互联网所有的事物都可以被抽象为资源
资源操作:使用POST、DELETE、PUT、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
2. SpringMVC中使用Restful风格
-
使用注解
@RequestMapping(“item/{id}”)
声明请求的url 。
{xxx}叫做占位符,请求的URL可以是“item/1”或“item/2” -
使用
(@PathVariable() Integer id)
获取url上的数据
需求:
实现输入的两个整数参数的和。
代码:
SpringMVC的配置部分代码同另一篇博客SpringMVC入门程序。
此处只有Controller类不同。代码如下:
@Controller
public class RestfulController {
//映射访问路径
@RequestMapping("/commit/{p1}/{p2}")
public String index(@PathVariable int p1, @PathVariable int p2, Model model){
//Spring MVC会自动实例化一个Model对象用于向视图中传值
model.addAttribute("msg", p1+p2);
//返回视图位置
return "hello";
}
}
结果:
优点:
使用路径变量的好处:
- 使路径变得更加简洁,
- 获得参数更加方便,框架会自动进行类型转换。
【注意】:
通过路径变量的类型可以约束访问参数,如果类型不一样,则访问不到对应的请求方法,如这里访问是的路径是/commit/2/c,则路径与方法不匹配,而不会是参数转换失败。
修改对应的参数类型为String。
@Controller
public class RestfulController {
//映射访问路径
@RequestMapping("/commit/{p1}/{p2}")
public String index(@PathVariable int p1, @PathVariable String p2, Model model){
//Spring MVC会自动实例化一个Model对象用于向视图中传值
model.addAttribute("msg", p1+p2);
//返回视图位置
return "hello";
}
}
结果: