1.include指令
include可以在JSP頁面轉換成Servlet之前,將JSP代碼插入其中。它的主要優點是功能強大,所包含的代碼可以含有總體上影響主頁面的JSP構造,比如屬性、方法的定義和文檔類型的設定。
它的缺點是難於維護只要被包含的頁面發生更改,就得更改主頁面,這是因為主頁面不會自動地查看被包含的頁面是否發生更改。
語法:
1
<%@ include file="sample.jsp" %>
2.include動作
jsp:include動作是在主頁面被請求時,將次級頁面的輸出包含進來。盡管被包含的頁面的輸出中不能含有JSP,但這些頁面可以是其他資源所產生的 結果。服務器按照正常的方式對指向被包含資源的URL進行解釋,因而這個URL可以是Servlet或JSP頁面。
服務器以通常的方式運行被包含的頁面, 將產生的輸出放到主頁面中,這種方式與RequestDispatcher類的include方法壹致。它的優點是在被包含的頁面發生更改時,無須對主頁 面做出修改。它的缺點是所包含的是次級頁面的輸出,而非次級頁面的實際代碼,所以在被包含的頁面中不能使用任何有可能在整體上影響主頁面的JSP構造。
語法:
<jsp:include page="sample.jsp" flush="true">
<jsp:param name="name" value="value"/>
</jsp:include>
其中參數設置可以沒有,如果沒有參數設置,則必須采用<jsp:include page="sample.jsp" flush="true"/>形式
3. 使用include動作還是include指令?
使用include指令,如果被包含的文件發生改變,那麽,用到它的所有Jsp頁面都需要更新。
僅當include動作不能滿足要求時,我們才應該使用include指令。
有 些開發人員認為include指令生成的代碼執行起來比使用include動作的代碼更快。盡管原則上由可能的確如此,但性能上的差異很小,以致難以測 量,同時,include動作在維護上的優勢十分巨大,當兩種方法都可以使用時,include動作幾乎肯定是首選的方法。
對於文件包含,應該盡可能地使用include動作。僅在所包含的文件中定義了主頁面要用到的字段或方法,或所包含的文件設置了主頁面的響應報頭時,才應該使用include指令。
既然include指令產生難以維護的代碼,為什麽人們還要使用它呢?
因為include指令更為強大。include指令允許所包含的文件中含有影響主頁面的Jsp代碼,比如響應報頭的設置和字段、方法的定義。
例子://subpage.jsp
<%! int num=0; %>
//mainpage.jsp<html>
<body>
<%@ include file="subpage.jsp" %>
<%= num %>
</body><
/html>
當然使用include動作時這是不可能的,因為num變量未定義,主頁面不能成功的轉換成servlet。