JSP中的 和<%@include %>


 

jsp中include有兩種寫法, 都是包含一個頁面或者一個文件的意思, 寫法略有不同

<jsp:include page = "url" />或者<jsp:include page = "url">子動作標識<jsp:param></jsp:include>(什么是子動作標識<jsp:param>)

還有一種是

<%@include file="path" %>

相對來講, 后者要簡單一點, 后者屬於一個include指令元素, 並且只有一個file的屬性, 只是寫上路徑就行了, 路徑可以是相對路徑也可以是絕對路徑, 但不能是<%=...%>代表的表達式

而前者是行為元素。 

 

這兩者的主要的區別在於

1:指令的包含是先將代碼拿過來, 然后與自己的代碼一起編譯顯示, 動作包含的過程是先將代碼編譯, 然后將編譯好的內容放到自己的頁面中去

2:動作的包含, page-支持表達式, 指令的包含, file-不支持表達式

3:執行時間上: 

<%@ include file="..."%>速度會快一些, 這個是請求一個頁面

<jsp:include page="..." />相對來講會慢, 這個相當於請求兩個頁面

 

二:引入內容的不同: 

<%@ include file="..."%> 

引入靜態文本(html,jsp),在JSP頁面被轉化成servlet之前和它融和到一起. 

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

另外在兩種用法中file和page屬性都被解釋為一個相對的URI.如果它以斜杠開頭,那么它就是一個環境相關的路徑.將根據賦給應用程序的URI的前綴進行解釋,如果它不是以斜杠開頭,那么就是頁面相關的路徑,就根據引入這個文件的頁面所在的路徑進行解釋.

<%@ include file="..."%> 為靜態的

<jsp:include page="..." flush="true" />為動態的

動態include 它總是會檢查所含文件中的變化, 適合用於包含動態頁面, 並且可以帶參數
靜態include用include偽碼實現, 不會檢查所含文件的變化, 適用於包含靜態頁面

通常當應用程序中所有的頁面的某些部分(例如標題、頁腳和導航欄)都相同的時候,我們就可以考慮用include。


免責聲明!

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



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