js——jsp中include的兩種用法
阿新 • • 發佈:2019-02-08
1.兩種用法
<%@ include file=” ”%>
<jsp:include page=” ” flush=”true”/>
2.用法區別
(1)執行時間上區別
<%@ include file=”relativeURI”%> // 是在翻譯階段執行
<jsp:include page=”relativeURI” flush=”true” />// 在請求處理階段執行.
JSP中的兩種包含頁面的方法
第一種:include指令:當JSP轉換成Servlet時引入指定檔案 (靜態包含)
第二種:< jsp:include>動作元素:當JSP頁面被請求時引入指定檔案(動態包含)
總結
對於靜態包含,<%@include%>,中包含的檔案(無論html檔案還是jsp檔案),只是簡單的嵌入到主檔案中,就是在jsp頁面轉化成Servlet時才嵌入到主檔案中,因為執行的結果是隻生成了一個Servlet。
而對於動態包含< jsp:incude>,如果被包含檔案是動態的(jsp檔案),那麼就會生成兩個Servlet,也就是被包含檔案也要經過jsp引擎編譯執行生成一個Servlet,兩個Servlet通過request和reponse進行通訊(包含的jsp是一個完整的檔案有html、body等標籤)。如果被包含的檔案是靜態的(html檔案),那麼這種情況和<%@include>就很相似,只生成了一個Servlet,但是他們之間沒有進行簡單的嵌入,而依然是通過request和reponse進行的通訊
<jsp:include>
包含一個靜態或動態檔案.
JSP 語法
<jsp:include page="{relativeURL | <%= expression%>}" flush="true" />
or
<jsp:include page="{relativeURL | <%= expression %>}" flush="true" >
<jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" />+
</jsp:include>
Examples
<jsp:include page="scripts/login.jsp" />
<jsp:include page="copyright.html" />
<jsp:include page="/index.html" />
<jsp:include page="scripts/login.jsp">
<jsp:param name="username" value="jsmith" />
</jsp:include>
描述
<jsp:include>元素允許你包含動態檔案和靜態,這兩種包含檔案的結果是不同的。如果檔案僅是靜態檔案,那麼這種包含僅僅是把包含檔案的內容加到jsp檔案中去,而如果這個檔案動態的,那麼這個被包含檔案也會被Jsp編譯器執行(這一切與asp相似)
你不能從檔名上判斷一個檔案是動態的還是靜態的,比如aspcn.asp 就有可能只是包含一些資訊而已,而不需要執行。<jsp:include>能夠同時處理這兩種檔案,因此你就不需要包含時還要判斷此檔案是動態的還是靜態的.
如果這個包含檔案是動態的,那麼你還可以用<jsp:param>還傳遞引數名和引數值。
屬性
page="{relativeURL | <%= expression %>}"
引數為一相對路徑,或者是代表相對路徑的表示式.
flush="true"
這裡你必須使用flush="true",你不能使用false值.預設值為false
<jsp:param name="parameterName" value="{parameterValue | <%= expression %> }" />+
<jsp:param>子句能讓你傳遞一個或多個引數給動態檔案
你能在一個頁面中使用多個<jsp:param>來傳遞多個引數