https://www.cnblogs.com/chen-lhx/p/5599806.html

在第一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 参数注解相关推荐

  1. python语言的变量随时_Python参数注解

    #### 1.函数定义的弊端 - python是动态语言,变量随时可以被赋值,且能赋值为不同的类型,动态语言很灵活,但是这种特性也是弊端: - **难发现**:由于不做任何类型检查,直到运行期问题才显 ...

  2. java自定义方法参数注解_Java方法中的参数太多,第1部分:自定义类型

    java自定义方法参数注解 我认为构造函数和方法中冗长的参数列表是Java开发中的另一个" 危险信号 ",就逻辑和功能而言,它们不一定是"错误的",但通常暗示当 ...

  3. python参数注解

    函数定义的弊端: python是动态语言,变量随时可以被赋值,且能赋值为不同的类型,动态语言很灵活,但是这种特性也是弊端 难发现:由于不做任何类型检查,直到运行期问题才显现出来,或者线上运行时才能暴露 ...

  4. x264(一)-x264参数注解:x264_param_t

     x264参数注解:x264_param_t typedef struct x264_param_t { // CPU 标志位 */ unsigned int cpu; int         i ...

  5. java 获取自定义参数类型_Springboot中使用自定义参数注解获取 token 中用户数据...

    使用自定义参数注解获取 token 中User数据 使用背景 在springboot项目开发中需要从token中获取用户信息时通常的方式要经历几个步骤 拦截器中截获token TokenUtil工具类 ...

  6. Retrofit 网络请求参数注解@Path @Field @Query 等使用

    请求参数呢大致如下,到个别人的图, 下面就说下这些内容使用 其中 @Path.@Query.@QueryMap 使用 Get 请求 , 加入使用了Post 请求注解使用@Path  一般都会是项目崩溃 ...

  7. java参数注解pam_吃透Java基础十:注解

    一.什么是注解 官方定义: 注解是一系列元数据,它提供数据用来解释程序代码,但是注解并非是所解释的代码本身的一部分.注解对于代码的运行效果没有直接影响. 注解有许多用处,主要如下: 提供信息给编译器: ...

  8. Swagger使用————接口参数注解的使用缺陷

    问题描述 在使用springboot开发web项目时,用到了swagger框架,来生成web api文档.但是其中有一项是举例说明参数的结构,如下图: 但是,这个功能真的是非常方便,因为可以让前端开发 ...

  9. spring多参java注解_spring参数注解校验

    在写一些controller协议的时候,有些时候从前端传过来的参数较多,好的办法是定义一个实体类来封装请求参数,但是用实体类封装参数后,无法对参数值进行校验,可以使用spring的@Validated ...

最新文章

  1. poj-1031-fence(不是我写的,我只是想看着方便)
  2. 呵呵,又在这里开了个博客,现在已经有好几个了
  3. Matplotlib实例教程(十)边缘直方图
  4. Oracle-多表连接的三种方式解读
  5. JSP、ASP、PHP Web应用程序怎么这么多P!
  6. 【云栖大会】用爱成就彼此 距云栖大会还有10天
  7. 在Spark Scala/Java应用中调用Python脚本,会么?
  8. Vue2.0用户权限控制解决方案
  9. 虚拟机迁移Sphere vMotion
  10. 阿里云Anolis OS 8.4
  11. 惊呆!200行代码就能实现的隐身术你见过么?
  12. 【电脑办公软件有哪些】万彩办公大师教程丨重复音频文件探测工具
  13. 农业科研:大田作物智慧种植
  14. ieee 754 java_IEEE 754到十进制
  15. 642-825 认证题库
  16. HTTPS协议工作原理(SSL数字证书)
  17. c++ pair 用法详解
  18. 测试服务器并发量和承载力(压力测试)
  19. 详解操作系统中的接口
  20. matplotlib.plot显示希腊字母及标题中的平方函数

热门文章

  1. c# 未能找到类型或命名空间名称“ManagementClass”(是否缺少 using 指令或程序集引用?)
  2. 叮咚,你的耳鼻喉专科医院营销策略快来查收
  3. ASH(Active Session History)
  4. mac 安装 docker教程
  5. 4.思科路由器基本配置及排除题目练习
  6. 求生之路显示服务器的指令,求生之路的所有控制台指令!
  7. 目标真实IP查找方法整理
  8. Python rstrip函数踩坑记录
  9. 腾讯云服务器/Windows Server 2012 R2 上搭载web服务 动态图图解(http协议)# 谭子
  10. 北京地铁,2号线换乘13号线,用时最短换乘线路