JSP靜態(tài)導(dǎo)入(JSP指令標(biāo)記include)
JSP頁面第一次被請(qǐng)求時(shí),會(huì)被JSP引擎轉(zhuǎn)譯成Servlet的Java文件,然后再被編譯成字節(jié)碼文件執(zhí)行。JSP指令標(biāo)記為JSP頁面轉(zhuǎn)譯提供整個(gè)頁面的相關(guān)信息。
include指令用于在JSP頁面靜態(tài)插入一個(gè)文件,被插入的文件可以是JSP頁面、HTML頁面、文本文件或一段Java代碼。使用了include指令的JSP頁面在轉(zhuǎn)換成Java文件時(shí),將被插入的文件在當(dāng)前JSP頁面出來該指令的位置做整體的插入,合并成一個(gè)新的JSP頁面,然后JSP引擎再將這個(gè)新的JSP頁面轉(zhuǎn)譯成Java文件。因此,必須保證插入文件后形成的新的JSP頁面符合JSP語法和邏輯規(guī)則。include指令的使用格式為:
%@ include file="文件的URL" %>
插入文件可以使用絕對(duì)路徑和相對(duì)路徑,一般要使用相對(duì)路徑。相對(duì)路徑是相對(duì)于當(dāng)前頁面所在目錄的路徑,例如,當(dāng)前網(wǎng)頁所在目錄是Web服務(wù)根目錄,被插入的文件在根目錄下的text文件中,文件名為head.txt,相對(duì)路徑的使用格式如下:
%@ include file="text/head.txt" %>
當(dāng)被插入的文件被修改后,JSP引擎會(huì)重新將當(dāng)前的JSP頁面和修改后的被嵌入的文件合并成一個(gè)新的JSP頁面,然后轉(zhuǎn)譯、編譯成新的Java字節(jié)文件供客戶訪問。
使用include指令可以實(shí)現(xiàn)代碼的復(fù)用,提高代碼的使用效率。例如,頁面一般都需要一個(gè)標(biāo)題欄、導(dǎo)航欄、頁腳等,用戶可以將標(biāo)題欄等寫成單獨(dú)的文件,每個(gè)JSP頁面都可以在適當(dāng)?shù)奈恢糜胕nclude指令插入標(biāo)題欄、導(dǎo)航欄、頁腳等文件,這樣就極大地提高了代碼的復(fù)用和效率,使代碼更便于修改。
值得注意的是,被插入的文件是文本文件時(shí)需注意在文件的開始部分指明文件的相關(guān)信息,這樣方便JSP頁面和被嵌入的文件合并生成一個(gè)新的JSP頁面不至于出現(xiàn)亂碼等問題。例如(head.txt):
%@ page contentType="text/html;charset=GB2312"%>
h1> ..頭部信息../h1>
div> ... /div>
JSP動(dòng)態(tài)導(dǎo)入(jsp:include動(dòng)作標(biāo)記)
include動(dòng)作標(biāo)記用來在JSP頁面中動(dòng)態(tài)包含一個(gè)文件,如果被包含的頁面是JSP頁面,則先處理之后再將結(jié)果包含,而如果包含的是非*.jsp文件,則只是把文件內(nèi)容靜態(tài)包含進(jìn)來。包含頁面程序與被包含頁面程序是彼此獨(dú)立的,互補(bǔ)影響。jsp:include標(biāo)記的一般使用格式為:
jsp:include page="文件的URL" />
或
jsp:include page="文件的URL">
jsp:param 子標(biāo)記/>
/jsp:include>
JSP動(dòng)態(tài)導(dǎo)入與靜態(tài)導(dǎo)入的區(qū)別:
1、處理時(shí)間和方式不同:include指令標(biāo)記插入的文件在頁面轉(zhuǎn)譯時(shí)就合并到一起了,被包含文件與當(dāng)前頁面組合而成的新頁面必須符合JSP的語法和邏輯規(guī)則,由于是提前合并編譯,所以執(zhí)行速度快;而jsp:include動(dòng)作標(biāo)記是被包含文件語法和邏輯獨(dú)立于當(dāng)前頁面,單獨(dú)被JSP引擎編譯,當(dāng)前頁面執(zhí)行時(shí)再將被包含文件的運(yùn)行結(jié)果傳送給客戶端,由于是執(zhí)行頁面時(shí)處理包含文件,所以執(zhí)行速度慢,但可以利用param子標(biāo)記傳遞參數(shù),使用更靈活。
2、適用情況不同:靜態(tài)導(dǎo)入適合導(dǎo)入不會(huì)經(jīng)常變化的資源例如html文件,而動(dòng)態(tài)導(dǎo)入適合一個(gè)時(shí)常變化的資源例如JSP文件。
到此這篇關(guān)于JSP靜態(tài)導(dǎo)入與動(dòng)態(tài)導(dǎo)入使用詳解的文章就介紹到這了,更多相關(guān)JSP靜態(tài)導(dǎo)入與動(dòng)態(tài)導(dǎo)入內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- jsp中include指令靜態(tài)導(dǎo)入和動(dòng)態(tài)導(dǎo)入的區(qū)別詳解