jersey
jersey是JAX-RS(JSR311)Java API for RESTful Web Services开源参考实现用于构建 RESTful Web service,它包含三个部分:
核心服务器(Core Server) :通过提供JSR 311中标准化的注释和API标准化,可以用直观的方式开发RESTful Web服务。
核心客户端(Core Client) :Jersey客户端API能够帮助开发者与RESTful服务轻松通信;
集成(Integration) :Jersey还提供可以轻松继承Spring、Guice、Apache Abdera的库。
jersey常用的标签如下:
@Path web程序访问这个jersey的resouce的路径
@PathParam 获取request中的url指定规则的参数
@Produces 用来返回给客户端(浏览器)的数据标示类型MIME, 可以作为class注释,也可以作为方法注释,方法的 @Produces 注释将会覆盖class的注释。
如:Produces("application/json")或者Produces("application/xml","application/json")
@Consumes 用来指定客户端(浏览器)发送过来的数据标示类型MIME,一般用于post或者put
如:consumes("application/xml").
@QueryParam("name")获取request中的请求查询的参数
如public List<User> getUsers(@QueryParam("name")String name);
@formParam 接收表单传递过来的数据
@BeanParam 当请求参数很多时,比如客户端提交一个修改用户的PUT请求,请求中包含很多项用户信息。这时可以用 @BeanParam。
使用@BeanParam时,需要注意的是,JavaBean必须使用 @XmlRootElement 标注,没有 @XmlElement 注释的字段将包含一个名称与之相同的XML元素。
如:@XmlRootElement
public class User{
@XmlElement(name = "name1")
private String name;
@XmlElement(name="age")
private int age;
}
然后在REST服务中使用:
@Path("/user")
public class UserResource {
@POST
@Produces("application/json")
public OptionResult create(@BeanParam User user) {
...
}
}
SpringMVC常用注解
@Controler 注册一个bean到spring上下文当中,bean的ID默认为类的名称开头字母小写,也可以指定,如@Controller("userContr")
@RequestMapping 请求request访问的url,和jersey的@path相对应
@PathVariable 从请求参数url中获取参数值,与jersey中的@PathParam相对应
@ModelAttribute
1.应用于方法参数,参数可以在页面直接获取,相当于request.setAttribute(,),应用于方法参数时,@ModelAttribute("xx"),须关联到object的数据类型,基本数据类型:如int,string不起作用
2,应用于方法,将方法的返回值进入到模型对象的属性列表中
@SessionAttributes session管理,跟ModelAttributes类似,只是是把数据存放到session中,范围比ModelAttribute广泛.
@CookieValue 获取cookie信息
@RequestHeader 获取请求的头部信息
分享到:
相关推荐
通过阅读`MyRestful`源代码,开发者可以学习如何将理论转化为实践,更好地理解和掌握Java Jersey框架。 总之,Java Jersey Demo是一个极好的学习资源,帮助开发者快速上手RESTful服务的开发,理解RESTful架构的核心...
通过以上概述,我们可以看到,《使用Jersey 2.0开发RESTful Web服务》这本书不仅为初学者提供了必要的理论基础,也为进阶用户提供了一系列实用的实践案例,非常适合那些希望深入了解并掌握使用Jersey 2.0构建RESTful...
总的来说,这个演讲涵盖了从基础理论到实际应用的广泛内容,对于想要理解和使用JAX-RS和Jersey开发REST服务的开发者来说,是一次非常有价值的学习机会。通过对`exceptions`和`preconditions`目录中内容的深入学习,...
@ Path定义的返回的内容用@Produces定义@Produces可以采用多种类型的数组HTTP [PUT]请求早期,某些浏览器不支持PUT(或DELETE) REST常常变得简单开发人员使用POST进行创建和更新理论上,PUT可以同时用于两种功能PUT...
火箭推进原理是航天工程中的核心基础学科之一,主要研究火箭发动机的工作原理、设计、性能分析和应用。《火箭推进原理》第8版由Oscar Biblarz和George P. Sutton编写,该书在学术和工业界被广泛认可,并且是火箭技术...
《天线理论与设计》这本书是由Robert S. Elliott所著,它是为初学者专门设计的,旨在帮助读者理解天线的基本理论和设计原理。该书是IEEE经典再版系列之一,由John Wiley & Sons出版,曾由Pearson Education Inc....
### MuleESB 3.0 中文教程:理论与实例详解 #### 一、MuleESB 3.0 概述 MuleESB 3.0是一款基于企业集成模式(EIP,Enterprise Integration Patterns)实现的轻量级消息传递框架与整合平台。EIP是由Gregor Hohpe和...
Spring框架是Java开发中最常用的轻量级框架之一,它的出现极大地简化了企业级应用的开发。这个名为"spring学习入门工程(可执行)"的...实践是检验理论的最好方式,所以动手运行这个项目,亲身体验Spring的强大功能吧!
总的来说,RESTful作为一种Web服务设计模式,不仅在理论上被广泛接受,而且在实践中也已被证明是一种可靠和高效的技术。对于开发者而言,无论是从学习角度,还是从应用角度,掌握RESTful架构风格都是构建现代Web服务...
- **出版地点**:Englewood Cliffs, New Jersey - **版次**:1991年版 - **ISBN**:0-13-040890-5 ### 内容概要 本书深入探讨了非线性控制理论的实际应用。由两位来自麻省理工学院的作者编写,涵盖了对非线性控制...
本章深入探讨了数据通信的基础理论以及各种传输媒介的特点和技术细节。 **2.1 数据通信的理论基础** - **2.1.1 Fourier分析**:介绍了傅里叶变换的基本概念。 - **2.1.2 带限信号**:解释了带宽受限信号的概念。 -...
KHALIL所著的一本权威性教材,专门研究非线性系统理论及其应用。这本书通过详细阐述和实际例子,为读者提供了对非线性动态系统深入理解的基础。以下是对书籍标题、描述、标签和部分内容中所提及知识点的详细说明: ...
### 离散数学及其应用第7版:奇数题答案解析 #### 第一章:命题逻辑基础 ##### 第一节:命题与联结词 本章节主要涉及基本的命题逻辑概念...这些基础概念的学习对于后续学习更加复杂的逻辑理论和算法设计都至关重要。
这是一本关于Java RESTful服务开发的书籍,提供了详细的理论知识和实战案例,可以帮助读者深入理解RESTful服务的开发。 通过这些文件,我们可以学习到如何使用Java和Maven构建RESTful服务,理解RESTful API的设计...
1. **SML/NJ使用体验** - Standard ML of New Jersey (SML/NJ) 是一个强大的函数式编程环境,其静态类型系统提供了良好的错误预防。在实验过程中,我深入理解了模式匹配、高阶函数和数据抽象等概念,这些都增强了我...
Java RESTful Web Service实战 ...通过阅读《Java RESTful Web Service实战》这本书,你可以获得更深入的理论知识和实践技巧,从而在实际项目中更好地运用Java和RESTful来构建高效、可扩展的Web服务。
NJIT(New Jersey Institute of Technology)可能为此次课程设计的提供者,它在工程技术教育方面有着较高的声誉。 首先,交流伺服系统是一种广泛应用的运动控制系统,主要由交流伺服电机、驱动器和位置/速度控制器...
- **Java技术栈**:用于开发RESTful服务的一系列技术和框架,包括但不限于Servlets、JSP、Spring MVC、Jersey、Restlet、RESTEasy等。 - **框架介绍**: - **Jersey's JAX-RS**:基于Java API for RESTful Web ...
在Java开发中,这样的项目通常会涉及数据库操作(如JDBC)、前端界面(如Swing或JavaFX)、RESTful API设计(使用Spring Boot或Jersey)、用户认证和授权(如OAuth2或JWT)等。开发者可能需要学习如何使用MVC(模型-...