在Restful风格中,现有规定如下:
- GET(SELECT):从服务器查询,可以在服务器通过请求的参数区分查询的方式。
- POST(CREATE):在服务器新建一个资源,调用insert操作。
- PUT(UPDATE):在服务器更新资源,调用update操作。
- DELETE(DELETE):从服务器删除资源,调用delete语句
如果当前url是 http://localhost:8080/User
那么用户只要请求这样同一个URL就可以实现不同的增删改查操作,例如
- http://localhost:8080/User?_method=get&id=1001 这样就可以通过get请求获取到数据库 user表里面 id=1001 的用户信息
- http://localhost:8080/User?_method=post&id=1001&name=zhangsan 这样可以向数据库user 表里面插入一条记录
- http://localhost:8080/User?_method=put&id=1001&name=lisi 这样可以将 user表里面 id=1001 的用户名改为lisi
- http://localhost:8080/User?_method=delete&id=1001 这样用于将数据库user 表里面的id=1001 的信息删除
在springMVC中实现restful风格开发
这里,我通过访问http://127.0.0.1:8080/ssmvc/restful接口的method不同来进入不同的controller方法,并打印返回数据。
- @RequestMapping(value = "/restful",method = RequestMethod.GET)
- public void list(HttpServletRequestrequest,HttpServletResponse response,TestVo vo) throws IOException {
- System.out.println("list被访问,参数:" + vo.toString());
- Map<String,Object> map= newHashMap<String, Object>();
- map.put("params",vo);
- map.put("method",RequestMethod.GET);
- response.getWriter().write(JSON.toJSONString(map));
- }
- /**
- * restful风格insert接口
- * @param request
- * @param response
- * @param vo
- * @throws IOException
- */
- @RequestMapping(value = "/restful",method = RequestMethod.POST)
- public voidupdate(HttpServletRequest request, HttpServletResponse response, TestVo vo) throws IOException {
- System.out.println("update被访问,参数:" + vo.toString());
- Map<String,Object> map= newHashMap<String, Object>();
- map.put("params",vo);
- map.put("method",RequestMethod.POST);