来源: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,
- @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”
则:
- @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 以动态的方式获得:
- @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,默认值
例子:
- @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 1.0是最初的规范,它定义了基本的REST服务创建方法,如使用`@Path`注解定义资源路径,`@GET`、`@POST`等注解处理HTTP请求,以及`@PathParam`、`@QueryParam`等用于提取请求参数。同时,它也引入了实体类和...
JAX-RS 使用注解来定义资源的行为和属性,使得开发者可以轻松地创建 RESTful Web 服务。 @Path 注解 @Path 注解是 JAX-RS 中最基本的注解之一,它用来指定资源的 URI 路径。该注解可以应用在类级别和方法级别上。在...
1. **核心注解**:JAX-RS提供了多种注解来定义资源类和方法,如`@Path`用于指定资源的URI路径,`@GET`、`@POST`等用于定义HTTP方法,`@PathParam`、`@QueryParam`、`@HeaderParam`、`@CookieParam`等用于绑定请求...
**JAX-RS与REST接口实例...总结,这个JAX-RS和REST的实例展示了如何通过Java实现RESTful Web服务,包括服务端的资源类定义、服务启动类以及客户端的调用。理解并掌握这些知识对于开发基于HTTP的分布式应用至关重要。
JAX-RS定义了一套注解和接口,使得开发者能够轻松地将POJO(Plain Old Java Object)转换成RESTful服务。 #### 核心概念与组件 JAX-RS的核心概念包括资源、表示、方法和URI。其中,资源是Web服务的基本单元,通过...
JAX-RS(Java API for RESTful Web Services)和Spring框架是两种在Java开发中广泛使用的技术,它们分别处理不同的层面。JAX-RS是Java平台上的标准,用于构建RESTful Web服务,而Spring则是一个全面的后端框架,提供...
1. **注解**:JAX-RS使用注解来定义资源类和方法,比如`@Path`定义资源路径,`@GET`、`@POST`等定义HTTP操作,`@PathParam`、`@QueryParam`、`@HeaderParam`等处理请求参数。 2. **实体类**:用于表示服务处理的...
本篇将详细介绍如何使用Java技术栈,特别是JAX-WS和JAX-RS,以及Maven和Spring来创建这两种不同类型的Web服务。 首先,让我们关注SOAP Web服务的创建,这是通过JAX-WS实现的。JAX-WS是Java API for XML Web ...
JAX-RS是Java EE的一部分,它定义了一组注解,如`@Path`, `@GET`, `@POST`, `@PUT`, `@DELETE`, `@PathParam`, `@QueryParam`等,用于标记Java类和方法,使其成为REST服务的端点。这些注解使得开发RESTful服务变得...
**JAX-RS方式的RESTful Web Service开发详解** ...JAX-RS是Java API for RESTful Web Services的简称,它...对于源码和工具的研究,读者可以通过查看提供的`src`压缩包文件中的示例代码,进一步理解和实践JAX-RS的使用。
"jaxrs-ri"可能是指JAX-RS的参考实现,这是一个完整的实现,用于演示和测试JAX-RS规范的功能。通常,开发者会用它来进行开发和测试,以确保自己的应用符合JAX-RS标准。 在使用"jaxrs-ri-2.26.zip"时,你可以通过...
在JAX-RS中,`PathParam`是一个重要的注解,用于从URL路径中提取参数,它使得我们能够创建动态和灵活的REST端点。 `PathParam`注解的工作原理是将URL路径中的占位符与方法参数关联起来。例如,如果你有一个URL `/...
在压缩包中,"resteasy-jaxrs-3.0.6.Final"是核心库文件,它包含了Resteasy框架的所有必要组件,包括用于处理HTTP请求和响应的核心类、解析和序列化JSON或XML数据的提供者、以及对其他技术(如JPA、JAXB)的集成模块...
【标题】"SpringMVC精品资源--JAX-RS & SpringMVC supported gradle bui.zip" 提供的是一份关于使用Gradle构建支持JAX-RS和SpringMVC的项目资源。这涉及到两个关键的技术栈:SpringMVC,一个用于构建Web应用程序的...
在本压缩包中,"JavaEE examples (including JAX-RS, Wildfly Swarm)"显然包含了与JavaEE相关的示例代码,特别是JAX-RS和Wildfly Swarm两个关键的技术。 **JAX-RS**是Java API for RESTful Web Services的简称,它...
jaxrs-api.jar 包含了 JAX-RS 规范的核心接口和类,这些接口和类为开发者提供了构建 RESTful API 的基础工具。以下是这个库中的主要组件和概念: 1. **资源类(Resource Classes)**:在 JAX-RS 中,你可以通过创建...
**JAX-RS:Java API for RESTful Web Services** JAX-RS,全称为Java API for ..."jaxrs-ri-2.19"文件可能是用于学习和实践JAX-RS的一个资源包,包含了具体实现和示例代码,有助于深入理解JAX-RS的工作原理和用法。
4. **URI模板与参数绑定**: `@PathParam`, `@QueryParam`, `@HeaderParam`, `@CookieParam`等注解用于从URI、查询参数、头部和cookies中提取值,并将其绑定到方法参数上。 5. **安全与认证**: JAX-RS允许开发者通过...