簡體   English   中英

最快的Java Web模板語言

[英]Fastest Java web templating language

我即將開始一個新的Spring MVC項目,我正在研究視圖的各種選項。 我從來都不是JSP的粉絲,過去我遇到過與JSP相關的性能問題,所以我正在研究其他選項。 我希望在某個地方有人對各種選項進行普查(也許它必須是我),並宣布哪些是快速的,或者至少有哪些選項。 以下是我想到的選擇,從明顯到奇怪的排序:

  • JSP,JSTL
  • 速度
  • FreeMarker的
  • GSP(Groovy JSP)
  • ERB由IronRuby或一些這樣的瘋狂驅動

列表的任何建議,個人偏好或其他好的選擇?

StringTemplate - 快速,簡單並有助於強制關注MVC分離。 最后我查了一下,Spring Web MVC沒有為它提供View類,但我能夠輕松創建一個自定義類

雖然我可能會自己選擇FreeMarker或Velocity,但我對你所說的內容感到驚訝

JSP相關的性能問題

在所有這些可能的解決方案中,JSP顯然是性能最佳的。 畢竟,JSP頁面被編譯為Servlet類並從字節代碼執行,而您提到的所有其他技術都被解釋。

如果遇到性能問題,可以優化JSP代碼或使用JSP編譯器(如JSPC)預編譯JSP頁面(可能使用maven,使用JSPC-maven-plugin )。

這些天我更喜歡Velocity。 表現很好。 我喜歡它解耦模板和數據的自然方式。

我曾經使用過Velocity。 該項目停滯不前並有一些已知問題,因此切換到Freemarker。 我相信(不要引用我)Freemarker的出現是因為Velocity失去了動力。 沒有雙關語。

從那以后,Velocity再次活躍起來,至少有一段時間了。 我現在更喜歡Freemarker,但這兩個中的任何一個都很好用。 我會選擇更容易進入Spring MVC的插件。

我同意肖恩·帕特里克·弗洛伊德的觀點,認為JSP應該非常快。 在大多數情況下,甚至比其他模板引擎更快,即使它們被緩存。

如果您真的遇到與JSP相關的JSP相關性能問題,那么您應該重新思考如何使用JSP。

至少,如果你有一個導致性能問題的熱點,那么你可以手工構建這個(hopeflully)小pice(StringBuilder)。

所以要解決這個問題:我相信JSP是禁食的(除了手工操作),但另一方面,你必須有一個非常特殊的用例來運行你提到的任何主要模板工程的性能問題。

你應該試試MVEL 它比我知道的任何東西都快(包括StringTemplate),非常強大,感覺就像在普通的java中編寫腳本。

<p>
   @foreach{index : alphabetical}
     <a href="@{index.uri}">@{index.description}</a>
   @end{}
</p>

要么

<a href="@{ua.pageURI}">
   @{org.apache.commons.lang.StringEscapeUtils.escapeHtml(ua.name)}
</a>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM