静态和动态包含的区别和联系
1_ <%@ include file="" %>是指令元素。<jsp:include page=” ”/>是行为元素
2_最终编译成java文件的数目不同。
*_静态包含在转换成为java文件的时候将包含文件的内容“复制”到主体文件,
然后作为一个整体编译。最终编译为一个java文件。
*_动态包含是各个jsp文件分别转换,分别编译。最终编程成多个java文件。
3_执行时间不同
*_静态包含发生在:JSP---->java文件阶段。
*_动态包含发生在:执行class文件阶段。动态加入。
4_静态包含在两个文件中不能有相同的变量,动态包含允许。
由于静态包含相当于将包含文件内容直接复制到主体文件中,如果出现相同的
变量,就会出现覆盖等问题,导致文件出错。而动态包含相当于调用不同的jsp,
变量所在的空间不同,自然不会出现覆盖等现象。
5_无论是动态包含还是静态包含,其request对象都是相同的。也就是同一个request对象。
静态包含最终编译成一个java文件,有一个request对象很好理解。而动态包含
最终编译成多个jsp文件,为何会使用一个request对象呢?其实这些jsp组合的过程
是一个请求转发的过程,自然也使用同一个request对象了。
注:主体文件(主页面,如index.jsp),被包含文件(如:提取了公共头部页面的head.jsp)
JSP中静态包含和动态包含
静态包含:<%@include file=“被包含页面”>
eg:
<%@ include file="/header.jsp" %>
动态包含:<jsp:include page=“被包含页面” flush=“true”>
eg:
<jsp:include page="/header.jsp"></jsp:include>
静态包含和动态包含的使用
简单总结一下,就一句话:被包含的页面是静态页面就用静态包含,是动态页面就用动态包含.(当然,不是很绝对,但是这样用,是没有错。)