在java領域,表現層技術主要有三種:jsp、freemarker、velocity。
jsp是你們最熟悉的技術
優勢:
一、功能強大,能夠寫java代碼
二、支持jsp標籤(jsp tag)
三、支持表達式語言(el)
四、官方標準,用戶羣廣,豐富的第三方jsp標籤庫
五、性能良好。jsp編譯成class文件執行,有很好的性能表現
缺點:
jsp沒有明顯缺點,非要挑點骨頭那就是,因爲能夠編寫java代碼,如使用不當容易破壞mvc結構。
velocity是較早出現的用於代替jsp的模板語言
優勢:
一、不能編寫java代碼,能夠實現嚴格的mvc分離
二、性能良好,聽說比jsp性能還要好些
三、使用表達式語言,聽說jsp的表達式語言就是學velocity的
缺點:
一、不是官方標準
二、用戶羣體和第三方標籤庫沒有jsp多。
三、對jsp標籤支持不夠好
freemarker
優勢:
一、不能編寫java代碼,能夠實現嚴格的mvc分離
二、性能很是不錯
三、對jsp標籤支持良好
四、內置大量經常使用功能,使用很是方便
五、宏定義(相似jsp標籤)很是方便
六、使用表達式語言
缺點:
一、不是官方標準
二、用戶羣體和第三方標籤庫沒有jsp多
選擇freemarker的緣由:
一、性能。velocity應該是最好的,其次是jsp,普通的頁面freemarker性能最差(雖然只是幾毫秒到十幾毫秒的差距)。可是在複雜頁面上(包含大量判斷、日期金額格式化)的頁面上,freemarker的性能比使用tag和el的jsp好。
二、宏定義比jsp tag方便
三、內置大量經常使用功能。好比html過濾,日期金額格式化等等,使用很是方便
四、支持jsp標籤
五、能夠實現嚴格的mvc分離html