Restful、Jersey和JAX-RS

 一:MVC與SpringMVC

MVC:是一種思想,是一種設計模式html

SpringMVC:是一個框架,實現了MVC這種思想。java

以前:寫JSP頁面,比較繁瑣。eg:在頁面顯示用戶列表,咱們會在JSP頁面,使用<foreach>標籤,循環輸出全部User對象。此時JSP頁面,和Model實體類混合在一塊兒,沒有進行分離出來。無法寫js程序員

而使用SpringMVC後,能夠將View和Model分離,能夠單獨返回頁面,也能夠setAttribute()設置數據,在前臺頁面,能夠經過js將數據渲染出來。設計模式

 

 二:Restful、Jersey和JAX-RS

restful:是一種風格,能夠惟一將網絡上的資源表示出來。經過http://ip:port/xiangmu/url,經過協議,ip,端口,項目,url惟一表示一個資源。緩存

  REST 指的是一組架構約束條件和原則。restful

  REST的目的是便於不一樣軟件/程序在網絡(例如互聯網)中互相傳遞信息。約定大於配置,有了統一的規範,你們在接口設計時可以保證理解的一致性。網絡

JAX-RS:Java API for RESTful Web Services,是java的一個小框架,實現了restful風格,將網絡上的資源惟一的標識出來。架構

  JAX-RS提供了一些註解將一個資源類,一個POJO Java類,封裝爲Web資源。框架

  JAX-RS和全部JAVA EE的技術同樣,只提供了技術標準,容許各個廠家有本身的實現版本,實現版本有:RESTEasy(JBoss), Jersey(Sun提供的參考實現), Apache CXFRestlet(最先的REST框架,先於JAX-RS出現), Apache Wink。JAX-RS基於JavaEE的Servlet。標準中定義的註解大大簡化資源位置和參數的描述,僅僅使用註解就能夠將一個POJO java類封裝成一個Web資源。JAX-RS也有相似於Spring依賴注入的方式,減小類之間的耦合度。jsp

Jersey:是一個框架,實現了restful風格,相似於SpringMVC實現了MVC設計思想。

  Jersey框架中,會用到java中JAX-RS框架的一些註解,同時它又有它本身所獨有的技術。

 

三:FreeMarker

  FreeMarker是一款模板引擎,是一個Java類庫,是一款程序員能夠嵌入他們所開發產品的組件。

  該模板引擎專門用來解析文件的。固然不單單是解析ftl格式的文件,也能夠是xml,rtf文件等,咱們能夠理解爲freemarker是一種網頁展示技術。

  freemarker的文件通常後綴是ftl,能夠解析HTML、xml等文件。能夠將html,xml等文件內容寫在ftl文件中,就表示要使用freemarker技術來對html、xml文件進行解析它。

  FreeMarker Template Language(FTL),屬於簡單、專用的語言。

以解析html爲例:

1.ftl文件中:能夠寫html,能夠寫指令,包括<#if>、<#list>、${}等來獲取值。eg:${latestProduct.url}"

2..在裝載網頁的時候,Freemarker模板自動從數據模型中提取數據,並解釋整個網頁爲咱們熟知的HTML頁面。

3.ftl文件,是Freemarker模板的文件後綴名。ftl文件會有對應的html緩存文件,解析的時候,會去查找對應的html文件。freemarker引擎會解析ftl格式的文件,最終以html的格式返回到頁面,就相似與jsp文件最終會解析爲html代碼,以流的方式返回到頁面。

  jsp文件,本質也是一個servlet文件,返回數據的時候,拼接html代碼,<tbody>、<tr>等方式,最後解析,經過二進制流的方式輸出到頁面中去。 這點和ftl文件很類似,jsp是轉換爲out流的形式輸出內容,而ftl文件是最中轉換爲html緩存文件的形式返回到頁面顯示。

總結

  簡單的說,FreeMarker就是一種用Java編寫的模板引擎,它根據模板輸出多種規格的文本。特別指出的是,FreeMarker與Web應用框架無關,它一樣能夠應用在非Web應用程序環境中,並且,FreeMarker並非只能生成HTML頁面,它也能夠生成各類文本,如XML/RTF/Java源代碼等。
  Freemarker是一個很是優秀的模版引擎,這個模版引擎可用於任何場景,FreeMarker負責將數據模型中的數據合併到模版中,從而生成標準輸出。
  FreeMarker特別適應與MVC模式的Web應用,一般有Java程序準備要顯示的數據,由FreeMarker模版引擎來生成頁面,而FreeMarker模版則提供頁面佈局支持,從而能更好地規範MVC架構,保證視圖邏輯和業務邏輯分離。
相關文章
相關標籤/搜索