程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> JSP之include指令與動作的區別講解

JSP之include指令與動作的區別講解

編輯:關於JSP

1.include指令
        include可以在JSP頁面轉換成Servlet之前,將JSP代碼插入其中。它的主要優點是功能強大,所包含的代碼可以含有總體上影響主頁面的 JSP構造,比如屬性、方法的定義和文檔類型的設定。它的缺點是難於維護只要被包含的頁面發生更改,就得更改主頁面,這是因為主頁面不會自動地查看被包含的頁面是否發生更改。
語法:<%@ include file="sample.jsp" %>

2.include動作
        jsp:include動作是在主頁面被請求時,將次級頁面的輸出包含進來。盡管被包含的頁面的輸出中不能含有JSP,但這些頁面可以是其他資源所產生的結果。服務器按照正常的方式對指向被包含資源的URL進行解釋,因而這個URL可以是Servlet或JSP頁面。服務器以通常的方式運行被包含的頁面,將產生的輸出放到主頁面中,這種方式與RequestDispatcher類的include方法一致。它的優點是在被包含的頁面發生更改時,無須對主頁面做出修改。它的缺點是所包含的是次級頁面的輸出,而非次級頁面的實際代碼,所以在被包含的頁面中不能使用任何有可能在整體上影響主頁面的JSP構造。
語法: <jsp:include page="sample.jsp" flush="true"> <jsp:param name="name" value="value"/> </jsp:include>
其中參數設置可以沒有,如果沒有參數設置,則必須采用<jsp:include page="sample.jsp" flush="true"/>形式

3. 兩者的主要區別
        jsp:include動作和include指令之間的根本性的不同在於它們被調用的時間。jsp:include動作在請求期間被激活,而include指令在頁面轉換期間被激活。
    兩者之間的差異決定著它們在使用上的區別。使用include指令的頁面要比使用jsp:include動作的頁面難於維護。前面已經說過,使用JSP指令,如果包含的JSP頁面發生變化,那麼用到這個頁面的所有頁面都需要手動更新。在JSP服務器的相關規范中並沒要求能夠檢測出包含的文件什麼時候發生改變,實際上大多數服務器頁都有去實現這種機制。這樣就會導致十分嚴重的維護問題,需要記住所有包含某一個頁面的其他頁面,或者重新編譯所有的頁面,以使更改能夠生效。在這點上,jsp:include就體現出了十分巨大的優勢,它在每次請求時重新把資源包含進來。在實現文件包含上,應該盡可能地使用 jsp:include動作。
        jsp:include動作直比於include指令在維護上有著明顯優勢,而include指令仍然能夠得以存在,自然在其他方面有特殊的優勢。這個優勢就是include指令的功能更強大,執行速度也稍快。include指令允許所包含的文件中含有影響主頁面的JSP代碼,比如響應報送的設置和屬性方法的定義。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved