使用jsp:include的JSP性能

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

我可以采用离开的方法作为一个大的单片JSP文件,它接受参数并相应地调整它的行为。 我可以采取的另一种方法是将它分开,以便通过jsp:include调用它。

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

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

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

你应该使用:

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

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

  

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

静态与动态include

include指令生成包含页面的副本,并在翻译期间其复制到JSP页面(“包含页面”)中。 这称为静态include(或translate-time include),并使用以下语法:

 <%@ include file="/jsp/userinfopage.jsp" %> 

jsp:include动作,在运行时期间动态地包括来自包含页面的输出中的包含页面的输出。 这称为动态包含(或运行时包含),并使用以下语法:

  

性能注意事项

静态包括影响页面大小; 动态包括影响处理开销。 静态包括避免动态包含所需的请求调度程序的开销,但是在涉及大文件的情况下可能存在问题。

动态包含会增加处理开销,需要额外调用请求调度程序。

http://docs.oracle.com/cd/A97336_01/buslog.102/a83726/keydev1.htm#1015959 http://docs.oracle.com/cd/A97336_01/buslog.102/a83726/genlovw3.htm

不应该创建一个场景来一次向UI加载大量数据,这将影响您实现jsp的任何方式的性能。 把事情简单化。 了解用户在该特定方案中可能读取的数据量。 保持UI用户友好,商业友好和技术友好。

计算mow很多静态/动态内容,并根据它的上下文使用include。 如果要显示记录,请使用10-50条记录分页。更好地使用任何框架来解决基本问题,而不是从头开始解决。

如果您不需要在任何jsp中使用会话,请将其设为会话false <%@ page session =“false”%>

对于include指令,JSP Engine在转换阶段添加插入页面的内容,因此它对性能没有影响。 对于include操作,JSP Engine在运行时添加插入页面的内容,这会产生额外的开销。