在第一RESTEasy教程我们已经学习了基本的Web服务和休息我们已经测试了一个简单的REST风格的Web服务。在本教程中,我们将
显示如何将Web应用程序元素(形式参数,查询参数和更多)为REST风格的Web服务。
你可以使用下面的注释绑定HTTP请求REST风格的Web服务:

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

让我们探索所有可能的相互作用。

@FormParam

@formparam可以用来注入web表单的参数为REST风格的Web服务。

下面是一个例子:

在这里,我们提交一个后请求包含两个参数的电子邮件和密码
是转化为参数的“E”和“P”的登录方法。
这里是完整的例子:

<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
{
  @POST
  @Path("login")
  public String login(@FormParam("email") String e, @FormParam("password") String p) { 
    return "Logged with " + e + " " + p;
  }
}

作为一种替代方法,您可以在类级别上绑定参数电子邮件和密码,如果您需要在不同的其他参数重新使用相同的参数,可以使用它是有用的
服务方法。

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

你需要修改相应的方法:

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

@PathParam

@pathparam标注绑定一个路径段资源的方法参数的值。例如,下面的方法将拦截HTTP GET  http://server:port/login/12345

“12345”@pathparam转换为字符串“id”

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

作为@formparam,你可以嵌入@pathparam声明在类级别上,如果你喜欢。

@QueryParam

@queryparam  标注绑定一个路径段资源的方法参数的值。例如,下面的方法将拦截HTTP GET  http://server:port/login?zip=12345 和
将查询参数 “zip”  注入到方法参数  “zip”

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

@queryparam可以方便快捷使用defaultValue标注以便你能如果没有查询参数是通过避免空指针异常。

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

作为@formparam,你可以嵌入@pathparam声明在类级别上,如果你喜欢。

@HeaderParam

@headerparam  标注提取  HTTP标头( HTTP header)并将它绑定到一个方法的参数。

例子:

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

@CookieParam

@cookieparam注释读取信息存储为一个cookie,并将它绑定到一个方法的参数。例子:

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

@MatrixParam

@matrixparam注释可以用来绑定包含多个   property (属性)=value(值)   方法参数表达式。例如,假设你要调用一个网址   http://server:port/login?name=francesco&surname=marchioni

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

RESTEasy:@FormParam、@PathParam、@QueryParam、@HeaderParam、@CookieParam、@MatrixParam说明的更多相关文章

  1. jax-rs中的一些参数标注简介(@PathParam,@QueryParam,@MatrixParam,@HeaderParam,@FormParam,@CookieParam)

    先复习一下url的组成: scheme:[//[user:password@]host[:port]][/]path[?query][#fragment] jax-rs anotation @Path ...

  2. 2.restEasy中@PathParam和@QueryParam的区别

    例如代码: @GET @Path("/{id}") @Produces(MediaType.APPLICATION_JSON) public T query(@PathParam( ...

  3. RESTful和JAX-RS

    一.简介 Java Web有很多成熟的框架,主要可以分为两类Web Application和Web Services.用于Web Application的框架包括官方的Servlet/JSP, JST ...

  4. 关于使用spring mvc或者resteasy构建restful服务的差别与比较

    resteasy 是 jboss的一个开源java api for restful service(JSR 311,sun 2008年发布,最新GA版本是2.0, JAX-RS 2.0 (JSR-33 ...

  5. Spring boot中使用springfox来生成Swagger Specification小结

    Rest接口对应Swagger Specification路径获取办法: 根据location的值获取api   json描述文件 也许有同学会问,为什么搞的这么麻烦,api json描述文件不就是h ...

  6. @RequestParam,@PathParam,@PathVariable,@QueryParam注解的使用区别

    获取url模板上数据的(/{id})@DefaultValue 获取请求参数的(包括post表单提交)键值对(?param1=10&param2=20).可以设置defaultValue JA ...

  7. RestEasy简介

    RestEasy简介 RestEasy技术说明 简介 RESTEasy RESTEasy是JBoss的一个开源项目,提供各种框架帮助你构建RESTful Web Services和RESTful Ja ...

  8. RESTEasy常用注解

    一.@Path,标注资源类或方法的相对路径          Path参数的形式有三种:          1.固定值          2.纯正则表达式          3.固定值和正则表达式的混 ...

  9. Restful中 @RequestParam,@PathParam,@PathVariable等注解区别

    @RequestParam 和 @PathVariable 注解是用于从request中接收请求的,两个都可以接收参数,关键点不同的是@RequestParam 是从request里面拿取值,而 @P ...

随机推荐

  1. 用python将SQL格式文件改成自己想要的格式

    INSERT INTO TTT (NSAME, ID, AGE) VALUES ('AAA', '201023210816', '22'); 将上面的SQL格式改成以下的格式 AAA|20102321 ...

  2. Swift - 给表格UITableView添加索引功能(快速定位)

    像iOS中的通讯录,通过点击联系人表格右侧的字母索引,我们可以快速定位到以该字母为首字母的联系人分组.   要实现索引,我们只需要两步操作: (1)实现索引数据源代理方法 (2)响应点击索引触发的代理 ...

  3. 算法设计与分析——多边形游戏(DP)

    1.问题描述:   给定N个顶点的多边形,每个顶点标有一个整数,每条边上标有+(加)或是×(乘)号,并且N条边按照顺时针依次编号为1~N.下图给出了一个N=4个顶点的多边形. 游戏规则 :(1) 首先 ...

  4. UVA 311 Packets 贪心+模拟

    题意:有6种箱子,1x1 2x2 3x3 4x4 5x5 6x6,已知每种箱子的数量,要用6x6的箱子把全部箱子都装进去,问需要几个. 一开始以为能箱子套箱子,原来不是... 装箱规则:可以把箱子都看 ...

  5. keil uVision4的安装以及KEIL_Lic.exe的注冊

    1.首先毋庸置疑,在网上下载keil uVision4的EXE可运行文件,可能存在两个版本号.51核的单片机(33.3M)和微控制器开发合集(244M),可依据自己的实际须要选择.没有必要都装 2.依 ...

  6. D7升级时候发现许多System函数和网络函数只有Byte版本的,需要注意

    SetLength 对于字符串,是WideChar的长度GetMem 只针对ByteMove 只针对ByteFillChar 只针对ByteWriteFile(API) 只针对Byte SetSock ...

  7. regsvr32 命令小集注册OCX控件,注册控件(包括十几个举例)

    Regsvr32 进程文件: regsvr32 or regsvr32.exe  进程名称: Microsoft DLL Registration Service  英文描述: regsvr32.ex ...

  8. Swift - 设置UIView的背景色和背景图片

    1,使用UIColor的内置颜色设置背景色 1 2 var page = UIView() page.backgroundColor = UIColor.greenColor() 2,设置自定义颜色 ...

  9. Bdsyn百度手机助手是何物,它是怎样神不知鬼不觉地安装到你的电脑里的?

    [电脑软件管理中Bdsyn手机助手的问题]Bdsyn手机助手 is developed by Baidu, Inc. and is used by 10 users of Software Infor ...

  10. 摘要算法CRC8、CRC16、CRC32,MD2 、MD4、MD5,SHA1、SHA256、SHA384、SHA512,RIPEMD、PANAMA、TIGER、ADLER32

    1.CRC8.CRC16.CRC32 CRC(Cyclic Redundancy Check,循环冗余校验)算法出现时间较长,应用也十分广泛,尤其是通讯领域,现在应用最多的就是 CRC32 算法,它产 ...