In JAX-RS, you can use @QueryParam
annotation to inject URI query parameter into Java method. for example,
/users/query?url=mkyong.com
In above URI pattern, query parameter is “url=mkyong.com“, and you can get the url value with @QueryParam("url")
.
1. @QueryParam example
See a full example of using @QueryParam
in JAX-RS.
import java.util.List; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.QueryParam; import javax.ws.rs.core.Response; @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(); } }
URI Pattern : “users/query?from=100&to=200&orderBy=age&orderBy=name”
getUsers is called, from : 100, to : 200, orderBy[age, name]
Like it ?
@QueryParam will convert the query parameter “orderBy=age&orderBy=name” into
@QueryParam will convert the query parameter “orderBy=age&orderBy=name” into
java.util.List
automatically.2. Programmatic Query Parameter
Alternatively, you can get the query parameters grammatically, via “@Context UriInfo
“. See equivalent version below :
import java.util.List; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.core.Context; import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; @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(); } }
URI Pattern : “users/query?from=100&to=200&orderBy=age&orderBy=name”
getUsers is called, from : 100, to : 200, orderBy[age, name]
3. @DefaultValue example
@DefaultValue
is good for optional parameter.
import java.util.List; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.QueryParam; import javax.ws.rs.core.Response; @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(); } }
URI Pattern : “users/query”
getUsers is called, from : 1000, to : 999, orderBy[name]
Download Source Code
Download it – JAX-RS-QueryParam-Example.zip (6 KB)
相关推荐
**JAX-RS方式的RESTful Web Service开发详解** RESTful Web Service是一种基于HTTP协议的、无状态的、客户端-服务器交互模式,它利用HTTP方法(GET、POST、PUT、DELETE等)来实现对资源的操作。JAX-RS是Java API ...
总的来说,`JAX-RS PathParam Example`是一个学习如何在REST服务中使用路径参数的好资源。通过这个示例,开发者可以深入理解如何将URL路径的动态部分映射到方法参数,以及如何构建灵活、可扩展的REST接口。对于任何...
**JAX-RS 2.0 RESTful 客户端编程实例** 在Java开发中,JAX-RS(Java API for RESTful Web Services)是一种用于创建RESTful Web服务的标准API。JAX-RS 2.0是这个标准的第二版,它引入了许多新特性和改进,使得开发...
为了实现这样的功能,项目可能使用了诸如JAX-RS(Java API for RESTful Web Services)这样的框架,它提供了一套标准的注解,如`@Path`、`@GET`、`@POST`等,使得创建REST服务变得简单。`@Path`注解用于指定资源的...
2. `src/main/java`:Java源代码目录,其中可能包含一个或多个包,比如`com.example.jaxrs`,里面包含了实现JAX-RS接口的Java类。 3. `src/main/resources`:存放非编译代码资源的地方,如配置文件、静态内容等。 4....
在这里,开发者可能使用了Java的JAX-RS(Java API for RESTful Web Services)规范来创建REST服务。JAX-RS提供了一套注解,如`@Path`、`@GET`、`@POST`等,使得在Java类和方法上可以直接声明RESTful接口。 1. **...
在 "jaxrs-ri" 目录下,你可能会找到一个简单的示例项目,展示了如何使用 Jersey 创建 RESTful API。这个项目可能包含以下关键组件: - **资源类(Resource Class)**:使用 `@Path` 注解声明的类,通常包含处理 ...
同时,了解JAX-RS 2.0标准的更多注解,如`@QueryParam`、`@PathParam`、`@HeaderParam`等,可以更好地定制REST服务的行为。 总之,这份"使用Spring整合CXF发布RESTFul项目案例"资料将帮助你深入理解RESTful服务的...
Jersey 是一个开源的、基于Java的RESTful Web服务客户端和服务器框架,它实现了JAX-RS(Java API for RESTful Web Services)规范。在标题和描述中提到的"jersey 2.25.1"是这个框架的一个特定版本,发布于2017年,...
Java中可以使用JAX-RS(Java API for RESTful Web Services)来创建和消费REST服务。例如,使用`@Path`、`@GET`、`@POST`等注解定义REST资源。 ```java // 服务接口 @Path("/restservice") public class Rest...
虽然具体的代码和配置没有给出,但根据“resteasy-example-master”的文件名,我们可以推测项目的根目录下可能包含了以下内容: - `pom.xml`:Maven 的项目对象模型,定义了项目的依赖,包括 RESTEasy 和 Jackson。...
Jersey 是由 Sun Microsystems(现为 Oracle 公司)开发的,它实现了 JAX-RS 1.1 规范,并且对后续的 JAX-RS 版本保持兼容。`jersey-archive-1.19` 是该框架的一个稳定版本,发布于2013年,虽然较旧,但仍然广泛应用...
在Java中,我们可以使用JAX-RS(Java API for RESTful Web Services)来定义资源类和方法。Wink实现了JAX-RS规范,因此我们可以通过注解来声明RESTful方法。例如,创建一个名为`HelloResource`的类,该类包含一个...
2. **Jersey框架**:Jersey是JAX-RS(Java API for RESTful Web Services)规范的参考实现。JAX-RS提供了一套标准接口和注解,简化了RESTful服务的开发。例如,`@Path`注解用于指定资源路径,`@GET`、`@POST`等注解...
在“RESTful-web-services-example--master”这个压缩包中,很可能包含了使用Java实现的RESTful服务源代码,包括资源类、控制器、数据模型等,以及可能的测试案例。通过对这些文件的分析和学习,你可以更好地理解...
<artifactId>resteasy-jaxrs 版本号 ``` 确保使用最新的稳定版本。 **3. 创建REST资源类** 在项目中创建一个Java类,例如`HelloWorldResource.java`,并使用JAX-RS注解来定义REST资源和HTTP方法。例如: ```...
在指定的包或类中,你可以创建Java类来表示REST资源,这些类通常会使用JSR 311或JAX-RS注解(如`@Path`, `@GET`, `@POST`, `@QueryParam`等)来定义路由和处理方法。 例如: ```java @Path("/hello") public class...
在"RESTful_WS_Example-master"这个压缩包中,我们可以预期找到以下文件和目录: 1. `pom.xml`:Maven项目的配置文件,包含项目依赖和构建设置。 2. `src/main/java`:Java源代码目录,包含了REST服务的实现类。 3....
import org.apache.cxf.jaxrs.client.JAXRSClientFactory; import org.apache.cxf.jaxrs.client.WebClient; public class RestClientExample { public static void main(String[] args) { RestClient client = ...
Jersey2 是一个基于 Java 的 RESTful Web 服务实现框架,它属于 JAX-RS(Java API for RESTful Web Services)规范的一部分。RESTful 风格的 Web 服务已经成为现代互联网应用程序中数据交换和通信的主要方式。Jersey...