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的替代软件
标准I/O并不完善. 标准I/O库的一个不足之处是效率不高,这与它需要复制的数据量有关.当使用每次一行函数fgets和fputs时,通常需要复制两次数据:一次是在内核和标准I/O缓冲之间(当调用rea ...
- 如何测试mysql是否安装成功
1.命令行:net start mysql如果能启动,那说明安装成功了.如果想查询默认的数据库,你可以用mysqlfont,或者直接命令行操作进入安装目录下的bin文件夹,或者配置好环境变量,然后2. ...
- eplice下载地址
http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/kepler/R/eclips ...
- javascript进击(五)JS对象
JavaScript中是所有事物都是对象.JavaScript允许自定义对象. 对象是带有属性和方法的特殊数据类型. 访问对象的属性: 常见属性 访问对象的方法: 常用方法 (创建JavaScript ...
- 第七篇:web之前端之ajax
前端之ajax 前端之ajax 本节内容 ajax介绍 原生js实现ajax jquery实现ajax json 跨域请求 1. ajax介绍 AJAX(Asynchronous Javascri ...
- Python教程:ORM连接Sqlite数据库,软件架构基础
python语言因其语法简单易学习,且高效率应用广,近几年来发展迅猛,一度进入编程语言排行榜前六名.为了使程序员能更快的学习Python语言,所以写的此教程.也可以说是对自己学习的总结.但文章尽量会使 ...
- css定义多重背景动画
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style typ ...
- StringBuffer跟StringBuilder以及HashMap跟HashTable
StringBuffer是线程安全的 HashTable是线程安全的,但HashMao单线程程序中的性能比HashTable要高,对了HashTable用(add),HashMap用的(put)
- 关于onSaveInstanceState的javadoc的渣渣翻译
/** * Called to retrieve per-instance state from an activity before being * killed so that the state ...
- 关于ibatis进行物理游标分页
http://www.iteye.com/topic/136712 详细demo:参照http://www.kusoft.net 我的数据库是采用mssql2000 采用分页必定数据量比较大: 按照i ...