`

JAX-RS@QueryParam和@PathParam比较

 
阅读更多

来源:http://jackyrong.iteye.com/blog/1128364

1 先来看@queryparam
   先看例子:
 

Java代码  收藏代码
  1. Path("/users")  
  2. public class UserService {  
  3.    
  4.     @GET  
  5.     @Path("/query")  
  6.     public Response getUsers(  
  7.         @QueryParam("from"int from,  
  8.         @QueryParam("to"int to,  
  9.         @QueryParam("orderBy") List<String> orderBy) {  
  10.    
  11.         return Response  
  12.            .status(200)  
  13.            .entity("getUsers is called, from : " + from + ", to : " + to  
  14.             + ", orderBy" + orderBy.toString()).build();  
  15.    
  16.     }  
  17.    
  18. }  


   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代码  收藏代码
  1. @GET  
  2.     @Path("{year}/{month}/{day}")  
  3.     public Response getUserHistory(  
  4.             @PathParam("year"int year,  
  5.             @PathParam("month"int month,   
  6.             @PathParam("day"int day) {  
  7.    
  8.        String date = year + "/" + month + "/" + day;  
  9.    
  10.        return Response.status(200)  
  11.         .entity("getUserHistory is called, year/month/day : " + date)  
  12.         .build();  
  13.    
  14.     }  


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

2 以动态的方式获得:
  

Java代码  收藏代码
  1. @Path("/users")  
  2. public class UserService {  
  3.    
  4.     @GET  
  5.     @Path("/query")  
  6.     public Response getUsers(@Context UriInfo info) {  
  7.    
  8.         String from = info.getQueryParameters().getFirst("from");  
  9.         String to = info.getQueryParameters().getFirst("to");  
  10.         List<String> orderBy = info.getQueryParameters().get("orderBy");  
  11.    
  12.         return Response  
  13.            .status(200)  
  14.            .entity("getUsers is called, from : " + from + ", to : " + to  
  15.             + ", orderBy" + orderBy.toString()).build();  
  16.    
  17.     }  
  18.    



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代码  收藏代码
  1. @Path("/users")  
  2. public class UserService {  
  3.    
  4.     @GET  
  5.     @Path("/query")  
  6.     public Response getUsers(  
  7.         @DefaultValue("1000"@QueryParam("from"int from,  
  8.         @DefaultValue("999")@QueryParam("to"int to,  
  9.         @DefaultValue("name"@QueryParam("orderBy") List<String> orderBy) {  
  10.    
  11.         return Response  
  12.            .status(200)  
  13.            .entity("getUsers is called, from : " + from + ", to : " + to  
  14.             + ", orderBy" + orderBy.toString()).build();  
  15.    
  16.     }  



URL:users/query
输出:getUsers is called, from : 1000, to : 999, orderBy[name]

分享到:
评论

相关推荐

    JAX-RS包(内含1.0和1.4)

    JAX-RS 1.0是最初的规范,它定义了基本的REST服务创建方法,如使用`@Path`注解定义资源路径,`@GET`、`@POST`等注解处理HTTP请求,以及`@PathParam`、`@QueryParam`等用于提取请求参数。同时,它也引入了实体类和...

    JAX-RS注解及使用方法

    JAX-RS 使用注解来定义资源的行为和属性,使得开发者可以轻松地创建 RESTful Web 服务。 @Path 注解 @Path 注解是 JAX-RS 中最基本的注解之一,它用来指定资源的 URI 路径。该注解可以应用在类级别和方法级别上。在...

    JAX-RS入门jar包集合

    1. **核心注解**:JAX-RS提供了多种注解来定义资源类和方法,如`@Path`用于指定资源的URI路径,`@GET`、`@POST`等用于定义HTTP方法,`@PathParam`、`@QueryParam`、`@HeaderParam`、`@CookieParam`等用于绑定请求...

    JAX-RS之rest接口实例

    **JAX-RS与REST接口实例...总结,这个JAX-RS和REST的实例展示了如何通过Java实现RESTful Web服务,包括服务端的资源类定义、服务启动类以及客户端的调用。理解并掌握这些知识对于开发基于HTTP的分布式应用至关重要。

    JAX-RS+spring

    JAX-RS(Java API for RESTful Web Services)和Spring框架是两种在Java开发中广泛使用的技术,它们分别处理不同的层面。JAX-RS是Java平台上的标准,用于构建RESTful Web服务,而Spring则是一个全面的后端框架,提供...

    jax-rs开发实例(bookkeeping)

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

    jax-ws jax-rs 分别创建soap和restful类型的webservice

    本篇将详细介绍如何使用Java技术栈,特别是JAX-WS和JAX-RS,以及Maven和Spring来创建这两种不同类型的Web服务。 首先,让我们关注SOAP Web服务的创建,这是通过JAX-WS实现的。JAX-WS是Java API for XML Web ...

    restlet_jax-rs列子(客户端+服务端)

    JAX-RS是Java EE的一部分,它定义了一组注解,如`@Path`, `@GET`, `@POST`, `@PUT`, `@DELETE`, `@PathParam`, `@QueryParam`等,用于标记Java类和方法,使其成为REST服务的端点。这些注解使得开发RESTful服务变得...

    JAX-RS方式的RESTful Web Service开发

    **JAX-RS方式的RESTful Web Service开发详解** ...JAX-RS是Java API for RESTful Web Services的简称,它...对于源码和工具的研究,读者可以通过查看提供的`src`压缩包文件中的示例代码,进一步理解和实践JAX-RS的使用。

    最新jaxrs-ri-2.26.zip

    "jaxrs-ri"可能是指JAX-RS的参考实现,这是一个完整的实现,用于演示和测试JAX-RS规范的功能。通常,开发者会用它来进行开发和测试,以确保自己的应用符合JAX-RS标准。 在使用"jaxrs-ri-2.26.zip"时,你可以通过...

    JAX-RS-Path-Param-Example

    在JAX-RS中,`PathParam`是一个重要的注解,用于从URL路径中提取参数,它使得我们能够创建动态和灵活的REST端点。 `PathParam`注解的工作原理是将URL路径中的占位符与方法参数关联起来。例如,如果你有一个URL `/...

    Resteasy JAX-RS 3.0.6-all.zip最新官方zip包

    在压缩包中,"resteasy-jaxrs-3.0.6.Final"是核心库文件,它包含了Resteasy框架的所有必要组件,包括用于处理HTTP请求和响应的核心类、解析和序列化JSON或XML数据的提供者、以及对其他技术(如JPA、JAXB)的集成模块...

    SpringMVC精品资源--JAX-RS &amp; SpringMVC supported gradle bui.zip

    【标题】"SpringMVC精品资源--JAX-RS & SpringMVC supported gradle bui.zip" 提供的是一份关于使用Gradle构建支持JAX-RS和SpringMVC的项目资源。这涉及到两个关键的技术栈:SpringMVC,一个用于构建Web应用程序的...

    JavaEE examples (including JAX-RS, Wildfly Swarm,

    在本压缩包中,"JavaEE examples (including JAX-RS, Wildfly Swarm)"显然包含了与JavaEE相关的示例代码,特别是JAX-RS和Wildfly Swarm两个关键的技术。 **JAX-RS**是Java API for RESTful Web Services的简称,它...

    jaxrs-api.jar

    jaxrs-api.jar 包含了 JAX-RS 规范的核心接口和类,这些接口和类为开发者提供了构建 RESTful API 的基础工具。以下是这个库中的主要组件和概念: 1. **资源类(Resource Classes)**:在 JAX-RS 中,你可以通过创建...

    jaxrs资源包

    **JAX-RS:Java API for RESTful Web Services** JAX-RS,全称为Java API for ..."jaxrs-ri-2.19"文件可能是用于学习和实践JAX-RS的一个资源包,包含了具体实现和示例代码,有助于深入理解JAX-RS的工作原理和用法。

    jaxrs-2.25所有jar

    4. **URI模板与参数绑定**: `@PathParam`, `@QueryParam`, `@HeaderParam`, `@CookieParam`等注解用于从URI、查询参数、头部和cookies中提取值,并将其绑定到方法参数上。 5. **安全与认证**: JAX-RS允许开发者通过...

Global site tag (gtag.js) - Google Analytics