欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

介紹Jersey-Jersey入門基礎(chǔ)

 更新時(shí)間:2013年02月18日 17:21:25   作者:  
REST不是一種新的技術(shù),而僅僅是一個(gè)理論,實(shí)踐這樣的理論可以讓我們的應(yīng)用更加先進(jìn)。
這里不準(zhǔn)備討論REST的細(xì)節(jié)內(nèi)容,但是總體上,REST是讓客戶端與服務(wù)器段的交互通過發(fā)送和接收展示資源的方式來進(jìn)行,在這里有必要說明:

  Fielding是http協(xié)議和apache web server的核心作者之一。舉個(gè)例子:
  一個(gè)http get request可以接收到一個(gè)資源
  一個(gè)http post request可以生成一個(gè)資源。

  如此描述,對JAVA開發(fā)者來講也許過于底層了,事實(shí)上絕大多數(shù)的J2EE  應(yīng)用程序,尤其javaserver faces應(yīng)用程序是不允許REST這樣的風(fēng)格框架的,所以后面我們會(huì)仔細(xì)比較JavaServer Faces與REST應(yīng)用之間的區(qū)別。JSR311描述了如何在JAVA中實(shí)踐REST的架構(gòu)風(fēng)格。

  實(shí)現(xiàn)JSR311的框架已經(jīng)有一些了,比如今天要介紹的Jersey. Jersey目前看是比較成熟,在開發(fā)中應(yīng)用最廣泛,而且被oracle提供支持的開源框架。

  一,使用 NetBeans JavaServer Faces,來建立一個(gè)例子應(yīng)用程序

  這個(gè)例子是關(guān)于文章投票的系統(tǒng),一篇文章,需要有文章內(nèi)容,作者,投票三個(gè)實(shí)體,實(shí)際上就是我們前面說的資源(針對REST)。
  需要說明的這里的文章內(nèi)容,作者,和投票實(shí)體在代碼層面都是映射成類的哦。
  在這個(gè)測試應(yīng)用中,我們僅在三個(gè)實(shí)體上生成一個(gè)CRUD(create,read,update,delete)基礎(chǔ)功能,雖然簡單,但是基礎(chǔ)可用。
  但是這樣的程序有個(gè)比較大的問題:
  程序的VIEW層只能使用JavaServer Faces,而REST風(fēng)格的程序,可以使用多種格式來展示應(yīng)用資源的狀態(tài)信息,例如XML,PDF,JavaScript Object Notation (JSON)等。

  二,建立基于REST的客戶端

  NetBeans,可以幫助你自動(dòng)整個(gè)建立過程。
  1,右鍵你的項(xiàng)目,然后進(jìn)行如下選擇 New > RESTful Web Services from Entity Classes
  2,選中前面所建立好的但個(gè)實(shí)體
  3,對于轉(zhuǎn)換選擇包 fr.responcia.otn.articleevaluator.rest.converter
  對于資源選擇包fr.responcia.otn.articleevaluator.rest.resource
  4,選擇Create default REST servlet adaptor in web.xml
  NetBeans事實(shí)上生成兩組類,一組類用來映射實(shí)體類到XML文檔,通過使用JAXB技術(shù)。
  另一組是資源,每個(gè)資源包括了一類實(shí)體的所有實(shí)例。以方便客戶端的操作和在服務(wù)器及客戶端進(jìn)行交換。
  我們可以使用REST的接口來對實(shí)體進(jìn)行操作,在resource包中,你可以通過查看類,可以發(fā)現(xiàn)URLS和針對每個(gè)實(shí)體的顯示層是如何進(jìn)行
  構(gòu)建的。
  因?yàn)樵谇懊嫖覀儗?shí)現(xiàn)了兩個(gè)作者的實(shí)體實(shí)例,所以當(dāng)你訪問如下地址http://localhost:8080/ArticleEvaluator/resources/authors的時(shí)候,你
  可以看到如下界面:
  你會(huì)看到兩個(gè)作者的列表信息(圖片省略了),當(dāng)然你也可以通過如下的地址訪問具體的某一個(gè)作者:
  http://localhost:8080/ArticleEvaluator/resources/authors/1/
  測試REST應(yīng)用
  只使用WEB瀏覽器是不能全面測試REST應(yīng)用的,因?yàn)槲覀冞€使用了JSON對象,JSON對象被廣泛的應(yīng)用到REST的應(yīng)用中。

  JSON比純粹的XML格式更好,可以被JS腳本訪問。可以結(jié)合jquery使用。

  測試REST應(yīng)用,可以使用兩種方法來進(jìn)行:

  1,使用Jsersey提供的測試框架
  2,使用底層的庫,例如Apache Commons HttpClient ,來手工處理HTTP Request.
  通常第一種方法,比較有效率,因?yàn)槭强蚣?,但是想知道更多的?xì)節(jié)則需要使用方法2,你可以到 http://hc.apache.org/httpclient-3.x/ 下載
  HttpClient.

  測試方法通常包括三個(gè):

  createArticle()    --生成Article
  testResourceAsXml()--測試XML的格式
  testResourceAsJson()

  比較下 JavaServer Faces and a REST 兩中不同類型的客戶端:

  1,兩種客戶端都可以使用NetBeans幫助生成。
  2,兩種前端都使用了實(shí)體對象的概念。
  3,兩種前端可以同時(shí)使用,不會(huì)有什么沖突。

  下面是比較有區(qū)別的地方:

  1,JSF的應(yīng)用狀態(tài)保存在了服務(wù)器端,用戶的操作狀態(tài)都保存到了HttpSession 而REST則是把狀態(tài)保存到了客戶端。
  使用 REST URLs 來跟資源進(jìn)行交互,這也是為什么JSF比較容易編碼的原因。
  2,JSF提供了豐富的用戶界面組件,如果你的應(yīng)用中需要界面,那么使用JSF則比較有效率,后者沒有界面組件,只能結(jié)合JQUERY等來使用。
  3,REST擁有better-looking URLs這樣可以被用戶進(jìn)行書簽收藏,也方便搜索引擎收錄。
  4,REST提供了對同一資源進(jìn)行多格式顯示的可能,例如XML,PDF,JDON等。

相關(guān)文章

  • 解決Android Studio安裝后運(yùn)行出錯(cuò)dose not...和Internal error...

    解決Android Studio安裝后運(yùn)行出錯(cuò)dose not...和Internal error...

    這篇文章主要介紹了解決Android Studio安裝后運(yùn)行出錯(cuò)dose not...和Internal error...的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • 詳解Spring如何避免被JVM 垃圾回收

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

    如果Spring 被回收掉,Spring管理的bean全部會(huì)被回收,那我們的Java應(yīng)用不就被一鍋端了嗎?所以本文小編將和大家一起聊聊Spring如何避免被JVM垃圾回收,需要的朋友可以參考下
    2023-11-11
  • 解決Spring JPA 使用@transaction注解時(shí)產(chǎn)生CGLIB代理沖突問題

    解決Spring JPA 使用@transaction注解時(shí)產(chǎn)生CGLIB代理沖突問題

    這篇文章主要介紹了解決Spring JPA 使用@transaction注解時(shí)產(chǎn)生CGLIB代理沖突問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Linux中Java開發(fā)常用軟件安裝方法總結(jié)

    Linux中Java開發(fā)常用軟件安裝方法總結(jié)

    這篇文章主要介紹了Linux中Java開發(fā)常用軟件安裝方法總結(jié),需要的朋友可以參考下
    2020-02-02
  • SpringBoot快速集成jxls-poi(自定義模板,支持本地文件導(dǎo)出,在線文件導(dǎo)出)

    SpringBoot快速集成jxls-poi(自定義模板,支持本地文件導(dǎo)出,在線文件導(dǎo)出)

    這篇文章主要介紹了SpringBoot快速集成jxls-poi(自定義模板,支持本地文件導(dǎo)出,在線文件導(dǎo)出),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Maven默認(rèn)中央倉庫(settings.xml 配置詳解)

    Maven默認(rèn)中央倉庫(settings.xml 配置詳解)

    這篇文章主要介紹了Maven默認(rèn)中央倉庫(settings.xml 配置詳解),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • 手把手教你寫一個(gè)SpringBoot+gRPC服務(wù)

    手把手教你寫一個(gè)SpringBoot+gRPC服務(wù)

    本文將在本地環(huán)境下搭建gRPC客戶端和服務(wù)端,并成功建立通訊發(fā)送消息的方式,從而幫助大家深入了解gRPC在Spring Boot項(xiàng)目中的應(yīng)用,有需要的小伙伴可以參考下
    2023-12-12
  • java對象克隆實(shí)現(xiàn)方法詳解

    java對象克隆實(shí)現(xiàn)方法詳解

    這篇文章主要給大家介紹了關(guān)于java對象克隆實(shí)現(xiàn)的相關(guān)資料,克隆就是復(fù)制一個(gè)對象的副本,Java支持我們對一個(gè)對象進(jìn)行克隆,通常用在裝飾模式和原型模式中,需要的朋友可以參考下
    2023-06-06
  • Spring依賴注入和控制反轉(zhuǎn)詳情

    Spring依賴注入和控制反轉(zhuǎn)詳情

    這篇文章主要介紹了Spring依賴注入和控制反轉(zhuǎn)詳情,控制反轉(zhuǎn)是面向?qū)ο缶幊讨惺褂玫男g(shù)語,通過該術(shù)語,對象或?qū)ο蠹目刂茩?quán)被賦予框架或由框架提供的容器。下文更多相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2022-05-05
  • java8異步調(diào)用如何使用才是最好的方式

    java8異步調(diào)用如何使用才是最好的方式

    異步調(diào)用主要用于當(dāng)前程序的執(zhí)行不用等待調(diào)用方法執(zhí)行結(jié)束就可以繼續(xù)執(zhí)行,下面這篇文章主要給大家介紹了關(guān)于java8異步調(diào)用如何使用才是最好的方式,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01

最新評論