Jersey基础使用示例

环境配置以及基础服务搭建请参阅:http://blog.csdn.net/u012343179/article/details/73412249

常用的Http方法:Get和Post,可以基本满足日常应用。


Jersey中的GET使用:

User类定义:

package com.ma.unit;

/**
 * Created by Administrator on 2017/6/25.
 */
public class User {
    private String name;
    private String password;

    public void setName(String userName){
        this.name=userName;
    }

    public void setPassword(String userPassword){
        this.password=userPassword;
    }

    public String getName(){
        return this.name;
    }

    public String getPassword(){
        return this.password;
    }
}
Web服务定义:
package com.ma.test;

import com.ma.unit.User;

import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;

/**
 * Created by Administrator on 2017/6/17.
 */
@Path("/register")//路径
public class Register{

    @Path("/newuser")//路径
    @GET//Get方法
    @Produces(MediaType.TEXT_PLAIN)//以纯文本方式返回
    public String registerUser(@QueryParam("name")String name,@QueryParam("pass")String pass){
        if(name==null || pass==null){
            return "lack of parameter";
        }
        else{
            User user=new User();
            user.setName(name);
            user.setPassword(pass);

            //然后可以进行数据库插入该新用户的操作

            //返回注册的结果
            return "User:"+user.getName()+"register success!";
        }

    }

}
其中,@Produces代表接口返回的形式,@QueryParam代表 接收链接中的普通参数,例如name=mzw&pass=123,所以使用该方式在浏览器中输入,任何人可以轻易地知道你的pass参数(也就是你的密码),因此更加推荐使用POST方式。

我们运行Tomcat服务器,在地址栏中输入http://localhost:8080/api/register/newuser?name=mzw &pass=123

得到结果:



Jersey中的POST使用:

package com.ma.test;

import com.ma.unit.User;

import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;

/**
 * Created by Administrator on 2017/6/17.
 */
@Path("/register")//路径
public class Register{

    @Path("/newuser")//路径
    @POST//Post方法
    @Produces(MediaType.TEXT_PLAIN)//以纯文本方式返回
    public String registerUser(@FormParam("name")String name,@FormParam("pass")String pass){
        if(name==null || pass==null){
            return "lack of parameter";
        }
        else{
            User user=new User();
            user.setName(name);
            user.setPassword(pass);

            //然后可以进行数据库插入该新用户的操作

            //返回注册的结果
            return "User:"+user.getName()+"register success!";
        }

    }

}
我们注意到,POST方式与GET方式主要的区别在于参数传输方式,GET是将参数附加在地址后面,而POST则是通过表单来传递参数(在jersey中是@FormParam)。

因为我们修改了代码,所以我们需要重新启动Tomcat。但我们注意到,在浏览器中我们并不能通过表单传递参数(因为我们没有相应的表单以及文本框),所以我们需要用到IntelliJ的 Test Restful Web Services。


单击Test RESTful Web Service,在界面的正下方是Rest Client(也就是IntelliJ用于测试Web Service的客户端)


在相应的地方选择或填入相应的参数,如下图:

其中Request Parameters就是表单参数,然后点击绿色三角图标进行测试。

最终得到测试结果。

就目前大部分的商用接口来看,都是采用POST方式的。

在我看来,GET方式适合用于一些简单的,安全要求不高的接口需求。

而POST适合传输参数较多,较复杂,安全要求较高的接口需求。


目前主流的参数交换方式是Json,因此接下去会研究一下在Web services中将结果以Json方式返回的相关内容。


只要有音乐,就不会有世界末日!

CommissarMa

2017年6月25日11:55:09

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值