一、靜態(tài)包含
本文介紹JSP靜態(tài)包含語句,即使用JSP的include指令來完成的包含操作。
JSP中,有兩種包含其它文件的方式,一種是靜態(tài)包含,一種是動態(tài)包含。本文介紹其中的靜態(tài)包含。
所謂靜態(tài)包含,跟ASP中的包含是一樣的效果,即將所有包含的文件,先靜態(tài)的包含進來,組成一個大的JSP文件,然后再經過編譯器統(tǒng)一編譯,生成HTML代碼。
JSP靜態(tài)包含的語句為:
復制代碼 代碼如下:
%@ include file="file.jsp" %>
這里的file.jsp就是要包含的文件,這里可以使用目錄進行包含,可以是相對目錄,可以是絕對路徑。
JSP靜態(tài)包含時,需要注意編碼的問題。
在JSP文件中,我們必須指定頁面的contentType為GBK、GB2312、UTF-8等才能在文檔里面輸入中文。如下:
復制代碼 代碼如下:
%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK" %>
但這里務必注意,當這個文件被靜態(tài)包含時,它的編碼如果跟包含它的文件的編碼有一點點不一致,都會報錯。所以,如果要靜態(tài)包含,一定要把這兩個文件的編碼這一句(即contentType)確保完全一致。
二、動態(tài)包含
在ASP中沒有動態(tài)包含這一說法,所有的包含都是靜態(tài)包含。而JSP中,動態(tài)包含和靜態(tài)包含有很大的區(qū)別。
本文來說一說JSP中的動態(tài)包含。
JSP中的動態(tài)包含不同于靜態(tài)包含,它是在將各個JSP頁面分別編譯執(zhí)行后,將大家執(zhí)行的HTML結果,組合到一起向客戶端瀏覽器輸出的一種方式。
什么意思呢?
比如a.jsp,包含了b.jsp和c.jsp。a.jsp是無法共享b.jsp和c.jsp中設置的變量和函數(shù)的,也無法共享其邏輯結構。各自是分別編譯并執(zhí)行的。比如a執(zhí)行后輸出"a",b.jsp執(zhí)行后輸出"b",c.jsp執(zhí)行后輸出"c",那么最終將輸出"abc"。
JSP動態(tài)包含的語法:
JSP動態(tài)包含不是使用的一個指令,而是使用的一個標簽,如下:
復制代碼 代碼如下:
jsp:include page="file.jsp" />
或者:
復制代碼 代碼如下:
jsp:include page="file.jsp">
jsp:param name="p1" vlaue="v1" />
/jsp:include>
上面兩種語句并沒有本質的區(qū)別,只是前者是一個簡單的包含,而后者可以給被包含頁面?zhèn)鬟f參數(shù)而已。參數(shù)傳遞到被包含頁面時,可以使用request.getParameter("參數(shù)名")的方式來獲取。
大家知道在asp中,如果使用include包含語句,那么被包含的文件上是不能帶參數(shù)的。所以,在asp中的包含是跟jsp中的靜態(tài)包含一樣的。
您可能感興趣的文章:- JSP頁面的靜態(tài)包含和動態(tài)包含使用方法