JSP中的include指令

3.4include指令

       一般的網頁格式如下:

1

不變

2首部信息(基本不變)

各個頻道的具體信息

(此處的信息是會被反覆改變的)

3尾部信息(基本不變)

       那麼如果要想實現以上的樣式的代碼,有兩種做法:

       · 每一個頁面都單獨編寫123號代碼,這樣一來代碼重複

       · 將這三部分代碼單獨做成文件,之後在一個整體頁面中包含進來

3.4.1<%@include file=""%>

       可以包含任何的文件,可以把任何文件的內容直接包含進來,文件包含的時候不需要後綴。所以此種包含屬於靜態包含,只關心文件本身的內容。

例如:現在隨便建立幾個後綴的文件:

1  inc.jsp

<h1>inc.jsp</h1>

2  inc.htm

<h1>inc.htm</h1>

3  inc.inc

<h1>inc.inc</h1>

       那麼之後直接使用包含語句將此三個頁面包含進來

IncludeDemo01.jsp

<%@include file="inc.htm"%>

<%@include file="inc.jsp"%>

<%@include file="inc.inc"%>

<h1>IncludeDemo01.jsp</h1>

3.4.2<jsp:include page=""/>

       動態包含,動態包含比靜態包含多增加了一個判斷功能,如果被包含的是動態頁面,則按動態的方式進行處理,如果包含的是靜態頁面,則與之前的<%@include%>的操作形式是一樣的。

IncludeDemo02.jsp

<jsp:include page="inc.htm"/>

<jsp:include page="inc.jsp"/>

<jsp:include page="inc.inc"/>

<h1>IncludeDemo02.jsp</h1>

       那麼,使用此種包含語句,可以向被包含的頁面之中傳遞參數,只要被包含的頁面是動態頁面,則就可以通過request.getParameter()直接接收此參數。

Incdemo.jsp

<%-- 這兩個參數都由包含頁傳遞過來 --%>

<h1><%=request.getParameter("ref1")%></h1>

<h1><%=request.getParameter("ref2")%></h1>

IncludeDemo03.jsp

<jsp:include page="Incdemo.jsp">

         <jsp:param name="ref1" value="Hello"/>

         <jsp:param name="ref2" value="World"/>

</jsp:include>

<h1>IncludeDemo02.jsp</h1>

3.4.3、兩種包含的區別

       兩種包含完成的功能都很相似,只是第二種包含中可以傳遞參數,第一種不能傳遞參數,除此之外兩種包含還有一個最大的差別:

       · <%@include%>:表示把所有的頁面的內容包含進來之後一起處理結果

       · <jsp:include/>:如果包含的是靜態頁面,則處理過程與之前一樣,如果是動態頁面,則多個頁面分別進行處理,之後再把結果包含進來。

1  驗證<%@include%>,靜態包含

IncludeDemo04.jsp

<%

         int i = 10 ;

%>

<h1>IncludeDemo04.jsp --> <%=i%></h1>

<%@include file="IncludeDemo05.jsp"%>

IncludeDemo05.jsp

<%

         int i = 100 ;

%>

<h1>IncludeDemo05.jsp --> <%=i%></h1>

2  驗證<jsp:include>,動態包含
IncludeDemo04.jsp

<jsp:include page="IncludeDemo05.jsp"/>

<%

         int i = 10 ;

%>

<h1>IncludeDemo04.jsp --> <%=i%></h1>

結論:

       兩種包含中使用<jsp:include>包含是最方便的,建議只使用此語法。

3.5forward指令

       forward指令的語法與<jsp:include>語法類似,只是完成的是無條件跳轉功能。

ForwardDemo01.jsp

<jsp:forward page="ForwardDemo02.jsp"/>

ForwardDemo02.jsp

<h1>Hello World!!!</h1>

       以上程序跳轉之後,地址欄並沒有任何的改變,但是顯示的內容改變了,所以稱此種跳轉爲服務器端跳轉指令。
       使用forward指令也可以像include指令那樣,直接向跳轉的頁面傳遞參數。參數同樣是通過<jsp:param>進行設置的,接收參數的時候同樣使用request.getParameter()接收。
ForwardDemo03.jsp

<%

         String str = "WORLD" ;

%>

<jsp:forward page="ForwardDemo04.jsp">

         <jsp:param name="ref1" value="HELLO"/>

         <jsp:param name="ref2" value="<%=str%>"/>

</jsp:forward>

ForwardDemo04.jsp

<h1><%=request.getParameter("ref1")%></h1>

<h1><%=request.getParameter("ref2")%></h1>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章