根据我的理解,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/