REST技术第二步 获取URL中的参数

Servlet我们要获取请求的参数,很麻烦啊。需要request.getParameter(“”)。如果我们要的是int,float这些东西,还需要去转换。虽然说有ognl这样的工具可以帮忙类型转换,自动设置对象值,还是麻烦。

但是rest就非常方便,提供了一种注解的机制来自己将http请求参数类型转换成rest的方法参数。不仅仅是http的请求参数,还支持cookie参数,路径参数等等。

那么我们来见识下申请的rest

@Cookieparam

@FormParam

@HeaderParam

@MatrixParam

@PathParam

@QueryParam

@BeanParam

总共7个注解。

这里我先介绍下以下三个注解

@MatrixParam

@PathParam

@QueryParam

这三个注解都是从URL里面取东西的。

@MatrixParamURL分号(;)后面的参数。这个也要注意,一定要在?号前面。

@PathParamURL路径里的参数。使用的时候需要注意,要在@Path注解内放一个变量,用{}括起来,然后才可以使用。

@QueryParamURL?后面的请求参数。

那么现在就简单地搭个环境啦

[java]  view plain  copy
  1. package restparams;  
  2.    
  3. import javax.ws.rs.ApplicationPath;  
  4. import javax.ws.rs.core.Application;  
  5. @ApplicationPath("rest")  
  6. public class MyApplication extends Application {  
  7.    
  8. }  

这种配置方式代替了xml的配置方式。指定了所有rest资源类的URL前缀。然后再写资源类。

[java]  view plain  copy
  1. package restparams;  
  2.    
  3. import javax.ws.rs.GET;  
  4. import javax.ws.rs.MatrixParam;  
  5. import javax.ws.rs.Path;  
  6. import javax.ws.rs.PathParam;  
  7. import javax.ws.rs.Produces;  
  8. import javax.ws.rs.QueryParam;  
  9.    
  10. @Path("/max/{a}.html")  
  11. public class Max {  
  12.    
  13.     @GET  
  14.     @Produces("text/html")  
  15.     public String max(@PathParam("a"int a, @QueryParam("b"int b, @MatrixParam("c"int c) {  
  16.         int max = a;  
  17.         if (b > max) {  
  18.             max = b;  
  19.         }  
  20.         if (c > max) {  
  21.             max = c;  
  22.         }  
  23.         return "The max number is " + max;  
  24.     }  
  25. }  

在@Path()注解中的{a},可以将这段路径的值放入一个变量a中。比如/max/12.html,a的值就是12。在下面的方法中就使用了@PathParam注解,将这个变量a注入到了int a中。

下面这个URL,c是分号(;)后面的参数,所以是MatrixParam。查询参数就是get请求常用的,在问号(?)后面。

http://localhost:8080/restparams/rest/max/5.html;c=2?b=3

这个URL的访问结果就是这样子的。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值