语法: <%@include file="URL" %>
语法 <jsp:include page="URL" flush="true|false"> flush表示被包含的页面是否从缓冲区读取
对于第三第四点可以验证如下: 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的代码,是通过红线标注的这句话引入,包含的是“输出”
