RESTEasy:@FormParam、@PathParam、@QueryParam、@HeaderParam、@CookieParam、@MatrixParam说明
在第一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说明的更多相关文章
- jax-rs中的一些参数标注简介(@PathParam,@QueryParam,@MatrixParam,@HeaderParam,@FormParam,@CookieParam)
先复习一下url的组成: scheme:[//[user:password@]host[:port]][/]path[?query][#fragment] jax-rs anotation @Path ...
- 2.restEasy中@PathParam和@QueryParam的区别
例如代码: @GET @Path("/{id}") @Produces(MediaType.APPLICATION_JSON) public T query(@PathParam( ...
- RESTful和JAX-RS
一.简介 Java Web有很多成熟的框架,主要可以分为两类Web Application和Web Services.用于Web Application的框架包括官方的Servlet/JSP, JST ...
- 关于使用spring mvc或者resteasy构建restful服务的差别与比较
resteasy 是 jboss的一个开源java api for restful service(JSR 311,sun 2008年发布,最新GA版本是2.0, JAX-RS 2.0 (JSR-33 ...
- Spring boot中使用springfox来生成Swagger Specification小结
Rest接口对应Swagger Specification路径获取办法: 根据location的值获取api json描述文件 也许有同学会问,为什么搞的这么麻烦,api json描述文件不就是h ...
- @RequestParam,@PathParam,@PathVariable,@QueryParam注解的使用区别
获取url模板上数据的(/{id})@DefaultValue 获取请求参数的(包括post表单提交)键值对(?param1=10¶m2=20).可以设置defaultValue JA ...
- RestEasy简介
RestEasy简介 RestEasy技术说明 简介 RESTEasy RESTEasy是JBoss的一个开源项目,提供各种框架帮助你构建RESTful Web Services和RESTful Ja ...
- RESTEasy常用注解
一.@Path,标注资源类或方法的相对路径 Path参数的形式有三种: 1.固定值 2.纯正则表达式 3.固定值和正则表达式的混 ...
- Restful中 @RequestParam,@PathParam,@PathVariable等注解区别
@RequestParam 和 @PathVariable 注解是用于从request中接收请求的,两个都可以接收参数,关键点不同的是@RequestParam 是从request里面拿取值,而 @P ...
随机推荐
- Duanxx的C++学习: 使用类没有被定义 原因及解决方法
今天,随着C++写的神经网络算法.我发现了一个很令人费解的问题,下面的描述一般地描述,例如: 我有两个类ClassA和ClassB,它们分别有成员变量a.b; ClassA有一个函数是这种:Funct ...
- 微软推荐的130道ASP.NET常见面试题及答案
1. 简述 private. protected. public. internal 修饰符的访问权限. 答 . private : 私有成员, 在类的内部才可以访问. protected : 保护成 ...
- (Relax 数论1.6)POJ 1061 青蛙的约会(扩展的欧几里得公式)
/* * POJ_1061.cpp * * Created on: 2013年11月19日 * Author: Administrator */ #include <iostream> # ...
- vim 操作指令1
1.vim 在命令行中输入vim,进入vim编辑器 2.i 按一下i键,下端显示 –INSERT–插入命令,在vim中可能任意字符都有作用 3.Esc 退出i(插入)命令进行其它命令使用 4.:r f ...
- 【UVA】12299-RMQ with Shifts(线段树)
改动的时候因为数据非常小,所以能够直接暴力改动,查询的时候利用线段树即可了. 14337858 option=com_onlinejudge&Itemid=8&page=show_pr ...
- Visual Studio Code中文文档
Visual Studio Code中文文档 Visual Studio Code是一个轻量级但是十分强大的源代码编辑器,重要的是它在Windows, OS X 和Linux操作系统的桌面上均可运行. ...
- 进一步解 apt-get 的几个命令
用 apt-get 也非常久了,没多想它的实现,近期遇到 gstreamer 装不上的问题.才多看看了它 apt-get 就是从网上下载包,并安装到本地 手工下载 dpkg 包,而后 "dp ...
- JNI生成C的头文件
最近再给android封装一个C语言的so,以供安卓程序下使用. 再次记录一下,防止以后忘记了. 首先下载安装JDK,下载地址:http://www.oracle.com/technetwork/ja ...
- 计算机视觉与模式识别代码合集第二版one
Topic Name Reference code Feature Detection, Feature Extraction, and Action Recognition Space-Time I ...
- OCA读书笔记(17) - 移动数据
Sql*load 1. sql*loader的文件有哪些? 日志文件:概述了作业的成功与失败以及所有相关错误的细节 错误文件(bad file):从输入文件中抽取的行可能会被sqlldr丢弃(原因可能 ...