1.4个概念
1)REST:一种跨平台、跨语言的架构风格。
2)REST式的WEB服务:REST在WEB领域的实现。
3)JAX-RS标准:在JAVA领域,对REST式的WEB服务制定的实现标准。
4)Jersey:JAX-RS标准的参考实现。
2.REST
REST是一种架构风格,不是一种技术,也不是一个标准或协议,它使用既有标准:HTTP+URI+XML,来实现其要求的架构风格。因此,与之对应的不是SOAP,而是像RPC这样的架构风格。
HTTP+URI+XML是REST的基本实现形式,但不是唯一的实现形式。HTTP协议和URI用于统一接口和定位资源,文本、二进制流、XML和JSON等格式用来作为资源的表述。
3.REST服务
REST式WEB服务是一种ROA(面向资源的架构)的应用,主要特点是方法信息存在于HTTP的方法中(比如GET/PUT),作用域存在于URI中。例如,在一个获取设备资源列表的GET请求中,方法信息是GET,作用域信息是URI中包含的对设备资源的过滤、分页和排序等条件。
4.JAX-RS2.0
1)目标
a.基于POJO:JAX-RS2.0的API提供一组注解和相关的接口、类,并定义了POJO对象的生命周期和作用域。规定使用POJO来公布WEB资源。
b.以HTTP为中心:JAX-RS2.0采用HTTP协议,并提供清晰的HTTP和统一资源定位URI元素来映射相关的API类和注解。
c.格式独立性:JAX-RS2.0对传输数据的类型/格式的支持非常宽泛,允许在标准风格之上使用额外的数据类型。
d.容器独立性:JAX-RS2.0的应用可以部署在各种Servlet容器中。
e.内置于JavaEE:JAX-RS2.0是JavaEE规范的一部分,它定义了一个JavaEE容器内的WEB资源类的内部,如何使用JavaEE的功能和组件。
2)非目标
a.对J2SE6.0之前版本的支持:JAX-RS2.0中大量使用了注解,需要J2SE6.0以及更新的版本。
b.对服务的描述、注册和探测:JAX-RS2.0没有定义也无需支持任何服务的描述、服务的注册和服务的探测。
c.HTTP协议栈:JAX-RS2.0没有定义新的HTTP协议栈。承载JAX-RS2.0应用的容器提供对HTTP的支持。
d.数据类型/格式:JAX-RS2.0没有定义处理实体内容的类,它将这一类型的类交由使用JAX-RS2.0的应用中的类去实现。
3)元素
a.资源类:使用JAX-RS注解来实现相关WEB资源的JAVA类。
b.根资源类:使用@Path注解,提供资源类树的根资源极其子资源的访问。
c.请求方法标识符:使用运行期注解@HttpMethod,用来标识处理资源的HTTP请求方法。
d.资源方法:资源类中定义的方法,使用了请求方法标识符,用来处理相关资源的请求。
e.子资源标识符:资源类中定义的方法,用来定位相关资源的子资源。
f.子资源方法:资源类中定义的方法,用来处理相关资源的子资源的请求。
g.Providers:一种JAX-RS扩展接口的实现类,扩展JAX-RS运行期的能力。
h.Filter:一种用于过滤请求和响应的Provider。
i.Entity Interceptor:一种用于处理拦截消息读写的Provider。
j.Invocation:一种用于配置发布HTTP请求的客户端API对象。
k.WebTarget:一种使用URI标识的Invocation容器对象。
l.Link:一种携带元数据的URI,包括媒体类型、关系和标题。
5.Jersey模块
1)核心模块
jersey-client:Jersey核心客户端实现
jersey-common:Jersey通用包
jersey-server:Jersey核心服务器实现
2)容器模块
3)连接器模块
4)Media模块
5)扩展模块
6)测试框架模块
7)GlassFiss Bundle模块