天天看點

指令+标簽+Jsp标簽跳轉

**

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=“要轉發的資源” />

屬于服務端跳轉,位址欄位址不變,用戶端不變。