**
include指令:jsp靜態包含
**
頁面包含(靜態包含)指令,可以將一個jsp頁面包含到另一個jsp頁面中
語法:<%@ include file=“被包含的文件地址”%>
特點: 先包含後執行,不識別被包含文件類型
被包含頁面儘量不加html和body等標籤,否則瀏覽器可能解析出錯
被包含的頁面不能有和包含頁面存在同名變量
**原因:**靜態包含把被包含的jsp代碼嵌入到包含頁面中一起編譯執行,結果只有一個_jsp.java文件,被包含的頁面包括htm標籤都放在包含頁面的裏面。
**
jsp標籤:java動態包含
**
語法:
不傳遞參數(被包含頁面爲靜態頁面)
<jsp:include page=”(要包含的文件路徑|<%=表達式%> }"flush=“true|false”/>
傳遞參數(被包含頁面爲動態頁面)
<jsp:include page=”(要包含的文件路徑| <%=表達式%>}“flush= “truelfalse”/>
<jsp:param name=“參數名稱” value= “參數內容”/>
</jsp:include>
可以向被包含頁面中傳遞多個參數
怎麼執行標籤
◆先執行內部標籤(把請求設置到request裏)
◆再執行外部標籤,找到被包含頁面,執行被包含頁面(從請求對應request取得參數執行,將結果包含到當前頁面中)
特點:
先執行後包含(被包含頁面爲動態頁面),當前頁面通過request內置對象可以向被包含頁面傳參
先包含不執行(被包含頁面爲靜態頁面),不能傳參,如有動態代碼,則直接發給瀏覽器
相同點:
都是將被包含頁面放到包含頁面中
不同點:
1.語法範疇:指令包含是屬於jsp範疇,而標籤包含屬於java範疇
2.語法寫法不同
指令包含是<%@ include file=“被包含的文件地址”%>,
標籤包含是<jsp:include page=”(要包含的文件路徑| <%=表達式%>}"flush= “truelfalse”/ >
3.指令包含不識別別包含類型,標籤包含識別被包含頁面類型
4.指令包含不能傳參,標籤包含中如果被包含頁面是動態頁面,包含頁面能傳參給被包含頁面,標籤包含如果被包含頁面爲靜態頁面就不能傳參。
5.指令包含特點:先包含後執行。指令包含特點:動態包含中如果被包含爲靜態頁面,肯定是先包含不執行。
6.指令包含的缺陷:被包含不能放h’t’m和body標籤,但是現在瀏覽器強大了可以放,被包含頁面和包含頁面變量同名就會衝突異常。
7.標籤包含的缺陷:被包含頁面也不能有h’t’m’l和body但是現在瀏覽器強大了可以放,被包含頁面最好不能是靜態頁面,否則如果被包含頁面像傳參就不行了。
總結: 儘量使被包含頁面爲動態頁面,這樣就能更好使用標籤包含。
**
Jsp標籤跳轉:
**
語法:<jsp:forward page=“要轉發的資源” />
屬於服務端跳轉,地址欄地址不變,客戶端不變。