jsp中静态include和动态include的区别
动态 INCLUDE 用 jsp:include 动作实现 <jsp:include page="included.jsp" flush="true" /> 它总是会检查所含文件中的变化 , 适合用于包含动态页面 , 并且可以带参数。各个文件分别先编译,然后组合成一个文件。
静态 INCLUDE 用 include 伪码实现 , 定不会检查所含文件的变化 , 适用于包含静态页面 <%@ include file="included.htm" %> 。先将文件的代码被原封不动地加入到了主页面从而合成一个文件,然后再进行翻译,此时不允许有相同的变量。
以下是对 include 两种用法的区别
一:执行时间上 :
<%@ include file="relativeURI"%> 是在翻译阶段执行
<jsp:include page="relativeURI" flush="true" /> 在请求处理阶段执行 .
二: 引入内容的不同 :
<%@ include file="relativeURI"%>
引入静态文本 (html,jsp), 在 JSP 页面被转化成 servlet 之前和它融和到一起 .
<jsp:include page="relativeURI" flush="true" /> 引入执行页面或 servlet 所生成的应答文本 .
三:优缺点:
<%@ include file="relativeURI"%>
优点:执行速度快
缺点:被包含的文件在逻辑和语法上不独立于当前的jsp页面
<jsp:include page="relativeURI" flush="true" /> 在请求处理阶段执行 .
优点:被包含的文件在逻辑和语法上独立于当前的jsp页面,可以使用param子元素更加灵活的处理所需要的文件
缺点:执行速度慢一些。
参考:https://blog.csdn.net/a214704/article/details/81293879