1、include指令
语法:
<%@include file="URL" %>
2、include动作
语法
<jsp:include page="URL" flush="true|false">
flush表示被包含的页面是否从缓冲区读取
3、比较
对于第三第四点可以验证如下:
date.jsp
<%@ page language="java" import="java.util.*,java.text.*" contentType="text/html; charset=utf-8"%>
<%
Date d=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
String s=sdf.format(d);
out.println(s);
%>
Command.jsp
<body>
<h1>include指令</h1>
<hr>
<%@include file="date.jsp" %>
</body>
action.jsp
<body>
<h1>include动作</h1>
<hr>
<jsp:include page="date.jsp" flush="false"></jsp:include>
</body>
首先运行Command.jsp,在
Tomcat的work\Catalina\localhost\includeCommAction\org\apache\jsp目录下发现这些文件:
也就是说使用include指令时,最后只会生成一个servlet,打开command_jsp.java分析:
可以看到在文件中看到date.jsp的源代码,也就是说include指令包含的是“代码”
再运行action.jsp,目录中文件如下:
发现多了两个class文件:date_jsp.class和action_jsp.class,也就是说使用include动作包含和被包含的页面会自己独立生成自己的servlet,再看看action_jsp.java内容有下面这句话:
include动作并没有包含date.jsp的代码,是通过红线标注的这句话引入,包含的是“输出”