`

JAX-RS @queryparam与@pathpram

 
阅读更多

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]

很好理解吧

分享到:
评论

相关推荐

    jax-rs jax-ws所需包,亲测可用

    **JAX-RS与JAX-WS详解:** 1. **JAX-RS**(Java API for RESTful Web Services)是Java平台上的REST(Representational State Transfer)风格Web服务的标准。REST是一种轻量级的架构风格,它基于HTTP协议,利用URL...

    [Jax-RS] RESTful Java 开发 (Jax-RS 实现) (英文版)

    [奥莱理] RESTful Java 开发 (Jax-RS 实现) (英文版) [奥莱理] RESTful Java with Jax-RS (E-Book) ☆ 图书概要:☆ Learn how to design and develop distributed web services in Java using RESTful ...

    [Jax-RS] RESTful Java 开发 (Jax-RS 2.0 实现) (英文版)

    The RESTEasy workbook that follows provides step-by-step instructions for installing, configuring, and running several working JAX-RS examples, using the JBoss RESTEasy implementation of JAX-RS 2.0. ...

    一个包含jax-ws和jax-rs的例子(含服务端和客户端)

    标题中的“一个包含jax-ws和jax-rs的例子(含服务端和客户端)”是指这是一个示例项目,它演示了如何使用Java API for XML Web Services (JAX-WS)和Java API for RESTful Web Services (JAX-RS)来创建和消费Web服务。...

    JAX-WS API, JAX-RS API

    综上所述,JAX-WS和JAX-RS都是Java平台中处理Web服务的重要工具,但它们的侧重点不同。JAX-WS专注于SOAP协议的Web服务,而JAX-RS则面向RESTful风格的API设计。了解并熟练掌握这两个API,对于Java开发者来说,意味着...

    JAX-RS包(内含1.0和1.4)

    JAX-RS,全称Java API for RESTful Web Services,是Java平台上的一个标准,用于构建RESTful风格的Web服务。REST(Representational State Transfer)是一种轻量级、基于HTTP协议的设计模式,常用于实现分布式系统中...

    JAX-RS注解及使用方法

    JAX-RS 注解及使用方法 JAX-RS(Java API for RESTful Web Services)是一种基于 Java 语言的 RESTful Web 服务框架,它提供了一种简单、灵活的方式来开发 RESTful Web 服务。JAX-RS 使用注解来定义资源的行为和...

    Jax-RS所需要的依赖jar

    Jetty可以轻松地与JAX-RS实现(如Jersey或RESTEasy)集成,提供REST服务。 3. **Jersey**:Jersey是Sun Microsystems(现Oracle)开发的一个开源JAX-RS实现,它是许多项目首选的JAX-RS框架。它提供了丰富的功能,...

    JAX-RS之rest接口实例

    **JAX-RS与REST接口实例详解** JAX-RS(Java API for RESTful Web Services)是Java平台上的一个标准,用于创建RESTful Web服务。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式...

    JAX-RS入门jar包集合

    3. **注入与依赖管理**:JAX-RS与CDI(Contexts and Dependency Injection)集成,允许通过`@Context`注解注入上下文对象,如`HttpServletRequest`、`HttpServletResponse`等,同时可以注入其他依赖服务。...

    SpringMVC精品资源--JAX-RS &amp; SpringMVC supported maven buil.zip

    SpringMVC和JAX-RS是两种在Java世界中广泛使用的Web开发框架,它们都用于构建RESTful服务,但有着不同的设计哲学和技术实现。这个压缩包"SpringMVC精品资源--JAX-RS & SpringMVC supported maven build.zip"显然是一...

    JAX-RS+spring

    **JAX-RS与Spring结合使用** 1. **集成方式**: 通常通过Spring的Servlet容器如Tomcat或Jetty来部署JAX-RS应用,Spring负责应用的上下文管理和依赖注入,JAX-RS处理REST接口。 2. **Spring REST**: 使用Spring MVC...

    jax-rs 2.1规范最终版-英文

    JAX-RS 2.1规范详细地介绍了应用程序的配置、资源类的生命周期与环境、资源方法的参数和返回类型,以及异常处理。同时,规范还描述了URI模板的使用、资源子资源的声明、媒体类型能力的声明、注解继承、请求与资源...

    Spring MVC与JAX-RS比较与分析

    如果你使用Spring进行开发,那可能想知道(或者有人曾问过你)Spring MVC与JAX-RS有何异同点?更进一步,如果你手头有一个Spring MVC应用,使用了控制类继承(SimpleFormController等),你可能还意识不到现在的...

    JAX-RS Extension

    8. **工具使用**:另一标签“工具”可能意味着博客讨论了与JAX-RS或RESTlet相关的工具,如IDE插件、调试工具、性能测试工具等,这些工具能帮助开发者更高效地开发和维护REST服务。 总的来说,这篇博客文章可能涵盖...

    jax-rs开发实例(bookkeeping)

    1. **注解**:JAX-RS使用注解来定义资源类和方法,比如`@Path`定义资源路径,`@GET`、`@POST`等定义HTTP操作,`@PathParam`、`@QueryParam`、`@HeaderParam`等处理请求参数。 2. **实体类**:用于表示服务处理的...

    RESTful Java with JAX-RS 2.0

    《RESTful Java with JAX-RS 2.0》是一本专注于Java语言在构建RESTful服务方面的专著。作者Bill Burke以其在Java技术方面的深厚底蕴和对RESTful架构的深刻理解,引领读者深入理解并掌握JAX-RS 2.0标准。 书中首先...

    java_webservice_JAX-RS.zip_cxf_jax_jax-rs_spring cxf

    JAX-RS与RESTful服务** JAX-RS是Java标准,用于创建基于HTTP协议的RESTful Web服务。REST(Representational State Transfer)是一种轻量级、无状态、基于资源的架构风格。JAX-RS通过注解简化了服务的开发,例如`@...

    JAX-RS-FileUpload-Jersey-Example

    在本文中,我们将深入探讨如何使用Java API for RESTful Web Services (JAX-RS) 和 Jersey 实现文件上传功能。标题“JAX-RS-FileUpload-Jersey-Example”暗示了我们将集中讨论如何利用这两个强大的工具来创建一个...

Global site tag (gtag.js) - Google Analytics