SpringMVC关于对RESTFUL风格的初步使用

RESTFUL风格简介

restful是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制
RESTful的关键是定义可表示流程元素/资源的对象。在REST中,每一个对象都是通过URL来表示的,对象用户负责将状态信息打包进每一条消息内,以便对象的处理总是无状态的。

RESTFUL对于资源的具体操作类型,由HTTP动词表示。
常用的HTTP动词有下面五个:

1.GET(SELECT):从服务器取出资源(一项或多项)
HTTP GET /user/1 :获得id=1的user
HTTP GET /user :获取所有的用户信息
2.POST(CREATE):在服务器新建一个资源。
HTTP POST /user :新增一个user,需要把提交的user信息放在请求的body中提交
3.PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
HTTP PUT /user/1 :修改id=1的user信息,需要把修改的user信息放在请求的body中提交
4.PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
HTTP PATCH /user/1 :修改id=1的user信息,需要把修改的user信息放在请求的body中提交
5.DELETE(DELETE):从服务器删除资源。
HTTP DELETE /user/1:删除id=1的user

当然可以理解为对请求进行定义,一种请求进行一种类型的操作,使用请求进行区分,不同的是我们是根据请求区分操作

SpringMVC代码实现

1.get请求的实现(get请求的定义:获取数据)

JQ请求处理:

$("#btn1").click(function (){
    var id=9;
    $.get("${sm}/selectUser/"+id,{},function (data){
         console.log(data);
    });
});

java后端处理:

    @RequestMapping(value = "/selectUser/{id}",method = RequestMethod.GET)
    @ResponseBody
    public User selectUser(@PathVariable(value = "id",required = true) int userId){
        //获取数据(由于不连接数据库,此处数据脑补从数据库查询出来就好)
        User user=new User();
        user.setUserName("小刘");
        user.setPassword("666");
        return user;
    }

2.post请求的实现(post请求的定义:新增数据)

JQ请求处理:

$("#btn2").click(function (){
    $.post("${sm}/insertUser",{
         userName:"1111",
         password:"55"
     },function (data){
  		console.log(data);
  	});
});

java后端处理:

	 @RequestMapping(value = "/insertUser",method = RequestMethod.POST)
	 @ResponseBody
	 public Boolean insertUser(User user){
	     //新增数据(由于不连接数据库,此处数据脑补新增结果就好)
	     return false;
	 }

3.put请求的实现(put请求的定义:修改(更新)数据)

JQ请求处理:

$("#btn3").click(function (){
	//要修改的数据
  	var data={
     userName:"1111",
     password:"55"
    };
    //id
   var id=8;
   $.ajax({
       type:"PUT",
       url:"${sm}/updateUser/"+id,
       data:data,
       success:function (data){
           console.log(data);
       }
   });
});

java后端处理:

	 @RequestMapping(value = "/updateUser",method = RequestMethod.PUT)
	 @ResponseBody
	 public Boolean updateUser(@PathVariable(value = "id",required = true) int userId,User user){
	     //更新数据(由于不连接数据库,此处数据脑补修改结果就好)
	     return false;
	 }

4.delete请求的实现(delete请求的定义:删除数据)

JQ请求处理:

var id=9;
$("#bt4").click(function (){
    $.post("${sm}/deleteUser/"+id,{},function (data){
  		console.log(data);
  	});
});

java后端处理:

	 @RequestMapping(value = "/deleteUser",method = RequestMethod.DELETE)
	 @ResponseBody
	 public Boolean deleteUser(@PathVariable(value = "id",required = true) int userId){
	     //更新数据(由于不连接数据库,此处数据脑补修改结果就好)
	     return false;
	 }

可以发现后台是通过请求类型和请求的路径区分操作,也正是由于如此所以参数位置的对应是否十分重要的,因为并不是name:value的形式,所以从路径中取出参数时是依据位置进行匹配的,没有提到patch,但使用方法基本一样,大部分用的基本都是put

目前也是springMVC的新手一枚,刚刚摸到一点头绪,有问题还望指正…

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值