兩種方式的作用" type="hidden"/>

<%@ include file=""%>與 兩種方式的作用


一、前言

    身為一名coder有太多太多的知識點要去學,太多太多的東西要去記。往往一些小細節也就難免疏忽,但悲催的是多數困惱你的bug就是因為這些微不足道的知識點。我們又不是機器人,怎么可能什么都記得了呢。更多的是遇到問題->解決問題->成為經驗,這種提升模式。其實多去交流,多去分享,在你還未遇到問題之前就能預先知曉解決方法,或許提升的更快。

 

二、JSP中include的兩種方法

    1.include指令:

1
<% @include  file= "文件的絕對路徑或者相對路徑" %>

    file屬性是必填的(絕對或相對路徑),但它不支持任何的表達式,也不允許通過?掛參方式來傳遞參數。

    2.include動作:

1
2
3
<jsp:include page= "被包含文件的路徑"  flush= "true/false" >
     <jsp:param name= "參數名稱"  value= "參數值" />
</jsp:inclue>

    page屬性是必填的(絕對或相對路徑),但它及支持表達式也可傳遞參數。flush屬性為緩沖區滿時,清空緩沖區。

 

三、兩者的區別

    1.執行時間上的區別:

    <%@ include file=”relativeURI”%> 是在翻譯階段執行(將JSP頁面轉換成servlet的階段)。

    <jsp:include page=”relativeURI” flush=”true” /> 在請求處理階段執行。

    2.引入內容的方式區別:

    <%@ include file=”relativeURI”%>適用於引入靜態文本,也可以這么理解:它是純粹的把部分代碼寫到了另一頁面(或者說是共享),而那另一頁面中不能有相同的變量名,但可以借用主頁面的內容。

    <jsp:include page=”relativeURI” flush=”true” />引入執行頁面或servlet所生成的應答文本。

    如圖理解:

wKioL1PgzZqCJA4uAAG5e0XcQ7U927.jpg

wKiom1PgzIGD-HzdAAFcTheqPSE922.jpg


四、例子解釋

    在index.jsp頁面中引入test.jsp頁面

    wKiom1Pgzd_RDD6nAAMQ02rlMGU397.jpg

路徑中出現表達式,則頁面報500錯誤……所以我們要把<%=basePath%>去掉,替換成無包含表達式相對或絕對路徑地址。

wKiom1Pg0Vrwm98KAAHMw1CCrHo336.jpg

變量出現重名沖突,則頁面同樣報500錯誤……我們把那些變量都去掉就剩下<div>我是head</div>再測試,得到的結果是:

wKioL1Pg07LwWV9OAACe2aKhK0s267.jpg

這次沒報錯了,但是漢字出現亂碼了!所以test.jsp頁面中,<%@ page contentType="text/html;charset=UTF-8" language="java" %>這句我們還是要保留下來的。

 

    以上我只是簡單的講解了下<%@ include file="" %>的例子中一些常遇到的錯誤,因為我們平時也比較多用此指令。至於<jsp:include page="" />動作大家可以自己寫個例子試看看。

 

五、結語

    再小再簡單的問題都不能忽視,栽過跟頭的人都深有體會。堅持是一種精神,分享是一種快樂。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM