<jsp:include>动作元素用来包含静态和动态文件到当前页面中。如果被包含的文件为静态文件,就只需单纯的加到jsp页面中,不用进行任何处理;
如果是动态文件,就要先进行处理,然后将处理的结果加到jsp页面中。例如,在一个jsp页面1中通过<jsp:include>动作包含了另一个jsp页面2,则先将jsp页面2进行转译为servlet类(一种Java类),然后然后编译为字节码文件,最后在运行页面1时才将页面2的运行结果包含到jsp页面中并动态显示出来。
<jsp:include page="被包含页面的url地址" flush="true|false">
flush属性:缓冲区满时,用来指定是否清空,默认值为false
true,则缓冲区满时将进行清空;反之则不进行。
<jsp:include>和<%@include>指令相似,但在使用细节和处理细节上有很大的不同。
动态包含:<jsp:include>动作 | 静态包含:<%@include>指令 |
include动作是包含文件和被包含文件分别转译和编译,只有在客户端请求并执行包含文件时才会动态的编译载入 | include编译指令在jsp程序的转译时期就将file属性所指定的程序内容嵌入,再编译执行 |
生成多个servlet和class文件 | 只生成一个servlet和class文件 |
可以通过param动作传递参数 | 不能传参数 |
包含页面和被包含页面是不同的request对象 | 包含页面和被包含页面是同一个request对象 |
<!--包含文件-->
<jsp:include page="include02.jsp" >
<jsp:param value="张三" name="name"/>
</jsp:include>
<!--被包含文件-->
<!--include02.jsp-->
动态包含被传递的参数
<%
String name=request.getParameter("name");
out.println(name);
%>
实际开发中,把网站不变的部分,如头部导航栏、尾部导航栏抽取出来当被包含文件,这样减少页面代码的复杂性,增加可读性。