- include指令的例子
include.jsp
<%@ page language="java" import="java.util.*" %>
<%@ page contentType="text/html; charset=utf-8" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'include.jsp' starting page</title>
</head>
<body>
歡迎你,現在的時間是:
<%@ include file="date.jsp" %>
</body>
</html>
date.jsp
<%@ page language="java" import="java.util.*"%>
<%@ page contentType="text/html; charset=utf-8" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'date.jsp' starting page</title>
</head>
<body>
<% out.println(new Date().toString()); %>
</body>
</html>
include指令
2.<jsp:include>標籤
<%@ page language="java" import="java.util.*"%>
<%@ page contentType="text/html; charset=gb2312" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'dynamicInclude.jsp' starting page</title>
</head>
<body>
dynamicInclude.jsp的中文<br>
<jsp:include page="include.jsp" flush ="true"></jsp:include>
</body>
</html>
<%@ page language="java" import="java.util.*"%>
<%@ page contentType="text/html; charset=gb2312" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'include.jsp' starting page</title>
</head>
<body>
<%Thread.sleep(5000); %>
include.jsp內的中文
</body>
</html>
啓動服務器,訪問dynamicInclude.jsp,在輸出第一句後,停留了五秒後,輸出第二句。說明說明被引用的資源included.jsp在當前JSP頁面輸出內容後才被調用。
將dynamicIndex.jsp的flush 的值改爲false,重啓瀏覽器,發現瀏覽器等待5秒後,將dynamicInclude.jsp和included.jsp頁面的輸出內容同時顯示了出來。
由此可見,Tomcat調用被引入的資源included.jsp時,並沒有將當前JSP頁面中已輸出的內容刷新到客戶端。
3.兩者之間的區別
- jsp:include 標籤中要引入的資源和當前JSP頁面是兩個彼此獨立的執行實體,即被動態引入的資源必須能夠被Web容器獨立執行。而include指令只能引入遵循JSP格式的文件,被引入文件與當前JSP文件需要共同合併才能翻譯成一個Servlet源文件。
- jsp:include標籤中引入的資源是在運行時才包含,而且只包含運行結果。而include指令引入的資源是在編譯時期包含,包含的是源代碼。
- jsp:include標籤運行原理與RequestDispatcher.include方法類似,即被包含的頁面不能改變響應狀態碼或者設置響應頭,而include指令沒有這方面的限制。
參考資料:JavaWeb程序入門 PPT 第7章