1.. <%@ include file="a.jsp"%>是在编译时加入,所谓静态,就是在编译的时候将a.jsp的代码加入进来在编译,之后运行.
<jsp:include page="a.jsp"/>是在运行时加入,所谓动态,就是单独编译,在运行时候加入进来,之后显示,这种include,可以传递参数.
2.. a.jsp中定义全局变量:int a = 1; b.jsp中再次定义全局变量 int a = 1; 如果用静态编译,相当于把两部分代码
拼接起来,会报错误:重复定义。而动态include不会。
3.. 一:执行时间上:
<%@ include file=”a.jsp”%> 是把a.jsp的内容插入到调用点,如果a.jsp中有 <%@ page language=”java”
contentType=”text/html;charset=gb2312”%>就会报错误!因为已经有page指令了,换句话说:"a.jsp的内容在整页翻译阶段执行"
<jsp:include page=”a.jsp” flush=”true” /> 在请求处理阶段执行.返回的是a.jsp的结果
二:引入内容的不同:
<%@ include file=”relativeURI”%> 引入静态文本(html,jsp),在JSP页面被转化成servlet之前和它融和到一起.
<jsp:include page=”relativeURI” flush=”true” />引入执行页面或servlet所生成的结果.