jersey REST的接口简述
GET方法:只读,是幂等和安全的。在接口中抽象地定义了资源的请求方法类型后,其全部实现类都无须再定义。
HEAD方法:与GET方法相似,只是服务器端的返回值不包括HTTP实体。
OPTIONS方法:与GET方法相似,用于读取资源所支持的所有HTTP请求方法。
PUT方法:PUT方法是幂等的,即多次插入或者更新同一份数据,在服务器对资源状态所产生的改变是相同的。PUT方法是不安全的,有写动作的HTTP方法都不是安全的。
PUT方法主要用于更新或添加资源。对于非安全的HTTP方法,需要考虑请求实体媒体类型和响应实体媒体类型。请求实体类型使用HTTP头的CONTENT TYPE定义,响应实体媒体类型使用HTTP头的ACCEPT定义。
DELETE方法:是幂等的,即多次删除同一份数据,在服务器端产生的改变是相同的。当响应实体为空时,HTTP状态码为204.
POST方法:是一种写操作的HTTP请求(RPC的所有写操作均使用POST方法,而REST只使用HTTP的POST方法添加资源)。POST既不幂等也不安全,因为请求会改变服务器端的状态,每次请求对服务器端资源状态的改变并不是相同的。
@QueryParam:查询条件决定了方法的作用域,查询参数组成了查询条件。@QueryParam("参数名称") final 参数类型 参数变量
@PathParam:定义路径参数--每个参数对应一个子资源。
@Path:接收一个VALUE参数,来解析资源路径地址,这个VALUE参数即可以是静态定义也可以动态变量的方式,其格式:{参数名称:正则表达式}
例:@GET
@Path("form:\\d+}-{to:\\d+}")
public String getMothed(@PathParam("form") final Integer form,@PathParam("to") final Integer to){.....}
@PathSegment:路径区间,使资源类的一个方法可以支持更广泛的资源地址的请求。@PathSegment类型的参数结合正则表达式发挥的作用更大。对于每一个PathSegment实例,可以调用其getPath方法获取子资源的名称。
例:@GET
@Path("{region:.+}/varvalue/{district:\\w+}")
public String getByAddress(@PathParam("region") final List<PathSegment> region,@PathParam("district") fianl String district){
final StringBuilder result=new StringBuilder();
for (final PathSegment pathSegment:region){
result.append(pathSegment.getPath()).append("-");
}
}
另:对于查询参数动态给定的场景,可以定义PathSegment作为参数类型,通过getMatrixParameters()方法获取MultivaluedMap类型的查询参数信息,即可将参数条件作为一个整体解析。
@FormParam:用来定义表单参数,相应的REST方法用以处理请求实体媒体类型为Content-Type:application/x-www-form-urlencoded的请求。
例:@Path("form-resource")
public class FormResource{
@POST
public String newPassWord(
@DefaultValue("默认值") @FormParam(FormResource.USER) final String user,
@Encoded @FormParam(FormResource.PW) final String password
){ ....... }
}
@BeanParam:用于自定义参数组合,可以使用简洁的参数形式完成复杂的接口设计。
@GET
@Path("{region:.+}/shenyang/{district:\\w+}")
Public String getByAddress(@BeanParam Jaxrs2GuideParam param){
public class Jaxrs2GuideParam{
@HeaderParam("accept") private String acceptparam;
@PathParam("Region") private String regionparam;
@Queryparam("station") private String stationparam;
.....
}
@CookieParam:用以匹配Cookie中的键值对信息。
例:
@CookieParam("Cookie名称") final String Cookie变量名称
@Context:用于解析上下文参数。通过@Context定义的方法的参数或者类的字段用于某些业务逻辑处理中常用的辅助信息的获取。
jersey REST的接口简述的更多相关文章
- 调用jersey发布的接口webservice,通过HttpPost传递文件
项目媒体文件之前都是上传到七牛云处理,现在客户为了安全和私密性,准备将移动端拍摄的图片和视频传递到文件服务器,所以就想办法能不能在服务器端发布一个WebService,供移动端调用.刚好之前做的接口都 ...
- Jersey 写restful接口时QueryParam ,FormParam 等的区别
今天用jersey写接口,发现有一个post方法中没有得到参数,查了半天发现自己一不小心将@formparam写成了@queryparam,真是一个悲伤的故事.在这里把几个参数类型整理了一下放出来. ...
- jersey实现RESTful接口PUT方法JSON数据传递
项目中使用的是org.json包 maven中的配置如下: xml <!-- https://mvnrepository.com/artifact/org.json/json --> &l ...
- Java 接口简述
Java 接口 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明.一个类通过继承接口的方式,从而来继承接口的抽象方法. 接口并 ...
- Spring集成Jersey开发(附demo)
下文将会初步介绍如何在Spring中集成Jersey,并附简单的demo 所依赖的技术版本: Jersey 1.8 Spring 3.0.5.RELEASE 1. 项目依赖 pom.xml定义(注意去 ...
- JAVA基础整理-集合篇(一)
集合作为JAVA的基础知识,本来感觉自己理解的很清楚了,但是在最近的一次面试中还是答得不尽如人意!再次做一下整理,以便加深理解以及随时查阅. 首先,java.util包中三个重要的接口及特点:List ...
- JAVA集合差异
接口 简述 实现 操作特性 成员要求 Set 成员不能重复 HashSet 外部无序地遍历成员 成员可为任意Object子类的对象,但如果覆盖了equals方法,同时注意修改hashCode方法. T ...
- Java之集合类
出处:http://blog.csdn.net/zhangerqing 一.集合类简介 数组是很常用的一种的数据结构,我们用它可以满足很多的功能,但是,有时我们会遇到如下这样的问题: 1.我们需要该容 ...
- javase程序设计课后题答案
;第1章 Java概述 编译java application源程序文件将产生相应的字节码文件,这些字节码文件别的扩展名为.java 执行一个java程序fristapp的方法是运行java frist ...
随机推荐
- 标准I/O之实现细节
在UNIX系统中,标准I/O库最终都要调用文件I/O(read.write等).每个标准I/O流都有一个与其相关联的文件描述符,可以对一个流调用fileno函数以获得其描述符. 注意,fileno不是 ...
- 常用linux命令和配置
find只查看文件和只查看目录 find -type f -name clexec find -type d -name clexec 解压rpm [root@sj_x861 2]# ls e ...
- Lua开发环境搭建(Mac)
1.下载最新版的Lua,点击下载 2.下载完成后,解压压缩包,打开终端,cd进入Lua解压目录下 3. 在终端输入“make macosx”,编译lua 4.编译完成后,在终端输入”make test ...
- MySQL特殊语法---replace into
MySQL中有这样的SQL语句 1. replace into tbl_name(col_name, ...) values(...) 2. replace into tbl_name(col_nam ...
- 搭建用友开发环境(基于碧桂园的nchome)
1.解压uap_studio6.3 2.授权 3.解压ufjdk.rar到指定路径 4.配置java的环境变量 5.解压BGY50602.7z到指定目录 6.然后在studio中导入BYG5002 7 ...
- VC++ Bresenham画线实例
附带百度链接:http://wenku.baidu.com/link?url=GP4uDkoyulgNxQy5djBBi-JB5BCrMWW6svMDhSfmzi_Qi1s6DhwJiCPHdMI2o ...
- Unity3D 之3D游戏入门Hello world(一)
这几天开始玩Unity3D 有关3D的内容了,去年开始玩过一段时间的2D制作,不过因为年初找工作,所以放了一段时间, 现在再捡起来发现忘的已经差不多了,只能再从头开始,所以就从3D开始算了.下面是3D ...
- [转] c# 数据类型占用的字节数
http://www.cnblogs.com/laozuan/archive/2012/04/24/2467888.html
- Runtime 在IOS中的详细使用
因为之前写东西的时候,都在未知笔记中,所有大家没有看到过我的文章,今天就开始使用博客园来进行和大家沟通.好了,废话不那么多了,转入正题.下面我把runtime 给大家介绍一下. ### 一.runti ...
- NET异步调用Webserver
之前,有个同事跑来问我一堆的什么多线程异步进行调用Sap的服务再突然把进程关闭,还说要设置一个循环判断调用的结果,搞得我听的一头雾水,但是我明显感觉到他的设计思路已经渐行渐远了...已经再偏远的山区中 ...