1. 程式人生 > 程式設計 >JSP靜態匯入與動態匯入使用詳解

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靜態匯入與動態匯入內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!