介绍Jersey-Jersey入门基础_java

这里不准备讨论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等。

时间: 2024-09-20 16:54:02

介绍Jersey-Jersey入门基础_java的相关文章

JAVA annotation入门基础_java

一. 最常见的annotation•@Override:用在方法之上,用来告诉别人这一个方法是改写父类的•@Deprecated:建议别人不要使用旧的API的时候用的,编译的时候会用产生警告信息,可以设定在程序里的所有的元素上. •@SuppressWarnings:暂时把一些警告信息消息关闭•@Entity:表示该类是可持久化的类 二. 设计一个自己的Annotation先看代码再讲话1. 只有一个参数的Annotation实现 复制代码 代码如下: package chb.test.anno

python入门基础之用户输入与模块初认识_python

一.注释 当前行注释:# 被注释内容 多行注释:""" 被注释内容 """ 二.用户输入 #!/usr/bin/env python #_*_coding:utf-8_*_ #name = raw_input("What is your name?") #only on python 2.x name = input("What is your name?") print("Hello "

JavaScript入门基础_javascript技巧

JavaScript基本语法 1.运算符 运算符就是完成操作的一系列符号,它有七类: 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=).算术运算符(+,-,*,/,++,--,%).比较运算符(>,<,<=,>=,==,===,!=,!==).逻辑运算符(||,&&,!).条件运算(?:).位移运算符(|,&,<<,>>,~,^)和字符串运算符(+). 可能很多人不知道&quo

Java Mybatis框架入门基础教程_基础知识

一.Mybatis介绍 MyBatis是一款一流的支持自定义SQL.存储过程和高级映射的持久化框架.MyBatis几乎消除了所有的JDBC代码,也基本不需要手工去 设置参数和获取检索结果.MyBatis能够使用简单的XML格式或者注解进行来配置,能够映射基本数据元素.Map接口和POJOs(普通java对象)到数据库中的记录. 二.MyBatis工作流程 (1)加载配置并初始化 触发条件:加载配置文件 配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个

json 入门基础教程 推荐_json

如果您阅读了本系列前面的文章,那么应已对数据格式有了相当的认识.前面的文章解释了在许多异步应用程序中如何恰当地使用纯文本和简单的名称/值对.可以将数据组合成下面这样的形式: firstName=Brett&lastName=McLaughlin&email=brett@newInstance.com   这样就行了,不需要再做什么了.实际上,Web 老手会意识到通过 GET 请求发送的信息就是采用这种格式. 然后,本系列讨论了 XML.显然,XML 得到了相当多的关注(正面和负面的评价都有

xhEditor编辑器入门基础_网页编辑器

1.1. 在线可视化HTML编辑器概述 在Web程序应用中,最常见的一种行为是信息和言论的发布和交流.而在信息发布的同时,往往会有对信息发布的格式.类型和功能上的需求,比如:加粗.下划线等等,以使文字信息能够更形象更美观的传达给阅读者,同时也提高信息发布的工作效率.在这个需求的背景下,HTML在线编辑器就应运而生了. 顾名思义,在线HTML编辑器就是在线编辑HTML代码的工具,它经常被应用于留言板留言.论坛发贴.Blog编写日志或等需要用户输入HTML的地方,是Web应用的常用模块之一.在线HT

AngularJs 60分钟入门基础教程_AngularJS

AngularJs是一个不错的用于开发SPA应用(单页Web应用)的框架.单页Web应用(single page web application,SPA),就是只有一张Web页面的应用.浏览器一开始会加载必需的HTML.CSS和JavaScript,所有的操作都在这张页面上完成,由JavaScript来控制不同view在这个页面上的呈现.本文源于Youtube上一个不错的AngularJs的入门教程视频:AngularJS Fundamentals In 60-ish Minutes,主要讲解了

Oracle PL/SQL语言入门基础_oracle

正在看的ORACLE教程是:Oracle PL/SQL语言入门基础.PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件.以及如何设计并执行一个PL/SQL程序. PL/SQL的优点 从版本6开始PL/SQL就被可靠的整合到ORACLE中了,一旦掌握PL/SQL的优点以及其独有的数据管理的便利性,那么你很难想象ORACLE缺了PL

基于Oracle的面向对象技术入门基础简析开发者网络Oracle_oracle

正在看的ORACLE教程是:基于Oracle的面向对象技术入门基础简析开发者网络Oracle.一.概述 对象是Oracle8i以上版本中的一个新的特性,对象实际是对一组数据和操作的封装,对象的抽象就是类.在面向对象技术中,对象涉及到以下几个重要的特性:  封装性 通过对数据和操作的封装,将用户关心的数据和操作暴露出来作为接口,其他数据和操作则隐藏到对象内部,这样便于用户使用和维护.  继承性 对象具有继承性,通过这一特性可以增强程序的可扩展性,适合大型项目的开发.  多态性 同一操作在运行时刻有