JSP靜態(tài)導(dǎo)入與動(dòng)態(tài)導(dǎo)入使用詳解
JSP靜態(tài)導(dǎo)入(JSP指令標(biāo)記include)
JSP頁(yè)面第一次被請(qǐng)求時(shí),會(huì)被JSP引擎轉(zhuǎn)譯成Servlet的Java文件,然后再被編譯成字節(jié)碼文件執(zhí)行。JSP指令標(biāo)記為JSP頁(yè)面轉(zhuǎn)譯提供整個(gè)頁(yè)面的相關(guān)信息。
include指令用于在JSP頁(yè)面靜態(tài)插入一個(gè)文件,被插入的文件可以是JSP頁(yè)面、HTML頁(yè)面、文本文件或一段Java代碼。使用了include指令的JSP頁(yè)面在轉(zhuǎn)換成Java文件時(shí),將被插入的文件在當(dāng)前JSP頁(yè)面出來(lái)該指令的位置做整體的插入,合并成一個(gè)新的JSP頁(yè)面,然后JSP引擎再將這個(gè)新的JSP頁(yè)面轉(zhuǎn)譯成Java文件。因此,必須保證插入文件后形成的新的JSP頁(yè)面符合JSP語(yǔ)法和邏輯規(guī)則。include指令的使用格式為:
<%@ include file="文件的URL" %>
插入文件可以使用絕對(duì)路徑和相對(duì)路徑,一般要使用相對(duì)路徑。相對(duì)路徑是相對(duì)于當(dāng)前頁(yè)面所在目錄的路徑,例如,當(dāng)前網(wǎng)頁(yè)所在目錄是Web服務(wù)根目錄,被插入的文件在根目錄下的text文件中,文件名為head.txt,相對(duì)路徑的使用格式如下:
<%@ include file="text/head.txt" %>
當(dāng)被插入的文件被修改后,JSP引擎會(huì)重新將當(dāng)前的JSP頁(yè)面和修改后的被嵌入的文件合并成一個(gè)新的JSP頁(yè)面,然后轉(zhuǎn)譯、編譯成新的Java字節(jié)文件供客戶訪問(wèn)。
使用include指令可以實(shí)現(xiàn)代碼的復(fù)用,提高代碼的使用效率。例如,頁(yè)面一般都需要一個(gè)標(biāo)題欄、導(dǎo)航欄、頁(yè)腳等,用戶可以將標(biāo)題欄等寫成單獨(dú)的文件,每個(gè)JSP頁(yè)面都可以在適當(dāng)?shù)奈恢糜胕nclude指令插入標(biāo)題欄、導(dǎo)航欄、頁(yè)腳等文件,這樣就極大地提高了代碼的復(fù)用和效率,使代碼更便于修改。
值得注意的是,被插入的文件是文本文件時(shí)需注意在文件的開始部分指明文件的相關(guān)信息,這樣方便JSP頁(yè)面和被嵌入的文件合并生成一個(gè)新的JSP頁(yè)面不至于出現(xiàn)亂碼等問(wè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)記用來(lái)在JSP頁(yè)面中動(dòng)態(tài)包含一個(gè)文件,如果被包含的頁(yè)面是JSP頁(yè)面,則先處理之后再將結(jié)果包含,而如果包含的是非*.jsp文件,則只是把文件內(nèi)容靜態(tài)包含進(jìn)來(lái)。包含頁(yè)面程序與被包含頁(yè)面程序是彼此獨(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)記插入的文件在頁(yè)面轉(zhuǎn)譯時(shí)就合并到一起了,被包含文件與當(dāng)前頁(yè)面組合而成的新頁(yè)面必須符合JSP的語(yǔ)法和邏輯規(guī)則,由于是提前合并編譯,所以執(zhí)行速度快;而jsp:include動(dòng)作標(biāo)記是被包含文件語(yǔ)法和邏輯獨(dú)立于當(dāng)前頁(yè)面,單獨(dú)被JSP引擎編譯,當(dāng)前頁(yè)面執(zhí)行時(shí)再將被包含文件的運(yùn)行結(jié)果傳送給客戶端,由于是執(zhí)行頁(yè)面時(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)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JSP入門教程之客戶端驗(yàn)證、常用輸出方式及JSTL基本用法
這篇文章主要介紹了JSP入門教程之客戶端驗(yàn)證、常用輸出方式及JSTL基本用法,較為詳細(xì)的分析了JSP實(shí)現(xiàn)客戶端驗(yàn)證的方法、常用輸出方式及JSTL基本用法,并輔以實(shí)例說(shuō)明,需要的朋友可以參考下2015-09-09jsp response.sendRedirect()用法詳解
這篇文章主要介紹了jsp response.sendRedirect()用法詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08JSP 多條SQL語(yǔ)句同時(shí)執(zhí)行的方法
這是一段基本的SQL插入語(yǔ)句,分別將兩個(gè)值插入到兩個(gè)表中,上面的程序已經(jīng)能夠完成這一需求,但是實(shí)際操作中并不建議這樣寫2009-02-02ajax+json+Struts2實(shí)現(xiàn)list傳遞實(shí)例講解
應(yīng)付學(xué)習(xí)需要,需要通過(guò)ajax來(lái)獲取后臺(tái)的List集合里面的值,特做了一個(gè)實(shí)例并附上演示效果,希望本例對(duì)你有所幫助2013-04-04Apache+Servlet+Jsp環(huán)境設(shè)置(下)
Apache+Servlet+Jsp環(huán)境設(shè)置(下)...2006-10-10JSP 開發(fā)之hibernate配置二級(jí)緩存的方法
這篇文章主要介紹了JSP 開發(fā)之hibernate配置二級(jí)緩存的方法的相關(guān)資料,這里提供兩種配置二級(jí)緩存的方法,需要的朋友可以參考下2017-08-08web開發(fā)中添加數(shù)據(jù)源實(shí)現(xiàn)思路
這篇文章主要介紹了 web開發(fā)中添加數(shù)據(jù)源實(shí)現(xiàn)思路的相關(guān)資料,需要的朋友可以參考下2017-04-04struts2+jsp實(shí)現(xiàn)文件上傳的方法
這篇文章主要介紹了struts2+jsp實(shí)現(xiàn)文件上傳的方法,涉及JSP基于Struts架構(gòu)實(shí)現(xiàn)文件傳輸?shù)耐暾记?具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10