WebService @QueryParam @DefaultValue @PathParam的区别

1 先来看@queryparam
   先看例子:
 
Java代码

Path("/users")
public class UserService { 

    @GET
    @Path("/query")
    public Response getUsers(
        @QueryParam("from") int from,
        @QueryParam("to") int to,
        @QueryParam("orderBy") List<String> orderBy) { 

        return Response
           .status(200)
           .entity("getUsers is called, from : " + from + ", to : " + to
            + ", orderBy" + orderBy.toString()).build(); 

    } 

}

URL输入为:users/query?from=100&to=200&orderBy=age&orderBy=name
  此时,输出为:getUsers is called, from : 100, to : 200, orderBy[age, name]
 
要注意的是,跟@pathparam不同,@queryparam中,指定的是URL中的参数是以键值对的形式出现的,而在程序中
@QueryParam("from") int from则读出URL中from的值,
而@pathparem中,URL中只出现参数的值,不出现键值对,比如:“/users/2011/06/30”

则:
 
Java代码

@GET
    @Path("{year}/{month}/{day}")
    public Response getUserHistory(
            @PathParam("year") int year,
            @PathParam("month") int month,
            @PathParam("day") int day) { 

       String date = year + "/" + month + "/" + day; 

       return Response.status(200)
        .entity("getUserHistory is called, year/month/day : " + date)
        .build(); 

    } 

输出为:
getUserHistory is called, year/month/day : 2011/6/30

2 以动态的方式获得:
 
Java代码

@Path("/users")
public class UserService { 

    @GET
    @Path("/query")
    public Response getUsers(@Context UriInfo info) { 

        String from = info.getQueryParameters().getFirst("from");
        String to = info.getQueryParameters().getFirst("to");
        List<String> orderBy = info.getQueryParameters().get("orderBy"); 

        return Response
           .status(200)
           .entity("getUsers is called, from : " + from + ", to : " + to
            + ", orderBy" + orderBy.toString()).build(); 

    }

URL;users/query?from=100&to=200&orderBy=age&orderBy=name
输出为:
getUsers is called, from : 100, to : 200, orderBy[age, name]
注意这里把orderby后的两个参数读入为LIST处理了.

3 @DefaultValue,默认值

例子:
 
Java代码

@Path("/users")
public class UserService { 

    @GET
    @Path("/query")
    public Response getUsers(
        @DefaultValue("1000") @QueryParam("from") int from,
        @DefaultValue("999")@QueryParam("to") int to,
        @DefaultValue("name") @QueryParam("orderBy") List<String> orderBy) { 

        return Response
           .status(200)
           .entity("getUsers is called, from : " + from + ", to : " + to
            + ", orderBy" + orderBy.toString()).build(); 

    }

URL:users/query

输出:getUsers is called, from : 1000, to : 999,
orderBy[name]

很好理解吧

时间: 2024-09-30 15:58:14

WebService @QueryParam @DefaultValue @PathParam的区别的相关文章

简述WebS简述WebService与.NET Remoting的区别及适应场合

为了能清楚地描述Web Service 和Remoting之间的区别,我打算从他们的体系结构上来说起: Web Service大体上分为5个层次: 1. Http传输信道 2. Xml的数据格式 3. SOAP封装格式 4. WSDL的描述方式 5. UDDI 总体上来讲,.Net 下的 Web Service结构比较简单,也比较容易理解和应用: 一般来讲在.Net结构下的WebService应用都是基于.Net framework以及IIS的架构之下,所以部署(Dispose)起来相对比较容易

@RequestParam,@PathParam,@PathVariable,@QueryParam注解的使用区别

获取url模板上数据的(/{id})@DefaultValue 获取请求参数的(包括post表单提交)键值对(?param1=10&param2=20).可以设置defaultValue JAX-RS @PathParam @QueryParam Spring @PathVariable @RequestParam 有一次的请求是 : http://localhost:8080/system/getMenuListPage?level=0&parent_id=0&_=1532879

@QueryParam和@PathParam比较

来源:http://jackyrong.iteye.com/blog/1128364 1 先来看@queryparam Path("/users") public class UserService { @GET @Path("/query") public Response getUsers( @QueryParam("from") int from, @QueryParam("to") int to, @QueryPara

关于两个标签的比较@queryparam和@pathparam

最近在用dubbox做一个系统,系统中涉及到了一些我之前没有用到过的标签,特地摘抄到这里,做个总结. 需求场景是这样的,之前有个方法是这样的 @GET    @Path("/ifast/{name}/{cardType}/{cardId}")    public ExtProdQueryResult queryIfastInvestInfo(@PathParam("name") String name,            @PathParam("car

简述WebService与.NET Remoting的区别及适应场合 WCF

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhoufoxcn.blog.51cto.com/792419/166990 为了能清楚地描述Web Service 和Remoting之间的区别,我打算从他们的体系结构上来说起: Web Service大体上分为5个层次: 1. Http传输信道 2. XML的数据格式 3. SOAP封装格式 4. WSDL的描述方式 5. UDDI 总体上来讲,.NET 下的 Web Ser

浅析WCF与WebService、WPF与Silverlight 区别

由于在<Windows服务调用Quartz.net 实现消息调度>中,涉及到ASP.NET Web Service //WebServiceSoapClient client = new WebServiceSoapClient(new BasicHttpBinding(), new EndpointAddress(URL));//client.Shake(); 效果始终不是太好,故Google查之,此文做为平时积累. 一.ASP.NET Web Service Web Service:严格来

webservice的Axis2入门教程java版

本文转自百度文库 Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物.Axis2不仅支持SOAP1.1和SOAP1.2,还集成了非常流行的REST WebService,同时还支持Spring.JSON等技术.这些都将在后面的系列教程中讲解.在本文中主要介绍了如何使用Axis2开发一个不需要任何配置文件的WebService,并在客户端使用Java和C#调用这个WebService. 一.Axis2的下载和安装 读者可以从如下的网址下载Axis2的最新版本:

JAX-RS规范-常用注解浅析

一.@Path 若希望一个Java类能够处理REST请求,则这个类必须至少添加一个@Path("/")的annotation: 对于方法,这个annotation是可选的,如果不添加,则继承类的定义. (1)@Path里的值可以是一个复杂的表达式,例如@Path("{id}") ,其中 {id}表达式代码了一个模板参数: 一个模板参数是一个定义在@Path里的通配符,它以 { 开始,中间是一堆字母和数字的混合串(不能包含 / 字符),以 } 结尾.又如: @Path

使用JAX-RS创建RESTful Web Service

http://blog.csdn.net/withiter/article/details/7349795 本章介绍REST架构.RESTful web service和JAX-RS(Java API for RESTful Web Service,JSR 311).JAX-RS的参考实现Jersey实现了对JSR 311中定义的注解的支持,使得使用Java编程语言开发RESTful web service变得简单.如果是使用GalssFish服务器,可以使用Update Tool安装Jerse