使用 jsp 的 JSP 性能:包含

2022-09-01 18:32:57

我开始将一个大的JSP文件分解成一些较小的JSP页面,这样我就可以在站点的其他区域重用它。

我可以采用将它保留为大型整体式 JSP 文件的方法,该文件采用参数并相应地调整其行为。我可以采取的另一种方法是将其分解,以便通过jsp:include调用它。

创建从服务器内部调度的其他请求调用时,性能问题是什么?将其保留为一个jsp页面是否在性能方面更好?


答案 1

它是一个运行时指令,与恰好是编译时指令(实际上是转换时间)的指令不同。编译时包含指令相对无害,因为 JSP 通常用于生产,或者在最坏的情况下为应用程序的每次部署进行编译。因此,最好对静态文件使用编译时指令,因为文件在运行时不会发生更改。jsp:include<%@ include ... %>

另一个头上的运行时包含指令,如果误用,可能会导致一些性能下降,特别是对于包含的静态文件。这主要是因为 JSP 容器必须随后获取静态文件的内容并将它们包含在响应中。因此,将运行时指令的使用保留给真正有用的场景,在这些场景中,另一个 servlet 或 jsp 的响应将包含在响应中,而不仅仅是为了让代码看起来不错。


答案 2

您应该使用:

<%@ include file="page.jsp" %>

这将在翻译时添加页面.jsp的内容,并且没有开销。

<jsp:include page="page.jsp" />

您的方法在运行时添加内容并增加大量开销。


推荐