的區別(簡單了解)" type="hidden"/>

和<%@include file=""%>的區別(簡單了解)


簡單了解

include指令是編譯階段的指令,即include所包含的文件的內容是編譯的時候插入到JSP文件中,JSP引擎在判斷JSP頁面未被修改,否則視為已被修改。由於被包含的文件是在編譯時才插入的,因此如果只修改了include文件內容,而沒有對JSP修改,得到的結構將不會改變,所以直接執行已經存在的字節碼文件,而沒有重新編譯。因此對不經常變化的內容,用include指令是合適的,如果需要的內容是經常變化的,則需要動作元素<jsp:include>。

include指令

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

語法:<%@ include file="top.jsp" %>

include動作

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

語法: <jsp:include page="top.jsp" flush="true"/>

 

<jsp:include>和<%@include file=""%>的區別

1、在執行時間上

<%@ include file=”relativeURI”%>                   是在翻譯階段執行
<jsp:include page=”relativeURI” flush=”true” />  在請求處理階段執行.

2、引入內容的不同

<%@ include file=”relativeURI”%>    引入靜態文本(html,jsp),在JSP頁面被轉化成servlet之前和它融和到一起.

<jsp:include page=”relativeURI” flush=”true” />  引入執行頁面或servlet所生成的應答文本.

3、在編譯上

jsp:include是先編譯一下included.jsp文件,然后再包含 先編譯,后包含

@ include是先把文件包含就來,然后統一編譯 先包含,后編譯

圖解區別

 

使用include動作還是include指令好呢?

  使用include指令,如果被包含的文件發生改變,那么,用到它的所有Jsp頁面都需要更新。

  僅當include動作不能滿足要求時,我們才應該使用include指令。

  有 些開發人員認為include指令生成的代碼執行起來比使用include動作的代碼更快。盡管原則上由可能的確如此,但性能上的差異很小,以致難以測 量,同時,include動作在維護上的優勢十分巨大,當兩種方法都可以使用時,include動作幾乎肯定是首選的方法。

  對於文件包含,應該盡可能地使用include動作。僅在所包含的文件中定義了主頁面要用到的字段或方法,或所包含的文件設置了主頁面的響應報頭時,才應該使用include指令。

為什么人們還要使用它呢?

因為include指令更為強大。include指令允許所包含的文件中含有影響主頁面的Jsp代碼,比如響應報頭的設置和字段、方法的定義

 

總結:

<jsp:include page="">  父頁面和包含進來的頁面單獨編譯,單獨翻譯成servlet后,在前台拼成一個HTML頁面。

<%@include file=""%> 父頁面和包含進來的頁面,代碼合並后,才一起翻譯成servlet,反饋到前台,形成一個HTML頁面。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM