必要的補充(一)——java中的表現層技術

Velocity :

在服務器端可以使用 Velocity 處理模板和生成的動態內容(HTML、XML等)。這和 JSP 技術的目標非常接近。但是,JSP 模型可以毫無阻礙地訪問底層的 Servlet API 和 Java 編程語言。它基本上是一種在很大程度上開放的訪問模型。而作爲一種完全自包含的模板引擎和腳本解釋器,Velocity 擁有完全封閉的模型。任何針對系統和/或 Java 編程語言的訪問都必須明確地啓用。默認情況,Velocity 模板中不能訪問 Java 編程語言的任何方面。這種封閉的模型使 Velocity 能夠提供分離的模板表示層,與任何應用程序業務邏輯或者數據管理代碼清晰地劃分開。從而保證了web site 的長期可維護性.

第一次解釋jsp需要經過轉換成java代碼,再編譯成class文件等步驟,而velocity則在速度上更快,因爲它不需要經過像解釋jsp頁面那麼多的步驟,其次velocity也可以用作其它實現的模板技術,像我在項目中就遇到過使用velocity來作爲郵件的模板,而jsp顯然做不到這樣的功能。

拓展:在java領域,表現層技術主要有三種:jsp、freemarker、velocity。 
jsp是大家最熟悉的技術 
優點: 
1、功能強大,可以寫java代碼 
2、支持jsp標籤(jsp tag) 
3、支持表達式語言(el) 
4、官方標準,用戶羣廣,豐富的第三方jsp標籤庫 
5、性能良好。jsp編譯成class文件執行,有很好的性能表現 
缺點:沒有明顯缺點,非要挑點骨頭就是,由於可編寫java代碼,如使用不當容易破壞mvc結構。 

velocity是較早出現的用於代替jsp的模板語言 
優點: 
1、不能編寫java代碼,可以實現嚴格的mvc分離 
2、性能良好,據說比jsp性能還要好些 
3、使用表達式語言,據說jsp的表達式語言就是學velocity的 
缺點: 
1、不是官方標準  2、用戶羣體和第三方標籤庫沒有jsp多  3、對jsp標籤支持不夠好 

freemarker 也是一種模版引擎語言
優點: 
1、不能編寫java代碼,可以實現嚴格的mvc分離 
2、性能非常不錯 
3、對jsp標籤支持良好 
4、內置大量常用功能,使用非常方便 
5、宏定義(類似jsp標籤)非常方便 
6、使用表達式語言 
缺點: 
1、不是官方標準  2、用戶羣體和第三方標籤庫沒有jsp多 

綜合對比: 
1、性能。velocity應該是最好的,其次是jsp,普通的頁面freemarker性能最差(雖然只是幾毫秒到十幾毫秒的差距)。但是在複雜頁面上(包含大量判斷、日期金額格式化)的頁面上,freemarker的性能比使用tag和el的jsp好。 
2、freemarker宏定義比jsp tag方便,內置大量常用功能,比如html過濾,日期金額格式化等等,支持jsp標籤。且freemarker和velovity一樣,作爲模版語言,都可以實現嚴格的mvc分離。

                                                博文參考:https://www.cnblogs.com/avivaye/p/4418878.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章