答:動態INCLUDE用jsp:include動作實現
<jsp:include page="included.jsp" flush="true" />它總是會檢查所含檔案中的變化,適合用於包含動態網頁面,並且可以帶參數
<%@ include file="included.htm" %> 靜態INCLUDE用include偽碼實現,定不會檢查所含檔案的變化,適用於包含靜態頁面
1. 靜態include的結果是把其他jsp引入當前jsp,兩者合為一體
動態include的結構是兩者獨立,直到輸出時才合并( 看看jsp產生的java檔案就可以知道了)
2.正是因為這樣,動態include的jsp檔案獨立性很強,是一個單獨的jsp檔案,需要使用的對象,版面設定,都必須有自己建立,當然,還好它和include它的頁面的request範圍是一致的.
最後看老q外寫的
When you use <jsp:include>, it executed the target in a separate request, and then includes the output in the including JSP. It doesn’t include the source of the included target, it includes the output. The means by which that target output is generated is lost.
To do what you’re trying to do, you need to use <% include %> directives:
<%@ include file="/WEB-INF/jsp/include/header.jsp" %>This will incline the literal text of header.jsp into your page. Of course, by doing that, you can no longer pass parameters to it, so you’d need to set that as a page context attribute (e.g. using <c:set>… but of course you can’t use <c:set> until you’ve done your include…).
Essentially, it’s not really worth the hassle. Taglib declarations are annoying boilerplate, but hard to get rid of.