参考:https://blog.csdn.net/fn_2015/article/details/70311495
https://www.cnblogs.com/wxgblogs/p/5602689.html
静态导入:<%@include file="XXX.xxx"%>
指令元素,将导入内容和jsp页面一起编译,最终生成一个java.class文件,所以应注意变量冲突等问题。
动态导入:<jsp:include page="{relativeURL|<%=expression%>}" flush="true"/>
动作元素,和父页面分别编译,生成各自的java.class文件,仅将导入页面的body插入jsp中。
flush属性用语指定输出缓存是否转移到被导入文件中。如果指定为true,则包含在被导入文件中,如果指定为false,则包含在原文件中,对于JSP1.1旧版本,只能设置为false。
归纳:
1、静态导入是将被导入页面的代码完全融入,两个页面融合成一个整体Servlet;而动态导入则在Servlet中使用include方法来引入被导入页面的内容。
2、静态导入时被导入页面的编译指令会起作用;而动态导入时被导入页面的编译指令则失去作用,只是插入被导入页面的body内容。
3、动态导入还可以增加额外的参数。即如下代码方式:
<jsp:include page="{relativeURL|<%=expression%>}" flush="true">
<jsp:param name="parameterName" value="parameterValue"/>
</jsp:include>