Java与JSP的JSTL的性能比较

时间:2014-05-23 03:11:48

标签: java jsp jstl

我们很多时候可以使用JSTL处理Java和JSP中的一段代码,例如简单比较并根据比较适当地设置值。

考虑最佳做法和表现,我们应该选择哪种替代方案?从性能的角度来看两者是否相同?

P.S。不是在讨论Java scriptlet。

3 个答案:

答案 0 :(得分:3)

JSTL和任何JSP服务器标签的目的是将Java代码从JSP中取出。

JSP是一种用于"视图的演示技术。你的申请的一部分。它应该只处理表示逻辑。但是因为在scriptlet中添加Java代码非常简单,许多开发人员开始在JSP中添加业务逻辑。因此,你最终得到了一个测试不佳的应用程序(正如@Steve C在他的回答中所评论的那样),因为你的separation of concerns很差。这反过来会导致可维护性很大。

因此服务器标签会替换the use of scriptlets (a practice frowned upon)并强制您拥有它所属的业务代码:在具有非常明确定义的行为的Java类中。

那是介绍,现在回到你的问题......

使用服务器标签确实需要执行更多的代码,而不仅仅是在普通的Java代码中执行相同的操作,因为有一个完整的lifecycle容器放置标记以便从中获取输出。它是慢的,是的,但大部分时间它都是无关紧要的。在考虑表现时,您必须牢记the rules of optimization

  

优化的第一条规则 - 不要   第二条优化规则 - 不要......还有   优化前的配置文件

至于最佳实践,您不应仅仅因为可以而牺牲Java类和JSP之间的代码来牺牲代码的可读性和可维护性。正如我在开始时所说的,JSP用于表示,而不是业务逻辑。相关代码应该粘在一起,而不是遍布应用程序的不同层。

答案 1 :(得分:0)

最佳做法是尽可能保持JSP的逻辑免费。

为java中实现的逻辑编写单元测试要容易得多。

答案 2 :(得分:0)

JSF JSTL和JSP JSTL是相同的,所以它们执行相同的操作。您需要考虑的唯一因素是JSF JSTL表达式的评估频率最高可达六倍。