介绍Jersey-Jersey入门基础

 更新时间:2013年02月18日 17:21:25   作者:  
REST不是一种新的技术,而仅仅是一个理论,实践这样的理论可以让我们的应用更加先进。
这里不准备讨论REST的细节内容,但是总体上,REST是让客户端与服务器段的交互通过发送和接收展示资源的方式来进行,在这里有必要说明:

  Fielding是http协议和apache web server的核心作者之一。举个例子:
  一个http get request可以接收到一个资源
  一个http post request可以生成一个资源。

  如此描述,对JAVA开发者来讲也许过于底层了,事实上绝大多数的J2EE  应用程序,尤其javaserver faces应用程序是不允许REST这样的风格框架的,所以后面我们会仔细比较JavaServer Faces与REST应用之间的区别。JSR311描述了如何在JAVA中实践REST的架构风格。

  实现JSR311的框架已经有一些了,比如今天要介绍的Jersey. Jersey目前看是比较成熟,在开发中应用最广泛,而且被oracle提供支持的开源框架。

  一,使用 NetBeans JavaServer Faces,来建立一个例子应用程序

  这个例子是关于文章投票的系统,一篇文章,需要有文章内容,作者,投票三个实体,实际上就是我们前面说的资源(针对REST)。
  需要说明的这里的文章内容,作者,和投票实体在代码层面都是映射成类的哦。
  在这个测试应用中,我们仅在三个实体上生成一个CRUD(create,read,update,delete)基础功能,虽然简单,但是基础可用。
  但是这样的程序有个比较大的问题:
  程序的VIEW层只能使用JavaServer Faces,而REST风格的程序,可以使用多种格式来展示应用资源的状态信息,例如XML,PDF,JavaScript Object Notation (JSON)等。

  二,建立基于REST的客户端

  NetBeans,可以帮助你自动整个建立过程。
  1,右键你的项目,然后进行如下选择 New > RESTful Web Services from Entity Classes
  2,选中前面所建立好的但个实体
  3,对于转换选择包 fr.responcia.otn.articleevaluator.rest.converter
  对于资源选择包fr.responcia.otn.articleevaluator.rest.resource
  4,选择Create default REST servlet adaptor in web.xml
  NetBeans事实上生成两组类,一组类用来映射实体类到XML文档,通过使用JAXB技术。
  另一组是资源,每个资源包括了一类实体的所有实例。以方便客户端的操作和在服务器及客户端进行交换。
  我们可以使用REST的接口来对实体进行操作,在resource包中,你可以通过查看类,可以发现URLS和针对每个实体的显示层是如何进行
  构建的。
  因为在前面我们实现了两个作者的实体实例,所以当你访问如下地址http://localhost:8080/ArticleEvaluator/resources/authors的时候,你
  可以看到如下界面:
  你会看到两个作者的列表信息(图片省略了),当然你也可以通过如下的地址访问具体的某一个作者:
  http://localhost:8080/ArticleEvaluator/resources/authors/1/
  测试REST应用
  只使用WEB浏览器是不能全面测试REST应用的,因为我们还使用了JSON对象,JSON对象被广泛的应用到REST的应用中。

  JSON比纯粹的XML格式更好,可以被JS脚本访问。可以结合jquery使用。

  测试REST应用,可以使用两种方法来进行:

  1,使用Jsersey提供的测试框架
  2,使用底层的库,例如Apache Commons HttpClient ,来手工处理HTTP Request.
  通常第一种方法,比较有效率,因为是框架,但是想知道更多的细节则需要使用方法2,你可以到 http://hc.apache.org/httpclient-3.x/ 下载
  HttpClient.

  测试方法通常包括三个:

  createArticle()    --生成Article
  testResourceAsXml()--测试XML的格式
  testResourceAsJson()

  比较下 JavaServer Faces and a REST 两中不同类型的客户端:

  1,两种客户端都可以使用NetBeans帮助生成。
  2,两种前端都使用了实体对象的概念。
  3,两种前端可以同时使用,不会有什么冲突。

  下面是比较有区别的地方:

  1,JSF的应用状态保存在了服务器端,用户的操作状态都保存到了HttpSession 而REST则是把状态保存到了客户端。
  使用 REST URLs 来跟资源进行交互,这也是为什么JSF比较容易编码的原因。
  2,JSF提供了丰富的用户界面组件,如果你的应用中需要界面,那么使用JSF则比较有效率,后者没有界面组件,只能结合JQUERY等来使用。
  3,REST拥有better-looking URLs这样可以被用户进行书签收藏,也方便搜索引擎收录。
  4,REST提供了对同一资源进行多格式显示的可能,例如XML,PDF,JDON等。

相关文章

  • 解决Android Studio安装后运行出错dose not...和Internal error...

    解决Android Studio安装后运行出错dose not...和Internal error...

    这篇文章主要介绍了解决Android Studio安装后运行出错dose not...和Internal error...的相关资料,需要的朋友可以参考下
    2017-03-03
  • 详解Spring如何避免被JVM 垃圾回收

    详解Spring如何避免被JVM 垃圾回收

    如果Spring 被回收掉,Spring管理的bean全部会被回收,那我们的Java应用不就被一锅端了吗?所以本文小编将和大家一起聊聊Spring如何避免被JVM垃圾回收,需要的朋友可以参考下
    2023-11-11
  • 解决Spring JPA 使用@transaction注解时产生CGLIB代理冲突问题

    解决Spring JPA 使用@transaction注解时产生CGLIB代理冲突问题

    这篇文章主要介绍了解决Spring JPA 使用@transaction注解时产生CGLIB代理冲突问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Linux中Java开发常用软件安装方法总结

    Linux中Java开发常用软件安装方法总结

    这篇文章主要介绍了Linux中Java开发常用软件安装方法总结,需要的朋友可以参考下
    2020-02-02
  • SpringBoot快速集成jxls-poi(自定义模板,支持本地文件导出,在线文件导出)

    SpringBoot快速集成jxls-poi(自定义模板,支持本地文件导出,在线文件导出)

    这篇文章主要介绍了SpringBoot快速集成jxls-poi(自定义模板,支持本地文件导出,在线文件导出),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Maven默认中央仓库(settings.xml 配置详解)

    Maven默认中央仓库(settings.xml 配置详解)

    这篇文章主要介绍了Maven默认中央仓库(settings.xml 配置详解),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • 手把手教你写一个SpringBoot+gRPC服务

    手把手教你写一个SpringBoot+gRPC服务

    本文将在本地环境下搭建gRPC客户端和服务端,并成功建立通讯发送消息的方式,从而帮助大家深入了解gRPC在Spring Boot项目中的应用,有需要的小伙伴可以参考下
    2023-12-12
  • java对象克隆实现方法详解

    java对象克隆实现方法详解

    这篇文章主要给大家介绍了关于java对象克隆实现的相关资料,克隆就是复制一个对象的副本,Java支持我们对一个对象进行克隆,通常用在装饰模式和原型模式中,需要的朋友可以参考下
    2023-06-06
  • Spring依赖注入和控制反转详情

    Spring依赖注入和控制反转详情

    这篇文章主要介绍了Spring依赖注入和控制反转详情,控制反转是面向对象编程中使用的术语,通过该术语,对象或对象集的控制权被赋予框架或由框架提供的容器。下文更多相关内容需要的小伙伴可以参考一下
    2022-05-05
  • java8异步调用如何使用才是最好的方式

    java8异步调用如何使用才是最好的方式

    异步调用主要用于当前程序的执行不用等待调用方法执行结束就可以继续执行,下面这篇文章主要给大家介绍了关于java8异步调用如何使用才是最好的方式,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-01-01

最新评论