有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java与JSP的JSTL的性能比较

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

考虑到最佳实践和性能,我们应该选择哪种替代方案?从性能角度看,两者是否相同

另外,不要谈论Java脚本


共 (3) 个答案

  1. # 1 楼答案

    JSF-JSTL和JSP-JSTL是相同的东西,因此它们执行相同的操作。唯一需要考虑的因素是一个JSF JSTL表达式可以被评估多达六次。p>

  2. # 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

    First Rule Of Optimization - Don't.
    Second Rule Of Optimization - Don't... yet.
    Profile Before Optimizing

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

  3. # 3 楼答案

    最佳实践是尽可能保持JSP的逻辑自由

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