動態include與靜態include的區別


搬一下以前寫的

個人總結:

動態INCLUDE 用jsp:include動作實現 <jsp:include page="included.jsp" flush="true" />它總是會檢查所含文件中的變化,適合用於包含動態頁面,並且可以帶參數。靜態INCLUDE 用include偽碼實現,定不會檢查所含文件的變化,適用於包含靜態頁面<%@ include file="included.htm" %>

動態include在使用的時候,會先解析所要包含的頁面(你例子中的included.jsp),解析后在和主頁面放到一起顯示;
靜態include在使用的時候,不會解析所要包含的頁面(你例子中的included.htm),也就是說,不管你的included.htm中有什么,我的任務就是把你包含並顯示,其他的一概不管

jsp:include是先編譯一下included.jsp文件,然后再包含 先編譯,后包含
@ include是先把文件包含就來,然后統一編譯 先包含,后編譯

動作包含的屬性:

page:指定所包含資源的相對url路徑,該資源必須時同一web應用程序的組成部分。

flush:指定在執行include動作后是否應刷新緩沖區,在jsp1.1中,該屬性必須設置為真。

使用動態include動作時,根據jsp1.1規范,jsp容器允許判斷通過include指令包含的資源是否發生變化。如果發生變化。則容器可以重新編譯包含該資源的jsp,然而,該規范並沒有提供向容器表明某個包含的資源發生變化的機制。

動態include的優點和不足:
 優點:
1:引入和同步一個動態的頁面,使jsp頁面更具靈活性
2:能和不同頁面之間進行信息的交互和快捷的實現方式。
3:改變了原始的所有頁面編碼都放在一個jsp上,使不同的功能分別寫在不同頁里,通過動態include方式引用到頁面,更易於編碼,更易於管理。
不足:

動態的引入時需要頻繁的變化和頁面信息的更新和交互,要占用大量的資源開銷。降低頁面的訪問速度。如果在沒必要動態引入的情況下,不要使用動態include
應該注意事項:

1:動作的flush屬性必須要定義,不定義會出現轉換錯誤。而且設置的flush必須要為true
2:在動作中指定的頁面必須是同一web應用程序的一部分。如果引入的是非同一web應用的頁面將導致請求時錯誤。


免責聲明!

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



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