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文件中有重名的变量,只能使用动态包含,其余都可以使用静态包含。