java rpc学习之rest 学习之JAX-RS --参数注解学习(7)

@FormParam @PathParam @QueryParam @HeaderParam @CookieParam @MatrixParam 作为Restfull框架的基本应用,以上注解可以让我们定义具体的请求方式

要用以上注解必须引入maven依赖

<dependency>
  <groupId>javax.ws.rs</groupId>
  <artifactId>javax.ws.rs-api</artifactId>
  <version>2.1.1</version>
  <type>bundle</type>
</dependency>


1.@FormParam

该注解定义在请求参数上,表示让前端页面进行表单提交

<form method="post" id="savingsCard" url="http://www.71bibll.com/addcard">
            <input id="bankName" name="bankName"  readonly="readonly" type = "text" placeholder="所属银行名称">
            <input id="cardNo" name="cardNo" type="tel"   οninput="changes()"  placeholder="请输入储蓄卡卡号">
 </form>
 
@POST
  @Path("addcard")
  public String addCard(@FormParam("bankName") String n, @FormParam("cardNo") String c) {
    return "addcard with " + n + " " + c;
  }

另外一种方式:

public class Person {

	@FormParam("bankName")
	private String bankName;

	@FormParam("cardNo")
	private String cardNo;

	//getters and setters
	//toString

}
@POST
	@Path("/addPersonModel")
	public String addPersonModel(@Form Person person) {
		String message = "addPersonModel is called.";
		return message + " " + person.toString();
	}

 

 


2.@PathParam

@Pathparam标注绑定一个路径段资源的方法参数的值。简单的说把参数拼接在路径里

var url="http://www.71bibll.com/addcard/平安银行/6230580000003620767"
@GET
  @Path("addcard")
  public String addCard(@PathParam("bankName") String n, @PathParam("cardNo") String c) {
    return "addcard with " + n + " " + c;
  }
3.@QueryParam

@QueryParam同样是标注绑定一个路径段资源的方法参数的值,和@pathParam不同的是,它不是url中的一个层级,而是用

?key=value的形式拼在url里

var url="http://www.71bibll.com/addcard?bankName=平安银行&cardNo=6230580000003620767"
@GET
  @Path("addcard")
  public String addCard(@QueryParam("bankName") String n, @QueryParam("cardNo") String c) {
    return "addcard with " + n + " " + c;
  }
4.@HeaderParam

 @HeaderParam  标注提取HTTP表头( HTTP header)并将它绑定到一个方法的参数。

  $.ajax({
              type: "GET",
              url: "www.bibll.com/addcard",
              beforeSend: function(request) {
                  request.setRequestHeader("source", "bibll");
              },
              success: function(result) {
                  alert(result);
              }
         })
@GET
    public String callService(@HeaderParam("source") String source) {
          return  "来源"+ source
    }
5.@CookieParam

@cookieParam业务场景比如说session管理,一般是通过cookie进行管理的。 
 

@GET 
@Path(“/cookie”) 
public String cookie(@CookieParam(“sid”) String sid){ 
 return sid; 
}
6.@MatrixParam

@MatrixParam的做法和@QueryParam有些相似,这个主要是做分离参数用的

var url="http://www.71bibll.com/addcard;bankName=平安银行;cardNo=6230580000003620767"
@GET
  @Path("addcard")
  public String addCard(@MatrixParam("bankName") String n, @MatrixParam("cardNo") String c) {
    return "addcard with " + n + " " + c;
  }
 

7 @BeanParam

将其他的xxxParam封装到一个Bean当中,并把这Bean作为参数注入。可以重复使用参数定义也可以做一些Bean验证的操作。

public class MyBean {   
   @FormParam("myData")
   private String data;

   @HeaderParam("myHeader")
   private String header;
 
   @PathParam("id")
   public void setResourceId(String id) {...}
   ...
}
   @POST
   @Path("{id}")
   public void post(@BeanParam MyBean myBean) {...}

@Encoded 强制不解码

该注解标明此参数不需要自动解码,直接使用编码后的请求值。

  @GET String getInfo(@Encoded @QueryParam("size") int size){...}

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值