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