18.9.3
總結:
1、FreeMarker是一個用Java語言編寫的模板引擎淤年,它基于模板來生成文本輸出蜡豹。FreeMarker與Web容器無關,即在Web運行時弄诲,它并不知道Servlet或HTTP娇唯。它不僅可以用作表現(xiàn)層的實現(xiàn)技術塔插,而且還可以用于生成XML,JSP或Java 等佑淀,在spring4.0中推薦使用thymeleaf來做前端模版引擎留美。
2、JSP技術spring boot 官方是不推薦的伸刃,原因有三:
2.1. 在tomcat上谎砾,jsp不能在嵌套的tomcat容器解析即不能在打包成可執(zhí)行的jar的情況下解析
2.2. Jetty 嵌套的容器不支持jsp
2.3. Undertow
3、反正就是spring推薦themleaf捧颅,就學學themleaf景图。
18.8.31
在java領域,表現(xiàn)層技術主要有三種:jsp碉哑、freemarker挚币、velocity。
jsp是大家最熟悉的技術
優(yōu)點:
1扣典、功能強大妆毕,可以寫java代碼
2贮尖、支持jsp標簽(jsp tag)
3笛粘、支持表達式語言(el)
4、官方標準湿硝,用戶群廣薪前,豐富的第三方jsp標簽庫
5、性能良好关斜。jsp編譯成class文件執(zhí)行示括,有很好的性能表現(xiàn)
缺點:
jsp沒有明顯缺點,非要挑點骨頭那就是痢畜,由于可以編寫java代碼垛膝,如使用不當容易破壞mvc結構。
velocity是較早出現(xiàn)的用于代替jsp的模板語言
優(yōu)點:
1丁稀、不能編寫java代碼繁涂,可以實現(xiàn)嚴格的mvc分離
2、性能良好二驰,據(jù)說比jsp性能還要好些
3扔罪、使用表達式語言,據(jù)說jsp的表達式語言就是學velocity的
缺點:
1桶雀、不是官方標準
2矿酵、用戶群體和第三方標簽庫沒有jsp多。
3矗积、對jsp標簽支持不夠好
4全肮、已經(jīng)很久很久沒有維護了。
freemarker
優(yōu)點:
1棘捣、不能編寫java代碼辜腺,可以實現(xiàn)嚴格的mvc分離
2、性能非常不錯
3、對jsp標簽支持良好
4评疗、內置大量常用功能测砂,使用非常方便
5、宏定義(類似jsp標簽)非常方便
6百匆、使用表達式語言
缺點:
1砌些、不是官方標準
2、用戶群體和第三方標簽庫沒有jsp多
選擇freemarker的原因:
1加匈、性能存璃。velocity應該是最好的,其次是jsp雕拼,普通的頁面freemarker性能最差(雖然只是幾毫秒到十幾毫秒的差距)纵东。但是在復雜頁面上(包含大量判斷、日期金額格式化)的頁面上啥寇,freemarker的性能比使用tag和el的jsp好篮迎。
2、宏定義比jsp tag方便
3示姿、內置大量常用功能甜橱。比如html過濾,日期金額格式化等等栈戳,使用非常方便
4岂傲、支持jsp標簽
5、可以實現(xiàn)嚴格的mvc分離
thymeleaf
Thymeleaf是個XML/XHTML/HTML5模板引擎子檀,可以用于Web與非Web應用镊掖。
Thymeleaf的主要目標在于提供一種可被瀏覽器正確顯示的、格式良好的模板創(chuàng)建方式褂痰,因此也可以用作靜態(tài)建模亩进。你可以使用它創(chuàng)建經(jīng)過驗證的XML與HTML模板。相對于編寫邏輯或代碼缩歪,開發(fā)者只需將標簽屬性添加到模板中即可归薛。接下來,這些標簽屬性就會在DOM(文檔對象模型)上執(zhí)行預先制定好的邏輯匪蝙。Thymeleaf的可擴展性也非常棒主籍。你可以使用它定義自己的模板屬性集合,這樣就可以計算自定義表達式并使用自定義邏輯逛球。這意味著Thymeleaf還可以作為模板引擎框架千元。
thymeleaf優(yōu)點:靜態(tài)html嵌入標簽屬性,瀏覽器可以直接打開模板文件颤绕,便于前后端聯(lián)調幸海。springboot官方推薦方案祟身。thymeleaf缺點:模板必須符合xml規(guī)范,就這一點就可以判死刑物独!太不方便了袜硫!js腳本必須加入/
參考鏈接:https://blog.csdn.net/tjcyjd/article/details/16803877
https://blog.csdn.net/ztchun/article/details/76407612