天天看點

JSP中include指令和include動作差別

首先

<%@ include file=” ”%>:為指令元素

<jsp:include page=” ” flush=”true”/>:為 動作元素

先說指令元素:

include指令元素讀入指定頁面的内容。并把這些内容和原來的頁面融合到一起。

然後經過兩個階段:

1.将jsp翻譯成 servlet 

2.servlet 翻譯成 .class檔案

這樣的話,在被引入檔案中請不要加入 contentype 的屬性 ,因為jsp頁面中不能指定多個contenttype

動作元素:

它并沒有把所要添加的jsp的代碼加入到被添加的jsp中

隻是在運作時引入了要添加的jsp頁面執行後所産生的應答,這意味着我們可以指定任何能夠産生應答的web資源,(例如一個servlet或一個jsp頁面),隻要這些資源所産生的類型和jsp頁面産生的編碼類型相同(如果編碼類型不同,則會出現亂碼).jsp容器将通過一個内部的函數調用來執行指定的資源,是以,這些被引入的資源可以幫 助處理原來的請求,是以這些資源可以通路請求作用域内的所有對象.以及所有原來的請求參數.

如果修改了要添加的jsp頁面,那麼可以立刻使用該頁面的最新版本,這是因為對待被引入的頁面的方式與對待由浏覽器直接調用的jsp頁面的方式完全相同。即容器檢測頁面的變化,并自動進入翻譯階段,以得到頁面的最新版本。

以下是對include 兩種用法的差別,主要有兩個方面的不同:

執行時間上:

<%@ include file=”   .jsp”%> 是在翻譯階段執行

<jsp:include page=”  .jsp” flush=”true” /> 在請求處理階段執行.

引入内容的不同:

<%@ include file=”  .jsp”%>引入靜态文本(html,jsp),在jsp頁面被轉化成servlet之前和它融和到一起.

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

繼續閱讀