Jsp/Servlet基礎-動態INCLUDE與靜態INCLUDE的區別

JSP中動態INCLUDE與靜態INCLUDE的區別

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

靜態INCLUDE用include僞碼實現,<%@include file="include.html"%>,它不會檢查所含文件的變化,適用於包含靜態頁面。

動態include主要是對動態頁面的引入,它總是會檢查所引入的頁面的變化,如果所包含的資源在請求間發生變化,則下一次請求包含<jsp:include>動作的jsp時,將包含資源的新內容。另一方面,include指令在轉換時一次性地將內容複製到jsp中,如果所包含的資源發生變化,則使用include指令的jsp將不能反應出新的內容,除非重新編譯該jsp 。

 

 

所以我們可以總結出: jsp 中 include 有兩種用法 , 分別是:

<%@ include file=” ”%>

<jsp:include page=” ” flush=”true”/>

前者是指令元素,後者是行動元素。具體它們將在哪裏用?怎麼用及它們有什麼區別?這應該是很多人看到它都會想到的題目。下面一起來看看吧。

平常當利用程序中全部的頁面的某些部分(例如題目、頁腳和導航欄)都雷同的時候,我們就可以考慮用 include 。具體在哪些時候用 <%@ include file= ” ” %> ,哪些時候用 <jsp:include page= ” ” flush= ” true ” />這種情勢,首先要知道的是它們中間的區別,只有瞭解了它們用法的不同才懂得該在何時去用以及怎麼選擇。

<%@ include file=” ”%>,jsp 的 include 指令元素讀入指定頁面的內容,並把這些內容和本來的頁面融合到一起。(這個過程是在翻譯階段 : 也就是 jsp 被轉化成 servlet 的階段進行的。這裏對翻譯階段進行一下說明 : 我們知道, jsp 頁面不能原封不動地被傳送給瀏覽器,全部的 jsp 元素都必須首先由服務器進行處理。這是通過將 jsp 頁面轉達化成 servlet ,然後執行這個 servlet 來結束的。服務器需要一個 jsp 容器來處理 jsp 頁面。 jsp 容器平常以 servlet 的情勢來實現,這個 servlet 經過配置,可以處理對 jsp 頁面的全部請求。Jsp 容器重視將 jsp 頁面轉化成 servlet (稱爲 jsp 頁面實現類— JSP Page implementation class ) , 並編譯這個 servlet 。這兩步就組成了翻譯階段。由此我們就會知道: jsp 頁面是把 include 指令元素所指定的頁面的實際內容(也就是代碼段)參加到引入它的 jsp 頁面中 , 合成一個文檔後被 jsp 容器將它轉化成 servlet 。可以看到這時會產生一個臨時 class 文檔和一個 java 文檔。

 

發佈了39 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章