我們都知道在jsp中include有兩種形式,分別是
< %@ include file=” ”%>
< jsp:include page=” ” flush=”true”/>
前者是指令元素、后者是行為元素。具體它們將在何處用?如何用及它們有什么區(qū)別?這應(yīng)該是很多人看到它都會(huì)想到的問(wèn)題。下面一起來(lái)看看吧。
通常當(dāng)應(yīng)用程序中所有的頁(yè)面的某些部分(例如標(biāo)題、頁(yè)腳和導(dǎo)航欄)都相同的時(shí)候,我們就可以考慮用include。具體在哪些時(shí)候用< %@ include file=” ”%>,哪些時(shí)候用< jsp:include page=” ” flush=”true”/>.這種形式。首先要明白的是它們之間的區(qū)別。只有了解了它們用法的不同才理解該在何時(shí)去用以及如何選擇。
< %@ include file=” ”%>,jsp的include指令元素讀入指定頁(yè)面的內(nèi)容。并把這些內(nèi)容和原來(lái)的頁(yè)面融合到一起。(這個(gè)過(guò)程是在翻譯階段:也就是jsp被轉(zhuǎn)化成servlet的階段進(jìn)行的。
這里對(duì)翻譯階段進(jìn)行一下說(shuō)明:我們知道,jsp頁(yè)面不能原封不動(dòng)地被傳送給瀏覽器,所有的jsp元素都必須首先由服務(wù)器進(jìn)行處理。這是通過(guò)將jsp頁(yè)面轉(zhuǎn)達(dá)化成servlet,然后執(zhí)行這個(gè)servlet來(lái)完成的。服務(wù)器需要一個(gè)jsp容器來(lái)處理jsp頁(yè)面。jsp容器通常以servlet的形式來(lái)實(shí)現(xiàn),這個(gè)servlet經(jīng)過(guò)配置,可以處理對(duì)jsp頁(yè)面的所有請(qǐng)求。
Jsp容器負(fù)責(zé)將jsp頁(yè)面轉(zhuǎn)化成servlet(稱(chēng)為jsp頁(yè)面實(shí)現(xiàn)類(lèi)?JSP Page implementation class),并編譯這個(gè)servlet。這兩步就構(gòu)成了翻譯階段.
由此我們就會(huì)知道:jsp頁(yè)面是把include指令元素所指定的頁(yè)面的實(shí)際內(nèi)容(也就是代碼段)加入到引入它的jsp頁(yè)面中,合成一個(gè)文件后被jsp容器將它轉(zhuǎn)化成servlet??梢钥吹竭@時(shí)會(huì)產(chǎn)生一個(gè)臨時(shí)class文件和一個(gè)java文件。
更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄