繁体   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