Java与JSP的JSTL的性能比较
很多时候,我们可以使用JSTL处理Java和JSP中的一段代码,例如一个简单的比较,并在比较的基础上适当地设置值
考虑到最佳实践和性能,我们应该选择哪种替代方案?从性能角度看,两者是否相同
另外,不要谈论Java脚本
你可以在下面搜索框中键入要查询的问题!
很多时候,我们可以使用JSTL处理Java和JSP中的一段代码,例如一个简单的比较,并在比较的基础上适当地设置值
考虑到最佳实践和性能,我们应该选择哪种替代方案?从性能角度看,两者是否相同
另外,不要谈论Java脚本
# 1 楼答案
JSF-JSTL和JSP-JSTL是相同的东西,因此它们执行相同的操作。唯一需要考虑的因素是一个JSF JSTL表达式可以被评估多达六次。p>
# 2 楼答案
JSTL和任何JSP服务器标记的目的就是从JSP中获取Java代码
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是用于表示的,而不是用于业务逻辑。相关的代码应该粘在一起,而不是分散在应用程序的不同层上
# 3 楼答案
最佳实践是尽可能保持JSP的逻辑自由
为java实现的逻辑编写单元测试要容易得多