jsp頁面中包含文件(筆記第13章)


jsp:include  在主頁面北請求期間將其他頁面的輸出包含進來(動態包含)

include指令  不同與上一條,在主頁面轉化成servlet之前將jsp代碼插入進來(靜態包含)

jsp:plugin  適用於applet


最愚蠢的方式是在多個頁面有共享部分時使用複製張貼的方式,其次採用不同服務器提供的包含機制,最好使用上面3條可移植的方式。

在請求期間包含頁面jsp:include

 1、可以包含這些內容:HTML頁面的內容,純文本文檔內容,JSP頁面的輸出,servlet的輸出。==RequestDispatcher的include方法。

 2、語法:<jsp:include page="relative-path-to-resource" />這裏的路徑可以使用相對與主頁面的路徑(不加/),相對與應用的根目錄(加/),爲了防止客戶端的非法訪問,最                              好將被包含頁面放在WEB-INF目錄。   其中可加flush屬性,指定在將那個頁面包含進來之前是否應該清空主頁面的輸出流(默認false)。

 3、增加請求參數:被包含頁面可以的request對象和主頁面共享,不過可在主頁面中給北包含頁面單獨配置一些參數,語法如下:

                                        <jsp:include page="/framents/StandardHeading.jsp">

                                                  <jsp:param name="bgColor" value="Yellow" />

                                        </jsp:include>

                                      如果新增參數和客戶端提交參數重名,優先使用新增參數。

  

在頁面轉換期間包含文件  : include指令

                                                    兩個jsp頁面包含方式比較

  jsp:include動作 include指令
包含動作的發生時間 請求期間
頁面轉化期間
包含的內容 頁面的輸出 文件的實際內容
產生多少servlet 兩個(主頁面和北包含頁面都會有獨立的servlet) 一個(北包含文件首先被插入到主頁面中,然後,得到的頁面北轉換成servlet)
被包含頁面是否可設置主頁面的響應報頭 不可以 可以
被包含頁面是否可定義主頁面的字段或方法 不可以 可以
被包含頁面發生更改時是否需要更新主頁面 不需要 需要
等同的servlet代碼 RequestDispatcher的include方法 沒有

相關的規範只要求主頁面什麼時候發生了改變,並動態更新,所以include指令的方法需要手動touch(在linux系統上)主頁面或者在主頁面維護一個代表更新時間的註釋,顯式讓服務器更新,而jsp:include方法會自動檢測並更新jsp的編譯成的servlet。

 當然,includ指令,<% include file="……" %>XML兼容語句是:<jsp:directive.include file="……" />。

使用jsp:forward轉發請求效果和使用servlet的RequestDispatcher的forward方法一樣,不過這種邏輯處理一般建議放在servlet中。


                  

                  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章