1、include指令:
 
1.1、演示:
 
<%--当前a.jsp页面包含b.jsp页面--%>
<%@ include file="b.jsp" %>
 
1.2、原理:
 
* a.jsp包含b.jsp底层共生成一个java源文件,一个class字节码文件;
* 翻译期包含/编译期包含/静态联编(两个jsp可共享一个变量)。
 
1.3、作用:
 
* 在网页中有一些主体框架,如:网页头、网页脚,这些都是固定不变的,我们可以将网页头、网页脚等固定不变的单独写在某个jsp文件中,在需要的时候使用include指令包含进来。
 
1.4、优点:
 
* 代码量少;
* 便于维护(修改一个文件可作用于所有包含它的页面)。
 
2、include动作:
 
2.1、演示:
 
<%--当前a.jsp页面包含b.jsp页面--%>
<jsp:include page="/b.jsp"></jsp:include>
 
2.2、原理:
 
* 1、a.jsp包含b.jsp,底层会分别生成两个java源文件,两个class字节码文件;
* 2、编译阶段并没有包含,编译阶段是两个独立的class字节码文件,生成两个Servlet,两个独立的Service方法;
* 3、使用include动作属于运行阶段包含,实际上是在运行阶段a中的Service方法调用了b中Service方法,达到了包含的效果;
* 4、include动作完成的动态包含,被称为动态联编。
 
3、用哪个?
 
*  a.jsp包含b.jap,若两个jsp文件中有重名的变量,只能使用动态包含,其余都可以使用静态包含。