java - 混合使用 JSP 和 Servlet 时性能是否会受到很大影响?

标签 java jsp servlets

根据我的理解,JSP 无论如何都会被编译,所以我预计两者都会获得类似的性能。我想要显示大量数据,并且正在考虑使用 JSP 作为基础知识并调用 servlet 来为表中的每一行生成代码。除非有一种好方法通过一次调用 servlet 来生成整个表,否则这将意味着数百次调用,我认为这效率不高。这里“正确”的方法是什么?直接的 servlet 会产生大量丑陋的 println 代码,而直接的 JSP 会产生大量丑陋的逻辑语句......

最佳答案

@Tony 是完全正确的。只是不要在 Servlet 中打印 HTML。这个工作是针对JSP的。也不要在 JSP 中编写原始 Java 代码。这项工作是针对 Servlet 的。一旦牢记这两个简单的规则,一切都会顺利。

Servlet 的工作示例:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    List<Product> products = productDAO.list(); // Obtain all products.
    request.setAttribute("products", products); // Store products in request scope.
    request.getRequestDispatcher("/WEB-INF/products.jsp").forward(request, response); // Forward to JSP page to display them in a HTML table.
}

在 JSTL 的帮助下 JSP 的工作示例:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
...
<table>
    <c:forEach items="${products}" var="product">
        <tr>
            <td>${product.name}</td>
            <td>${product.description}</td>
            <td>${product.price}</td>
        </tr>
    </c:forEach>
</table>

就这么简单:)

相关问题:

关于java - 混合使用 JSP 和 Servlet 时性能是否会受到很大影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3852299/

相关文章:

java - 迭代从 JSP 上的 servlet 发送的 ArrayList?

java - 使用具有特定 url 模式的过滤器时出现无限循环

java - 将变量从 Javascript 传递到 Servlet 方法获取返回值

java - 如何在表单提交后显示消息并具有幂等性

java - 如何在 webapp 中查看我的 index.html 文件,该文件是从 url 上的 swagger ui 克隆的

与 Spring DI 一起使用的 Java Static Final 替代方案

java - 成功执行servlet后如何在jsp中生成成功警报?

java - 在 ubuntu-server 中为 Tomcat7 设置 JPDA

java - java web 应用程序运行时在命令提示符中显示进度

java - Servlet(Java EE)中过滤器和监听器的区别