1、前言html
身爲一名coder有太多太多的知識點要去學,太多太多的東西要去記。每每一些小細節也就不免疏忽,但悲催的是多數困惱你的bug就是由於這些微不足道的知識點。咱們又不是機器人,怎麼可能什麼都記得了呢。更多的是遇到問題->解決問題->成爲經驗,這種提高模式。其實多去交流,多去分享,在你還未遇到問題以前就能預先知曉解決方法,或許提高的更快。java
2、JSP中include的兩種方法jsp
1.include指令:測試
1
|
<%
@include
file=
"文件的絕對路徑或者相對路徑"
%>
|
file屬性是必填的(絕對或相對路徑),但它不支持任何的表達式,也不容許經過?掛參方式來傳遞參數。spa
2.include動做:翻譯
1
2
3
|
<jsp:include page=
"被包含文件的路徑"
flush=
"true/false"
>
<jsp:param name=
"參數名稱"
value=
"參數值"
/>
</jsp:inclue>
|
page屬性是必填的(絕對或相對路徑),但它及支持表達式也可傳遞參數。flush屬性爲緩衝區滿時,清空緩衝區。code
3、二者的區別htm
1.執行時間上的區別:blog
<%@ include file=」relativeURI」%> 是在翻譯階段執行(將JSP頁面轉換成servlet的階段)。圖片
<jsp:include page=」relativeURI」 flush=」true」 /> 在請求處理階段執行。
2.引入內容的方式區別:
<%@ include file=」relativeURI」%>適用於引入靜態文本,也能夠這麼理解:它是純粹的把部分代碼寫到了另外一頁面(或者說是共享),而那另外一頁面中不能有相同的變量名,但能夠借用主頁面的內容。
<jsp:include page=」relativeURI」 flush=」true」 />引入執行頁面或servlet所生成的應答文本。
如圖理解:
4、例子解釋
在index.jsp頁面中引入test.jsp頁面
路徑中出現表達式,則頁面報500錯誤……因此咱們要把<%=basePath%>去掉,替換成無包含表達式相對或絕對路徑地址。
變量出現重名衝突,則頁面一樣報500錯誤……咱們把那些變量都去掉就剩下<div>我是head</div>再測試,獲得的結果是:
此次沒報錯了,可是漢字出現亂碼了!因此test.jsp頁面中,<%@ page contentType="text/html;charset=UTF-8" language="java" %>這句咱們仍是要保留下來的。
以上我只是簡單的講解了下<%@ include file="" %>的例子中一些常遇到的錯誤,由於咱們平時也比較多用此指令。至於<jsp:include page="" />動做你們能夠本身寫個例子試看看。
5、結語
再小再簡單的問題都不能忽視,栽過跟頭的人都深有體會。堅持是一種精神,分享是一種快樂。