JSP靜態包含和動態包含

JSP中有兩種包含:java

  靜態包含:<%@include file="被包含頁面"%>;編程

  動態包含:<jsp:include page="被包含頁面"flush="true">jsp

二者的區別:spa

   一、<%@ include file=」 」%>是指令元素。<jsp:include page=」 」/>是行爲元素對象

  二、最終編譯成java文件的數目不一樣:編譯

      a:靜態包含在轉換成爲java文件的時候將包含文件的內容「複製」到主體文件,而後做爲一個總體編譯。最終編譯爲一個java文件。class

      b:動態包含是各個jsp文件分別轉換,分別編譯。最終編程成多個java文件。變量

  三、執行時間不一樣file

      a:靜態包含發生在:JSP---->java文件階段request

      b:動態包含發生在:執行class文件階段。動態加入。

  四、靜態包含在兩個文件中不能有相同的變量,動態包含容許:

      因爲靜態包含至關於將包含文件內容直接複製到主體文件中,若是出現相同的變量,就會出現覆蓋等問題,致使文件出錯。

      而動態包含至關於調用不一樣的jsp,變量所在的空間不一樣,天然不會出現覆蓋等現象。

  五、不管是動態包含仍是靜態包含,其request對象都是相同的。也就是同一個request對象:

      靜態包含最終編譯成一個java文件,有一個request對象很好理解。而動態包含最終編譯成多個jsp文件,爲什麼會使用一個request對象呢?

      其實這些jsp組合的過程是一個請求轉發的過程,天然也使用同一個request對象了。

靜態包含和動態包含的使用

  簡單總結一下,就一句話:被包含的頁面是靜態頁面就用靜態包含,是動態頁面就用動態包含。(固然,不是很絕對,可是這樣用沒有錯。)

相關文章
相關標籤/搜索