JSP中include指令和include動作的區別

來源:互聯網
上載者:User

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

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. 使用include動作還是include指令?

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

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

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

  對於檔案包含,應該儘可能地使用include動作。僅在所包含的檔案中定義了首頁面要用到的欄位或方法,或所包含的檔案設定了首頁面的響應前序時,才應該使用include指令。

既然include指令產生難以維護的代碼,為什麼人們還要使用它呢?
  因為include指令更為強大。include指令允許所包含的檔案中含有影響首頁面的Jsp代碼,比如響應前序的設定和欄位、方法的定義。

例子://subpage.jsp
<%! int num=0; %>

//mainpage.jsp
<html>
 <body>
  <%@ include file="subpage.jsp" %>
  <%= num %>
 </body>
</html>

當然使用include動作時這是不可能的,因為num變數未定義,首頁面不能成功的轉換成servlet。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.