介紹Jersey-Jersey入門基礎(chǔ)
更新時間:2013年02月18日 17:21:25 作者:
REST不是一種新的技術(shù),而僅僅是一個理論,實踐這樣的理論可以讓我們的應(yīng)用更加先進。
這里不準備討論REST的細節(jié)內(nèi)容,但是總體上,REST是讓客戶端與服務(wù)器段的交互通過發(fā)送和接收展示資源的方式來進行,在這里有必要說明:
Fielding是http協(xié)議和apache web server的核心作者之一。舉個例子:
一個http get request可以接收到一個資源
一個http post request可以生成一個資源。
如此描述,對JAVA開發(fā)者來講也許過于底層了,事實上絕大多數(shù)的J2EE 應(yīng)用程序,尤其javaserver faces應(yīng)用程序是不允許REST這樣的風(fēng)格框架的,所以后面我們會仔細比較JavaServer Faces與REST應(yīng)用之間的區(qū)別。JSR311描述了如何在JAVA中實踐REST的架構(gòu)風(fēng)格。
實現(xiàn)JSR311的框架已經(jīng)有一些了,比如今天要介紹的Jersey. Jersey目前看是比較成熟,在開發(fā)中應(yīng)用最廣泛,而且被oracle提供支持的開源框架。
一,使用 NetBeans JavaServer Faces,來建立一個例子應(yīng)用程序
這個例子是關(guān)于文章投票的系統(tǒng),一篇文章,需要有文章內(nèi)容,作者,投票三個實體,實際上就是我們前面說的資源(針對REST)。
需要說明的這里的文章內(nèi)容,作者,和投票實體在代碼層面都是映射成類的哦。
在這個測試應(yīng)用中,我們僅在三個實體上生成一個CRUD(create,read,update,delete)基礎(chǔ)功能,雖然簡單,但是基礎(chǔ)可用。
但是這樣的程序有個比較大的問題:
程序的VIEW層只能使用JavaServer Faces,而REST風(fēng)格的程序,可以使用多種格式來展示應(yīng)用資源的狀態(tài)信息,例如XML,PDF,JavaScript Object Notation (JSON)等。
二,建立基于REST的客戶端
NetBeans,可以幫助你自動整個建立過程。
1,右鍵你的項目,然后進行如下選擇 New > RESTful Web Services from Entity Classes
2,選中前面所建立好的但個實體
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事實上生成兩組類,一組類用來映射實體類到XML文檔,通過使用JAXB技術(shù)。
另一組是資源,每個資源包括了一類實體的所有實例。以方便客戶端的操作和在服務(wù)器及客戶端進行交換。
我們可以使用REST的接口來對實體進行操作,在resource包中,你可以通過查看類,可以發(fā)現(xiàn)URLS和針對每個實體的顯示層是如何進行
構(gòu)建的。
因為在前面我們實現(xiàn)了兩個作者的實體實例,所以當(dāng)你訪問如下地址http://localhost:8080/ArticleEvaluator/resources/authors的時候,你
可以看到如下界面:
你會看到兩個作者的列表信息(圖片省略了),當(dāng)然你也可以通過如下的地址訪問具體的某一個作者:
http://localhost:8080/ArticleEvaluator/resources/authors/1/
測試REST應(yīng)用
只使用WEB瀏覽器是不能全面測試REST應(yīng)用的,因為我們還使用了JSON對象,JSON對象被廣泛的應(yīng)用到REST的應(yīng)用中。
JSON比純粹的XML格式更好,可以被JS腳本訪問??梢越Y(jié)合jquery使用。
測試REST應(yīng)用,可以使用兩種方法來進行:
1,使用Jsersey提供的測試框架
2,使用底層的庫,例如Apache Commons HttpClient ,來手工處理HTTP Request.
通常第一種方法,比較有效率,因為是框架,但是想知道更多的細節(jié)則需要使用方法2,你可以到 http://hc.apache.org/httpclient-3.x/ 下載
HttpClient.
測試方法通常包括三個:
createArticle() --生成Article
testResourceAsXml()--測試XML的格式
testResourceAsJson()
比較下 JavaServer Faces and a REST 兩中不同類型的客戶端:
1,兩種客戶端都可以使用NetBeans幫助生成。
2,兩種前端都使用了實體對象的概念。
3,兩種前端可以同時使用,不會有什么沖突。
下面是比較有區(qū)別的地方:
1,JSF的應(yīng)用狀態(tài)保存在了服務(wù)器端,用戶的操作狀態(tài)都保存到了HttpSession 而REST則是把狀態(tài)保存到了客戶端。
使用 REST URLs 來跟資源進行交互,這也是為什么JSF比較容易編碼的原因。
2,JSF提供了豐富的用戶界面組件,如果你的應(yīng)用中需要界面,那么使用JSF則比較有效率,后者沒有界面組件,只能結(jié)合JQUERY等來使用。
3,REST擁有better-looking URLs這樣可以被用戶進行書簽收藏,也方便搜索引擎收錄。
4,REST提供了對同一資源進行多格式顯示的可能,例如XML,PDF,JDON等。
Fielding是http協(xié)議和apache web server的核心作者之一。舉個例子:
一個http get request可以接收到一個資源
一個http post request可以生成一個資源。
如此描述,對JAVA開發(fā)者來講也許過于底層了,事實上絕大多數(shù)的J2EE 應(yīng)用程序,尤其javaserver faces應(yīng)用程序是不允許REST這樣的風(fēng)格框架的,所以后面我們會仔細比較JavaServer Faces與REST應(yīng)用之間的區(qū)別。JSR311描述了如何在JAVA中實踐REST的架構(gòu)風(fēng)格。
實現(xiàn)JSR311的框架已經(jīng)有一些了,比如今天要介紹的Jersey. Jersey目前看是比較成熟,在開發(fā)中應(yīng)用最廣泛,而且被oracle提供支持的開源框架。
一,使用 NetBeans JavaServer Faces,來建立一個例子應(yīng)用程序
這個例子是關(guān)于文章投票的系統(tǒng),一篇文章,需要有文章內(nèi)容,作者,投票三個實體,實際上就是我們前面說的資源(針對REST)。
需要說明的這里的文章內(nèi)容,作者,和投票實體在代碼層面都是映射成類的哦。
在這個測試應(yīng)用中,我們僅在三個實體上生成一個CRUD(create,read,update,delete)基礎(chǔ)功能,雖然簡單,但是基礎(chǔ)可用。
但是這樣的程序有個比較大的問題:
程序的VIEW層只能使用JavaServer Faces,而REST風(fēng)格的程序,可以使用多種格式來展示應(yīng)用資源的狀態(tài)信息,例如XML,PDF,JavaScript Object Notation (JSON)等。
二,建立基于REST的客戶端
NetBeans,可以幫助你自動整個建立過程。
1,右鍵你的項目,然后進行如下選擇 New > RESTful Web Services from Entity Classes
2,選中前面所建立好的但個實體
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事實上生成兩組類,一組類用來映射實體類到XML文檔,通過使用JAXB技術(shù)。
另一組是資源,每個資源包括了一類實體的所有實例。以方便客戶端的操作和在服務(wù)器及客戶端進行交換。
我們可以使用REST的接口來對實體進行操作,在resource包中,你可以通過查看類,可以發(fā)現(xiàn)URLS和針對每個實體的顯示層是如何進行
構(gòu)建的。
因為在前面我們實現(xiàn)了兩個作者的實體實例,所以當(dāng)你訪問如下地址http://localhost:8080/ArticleEvaluator/resources/authors的時候,你
可以看到如下界面:
你會看到兩個作者的列表信息(圖片省略了),當(dāng)然你也可以通過如下的地址訪問具體的某一個作者:
http://localhost:8080/ArticleEvaluator/resources/authors/1/
測試REST應(yīng)用
只使用WEB瀏覽器是不能全面測試REST應(yīng)用的,因為我們還使用了JSON對象,JSON對象被廣泛的應(yīng)用到REST的應(yīng)用中。
JSON比純粹的XML格式更好,可以被JS腳本訪問??梢越Y(jié)合jquery使用。
測試REST應(yīng)用,可以使用兩種方法來進行:
1,使用Jsersey提供的測試框架
2,使用底層的庫,例如Apache Commons HttpClient ,來手工處理HTTP Request.
通常第一種方法,比較有效率,因為是框架,但是想知道更多的細節(jié)則需要使用方法2,你可以到 http://hc.apache.org/httpclient-3.x/ 下載
HttpClient.
測試方法通常包括三個:
createArticle() --生成Article
testResourceAsXml()--測試XML的格式
testResourceAsJson()
比較下 JavaServer Faces and a REST 兩中不同類型的客戶端:
1,兩種客戶端都可以使用NetBeans幫助生成。
2,兩種前端都使用了實體對象的概念。
3,兩種前端可以同時使用,不會有什么沖突。
下面是比較有區(qū)別的地方:
1,JSF的應(yīng)用狀態(tài)保存在了服務(wù)器端,用戶的操作狀態(tài)都保存到了HttpSession 而REST則是把狀態(tài)保存到了客戶端。
使用 REST URLs 來跟資源進行交互,這也是為什么JSF比較容易編碼的原因。
2,JSF提供了豐富的用戶界面組件,如果你的應(yīng)用中需要界面,那么使用JSF則比較有效率,后者沒有界面組件,只能結(jié)合JQUERY等來使用。
3,REST擁有better-looking URLs這樣可以被用戶進行書簽收藏,也方便搜索引擎收錄。
4,REST提供了對同一資源進行多格式顯示的可能,例如XML,PDF,JDON等。
相關(guān)文章
解決Android Studio安裝后運行出錯dose not...和Internal error...
這篇文章主要介紹了解決Android Studio安裝后運行出錯dose not...和Internal error...的相關(guān)資料,需要的朋友可以參考下2017-03-03解決Spring JPA 使用@transaction注解時產(chǎn)生CGLIB代理沖突問題
這篇文章主要介紹了解決Spring JPA 使用@transaction注解時產(chǎn)生CGLIB代理沖突問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08Linux中Java開發(fā)常用軟件安裝方法總結(jié)
這篇文章主要介紹了Linux中Java開發(fā)常用軟件安裝方法總結(jié),需要的朋友可以參考下2020-02-02SpringBoot快速集成jxls-poi(自定義模板,支持本地文件導(dǎo)出,在線文件導(dǎo)出)
這篇文章主要介紹了SpringBoot快速集成jxls-poi(自定義模板,支持本地文件導(dǎo)出,在線文件導(dǎo)出),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Maven默認中央倉庫(settings.xml 配置詳解)
這篇文章主要介紹了Maven默認中央倉庫(settings.xml 配置詳解),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12