標籤 和 include 指令的比較

  1. 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指令
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>

<jsp:include>標籤
啓動服務器,訪問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章

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章