`
wb284551926
  • 浏览: 551304 次
文章分类
社区版块
存档分类
最新评论

RESTEasy:@FormParam、@PathParam、@QueryParam、@HeaderParam、@CookieParam、@MatrixPara

 
阅读更多

介绍:

In the first RESTEasy tutorial we have learnt the basics about REST Web services and we have tested a simple RESTful Web service. In this tutorial we will
show how to inject web application elements (form parameters, query parameters and more) into a RESTful Web service.

You can use the following annotations to bind HTTP requests to a RESTful web service:

@FormParam
@PathParam
@QueryParam
@HeaderParam
@CookieParam
@MatrixParam
 

Let's explore all the possible interactions.

@FormParam

The annotation @FormParam can be used to inject the parameters of a Web form into a RESTful Web service.
Here's an example:

resteasy tutorial

 

Here we are submitting a POST request containing two parameters email and password which
are translated into the parameters "e" and "p" of the login method.

 

Here's the full example:

<form method="POST" action="login">
    Email Address: <input type="text" name="email"><br>
    Password:      <input type="text" name="password">
    <input type="submit">
</form>

 

@Path("/")
public class LoginService
{
  @Path("login")
  @POST
  public String login(@FormParam("email") String e, @FormParam("password") String p) {   
     return "Logged with " + e + " " + p;
  }
}


As an alternative, you can bind the parameters email and password at class level, which can be useful if you need to re-use the same parameters across different
methods of the service.

public class User {
  @FormParam("email")
  private String email;

  @FormParam("password")
  private String password;
}


You would need to modify the REST method accordingly:

 

 @POST
 @Path("login")
 public String login(@Form User form) {
     return "Logged with " + form.email + " " + form.password;
 }

 

@PathParam

 

The @PathParam annotation binds the value of a path segment to a resource method parameter. For example, the following method would intercept an HTTP GET like http://server:port/login/12345 and
convert the PathParam "12345" into the String "id"

@Path("/")
public class LoginService
{
  @GET
  @Path("login/{zip}")
  public String login(@PathParam("zip") String id) {
     return "Id is " +id;
  }
}

As for @FormParam, you can embed the @PathParam declaration at class level, if you prefer.

 

@QueryParam

The @QueryParam annotation binds the value of a path segment to a resource method parameter. For example, the following method would intercept an HTTP GET like http://server:port/login?zip=12345 and
inject the query parameter "zip" into the method parameter "zip"

@Path("/")
public class LoginService
{
 @GET
 @Path("login/{zip}")
  public String login(@QueryParam("zip") String zip) {
     return "Id is " +id;
  }
}


QueryParam can be convenientely used with the DefaultValue annotation so that you can avoid a null pointer exception if no query parameter is passed.

 @GET
 @Path("login/{zip}")
 public String login(@DefaultValue("11111") @QueryParam("zip") String zip) {
     return "Id is " +id;
 }

 

As for @FormParam, you can embed the @PathParam declaration at class level, if you prefer.

@HeaderParam

The @HeaderParam annotation extracts information from the HTTP header and binds it to a method parameter. Example:

@GET
public String callService(@HeaderParam("User-Agent") String whichBrowser) {
  ...
}

 

@CookieParam

The @CookieParam annotation reads an information stored as a cookie and binds it to a method parameter. Example:

@GET
public String callService(@CookieParam("sessionid") String sessionid) {
  ...
}

 

@MatrixParam

The @MatrixParam annotation can be used to bind an expression containing several property=value to a method parameter. For example, supposing you were to invoke an URL like http://server:port/login;name=francesco;surname=marchioni

@GET
public String callService(@MatrixParam("name") String name,
                                @MatrixParam("surname") String surname) {
...
}

 

 

另外:

http://www.soapui.org/REST-Testing/understanding-rest-parameters.html

http://docs.oracle.com/cd/E19226-01/820-7627/6nisfjmk8/index.html

 

原文地址:http://www.xuebuyuan.com/2129382.html

分享到:
评论

相关推荐

    Netty-Resteasy-Spring

    @PathParam,@QueryParam,@HeaderParam,@CookieParam,@MatrixParam,@FormParam,分别标注方法的参数来自于HTTP请求的不同位置,例如@PathParam来自于URL的路径,@QueryParam来自于URL的查询参数,@HeaderParam...

    RESTEasy @path 与正则表达式映射

    RESTEasy 是一个流行的开源框架,用于在 Java 中实现 RESTful Web 服务。它是一个 JBoss 组织下的项目,基于 JAX-RS(Java API for RESTful Web Services)规范,使得开发人员能够轻松地创建符合 REST 原则的 HTTP ...

    resteasy-reference-guide-en-US

    public List&lt;User&gt; getUsers(@CookieParam("session") String sessionId) { // 读取会话ID } } ``` #### 表单参数`@FormParam`与`@Form` `@FormParam`用于处理表单提交的数据,而`@Form`则可以用来处理整个表单...

    spring-boot-resteasy:RESTEasy 的 Spring Boot 自动配置

    入门构建此项目并将其安装到您的 Maven 存储库中: $ mvn install然后,您应该在应用程序的build.gradle或pom.xml添加对org.springframework.boot:spring-boot-resteasy:1.0.0.BUILD-SNAPSHOT的build.gradle 。...

    resteasy:resteasy博客系列的示例文件和功能

    此“resteasy:resteasy博客系列的示例文件和功能”项目,显然是一系列教程的配套资源,旨在帮助开发者更好地理解和应用RESTEasy框架。通过这个项目,我们可以深入学习RESTEasy的各种特性和用法。 首先,让我们从...

    resteasy2.2.1官方jar包

    2. **注解驱动**:Resteasy支持多种JAX-RS注解,如`@Path`、`@PathParam`、`@QueryParam`、`@HeaderParam`、`@CookieParam`和`@FormParam`,用于处理HTTP请求的不同部分,如路径参数、查询参数、头信息和表单数据。...

    RestEasy使用说明

    - `@PathParam`, `@QueryParam`, `@HeaderParam`, `@CookieParam`, `@MatrixParam`, `@FormParam`:这些注解用于获取请求中的不同部分的数据,如URL参数、查询参数、头部信息等。 **配置RESTEasy** 在Web应用的`...

    netty-resteasy-spring:Netty 、 RESTEasy 、 Spring 的集成演示

    RESTEasy:RESTEasy是JBoss的一个开源项目,提供各种框架帮助你构建RESTful Web Services和RESTful Java应用程序。它是JAX-RS规范的一个完整实现并通过JCP认证。 JAX-RS: 是一套用java实现REST服务的规范。(全名...

    resteasy开发手册

    手册中还包含了关于安全、资源外观、Matrix参数(@MatrixParam)、Cookie参数(@CookieParam)和表单参数(@FormParam)的详细章节,以及如何使用@DefaultValue注解来提供默认值,@Encoded注解和@Context注解来访问请求上...

    resteasy guide

    @CookieParam `@CookieParam`用于读取和处理HTTP Cookie。 #### 11. @FormParam `@FormParam`用于处理表单数据,尤其是在POST请求中提交的数据。 #### 12. @Form `@Form`注解用于将整个表单数据绑定到方法参数...

    resteasy技术说明

    - **@PathParam, @QueryParam, @HeaderParam, @CookieParam, @MatrixParam, @FormParam**:这些注解用于从请求的不同部分获取参数,如 URL 路径、查询参数、头信息、Cookie 等。 ## 配置 RESTEasy RESTEasy 的配置...

    ahcj8-jetty-resteasy:异步 HTTP 客户端调用 kvish

    标题 "ahcj8-jetty-resteasy:异步 HTTP 客户端调用 kvish" 提到了一个关于使用 Jetty 和 RestEasy 进行异步 HTTP 客户端调用的项目。这个项目很可能是为了演示如何在 Java 环境中高效地处理网络请求,特别是利用 ...

    Resteasy英文文档

    ### 十、@CookieParam 解释`@CookieParam`注解,用于访问和操作HTTP cookie中的数据。 ### 十一、@FormParam 探讨`@FormParam`注解,用于处理表单提交的数据,支持多种数据类型。 ### 十二、@Form 分析`@Form`注解...

    meteor-resteasy:适用于Meteor应用程序的简单REST客户端

    《meteor-resteasy:Meteor应用程序的高效REST客户端》 在当今的Web开发中,RESTful API已经成为前后端分离架构中的重要一环。对于基于Meteor框架构建的应用程序,与REST API进行交互是实现数据交换的关键。而...

    Resteasy:REST和JAXRS

    高枕无忧 RESTEasy是一个JBoss.org项目,旨在提供用于开发Java中的客户端和服务器RESTful应用程序和服务的生产力框架。 它主要是JAX-RS的实现,但是您可以在存储库中找到其他一些实验代码。 该项目页面可以在上找到...

    RESTEasy:用于创建RESTful Web服务的Java框架-开源

    RESTEasy是一款基于Java的开源框架,专为构建RESTful(Representational State Transfer)Web服务而设计。RESTful架构风格强调简洁、直接的交互方式,它提倡通过URI来定位资源,使用HTTP方法(如GET、POST、PUT、...

    resteasy实例demo

    5. **参数绑定**:在方法参数上使用`@PathParam`、`@QueryParam`、`@HeaderParam`、`@CookieParam`等注解,可以从URL路径、查询字符串、HTTP头或Cookie中提取值,传递给方法。 6. **返回类型**:RestEasy支持多种...

    RestEasy简介

    2. **绑定参数**: 使用`@PathParam`、`@QueryParam`、`@HeaderParam`等注解将HTTP请求的参数绑定到方法参数。 3. **配置应用**: 配置应用服务器或者Servlet容器,添加RestEasy的依赖并注册RestEasy的Servlet或...

    resteasy-jaxrs-2.3.2官方jar包

    例如,`@RolesAllowed`用于权限控制,`@QueryParam`和`@PathParam`用于处理请求参数,`@HeaderParam`和`@CookieParam`则用于处理HTTP头和cookie。 3. **资源类(Resource Classes)**:在RESTEasy中,资源类是处理...

    RESTEasy JSON DEMO

    这通常通过注解来实现,例如`@QueryParam`、`@PathParam`、`@FormParam`等,它们帮助我们将HTTP请求参数映射到Java方法的参数。 在RESTfulExample这个项目中,我们可能会看到以下关键组件: 1. **资源类(Resource...

Global site tag (gtag.js) - Google Analytics