MVC:是一種思想,是一種設計模式html
SpringMVC:是一個框架,實現了MVC這種思想。java
以前:寫JSP頁面,比較繁瑣。eg:在頁面顯示用戶列表,咱們會在JSP頁面,使用<foreach>標籤,循環輸出全部User對象。此時JSP頁面,和Model實體類混合在一塊兒,沒有進行分離出來。無法寫js程序員
而使用SpringMVC後,能夠將View和Model分離,能夠單獨返回頁面,也能夠setAttribute()設置數據,在前臺頁面,能夠經過js將數據渲染出來。設計模式
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 CXF, Restlet(最先的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是一款模板引擎,是一個Java類庫,是一款程序員能夠嵌入他們所開發產品的組件。
該模板引擎專門用來解析文件的。固然不單單是解析ftl格式的文件,也能夠是xml,rtf文件等,咱們能夠理解爲freemarker是一種網頁展示技術。
freemarker的文件通常後綴是ftl,能夠解析HTML、xml等文件。能夠將html,xml等文件內容寫在ftl文件中,就表示要使用freemarker技術來對html、xml文件進行解析它。
FreeMarker Template Language(FTL),屬於簡單、專用的語言。
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緩存文件的形式返回到頁面顯示。