3 回答

TA貢獻(xiàn)1845條經(jīng)驗(yàn) 獲得超8個(gè)贊
有以下主要區(qū)別和一些細(xì)微差別:
(一)指令include的寫法如下:
1 | <%@ include file="xxxxx" %> |
它就是一種簡(jiǎn)單的包含以實(shí)現(xiàn)代碼重用,JSP編譯時(shí)就會(huì)包含進(jìn)來,不會(huì)產(chǎn)生請(qǐng)求。
其他特點(diǎn):
1)其URL不支持帶參數(shù),比如<%@ include file="xxxxx?var=123" %>就是錯(cuò)誤的。
2)寫include指令的頁面和被包含的頁面中,代碼中不能有同名變量,否則會(huì)報(bào)錯(cuò)。
(二)JSP Include動(dòng)作寫法如下:
1 | <jsp:include page="XXXXX"/> |
只有在運(yùn)行時(shí)會(huì)產(chǎn)生請(qǐng)求,相當(dāng)于執(zhí)行了一段Java代碼產(chǎn)生了請(qǐng)求,所以會(huì)自動(dòng)檢查被包含內(nèi)容的變化,即時(shí)更新結(jié)果。
其他特點(diǎn):
1)URL支持帶參數(shù),語法如下:
1 2 3 | <jsp:include page="XXXXX"> <jsp:param name="PARAM_NAME" value="PARAM_VALUE"> </jsp:include> |
2)寫include動(dòng)作的頁面和被包含的頁面中,代碼中可以有同名變量,因?yàn)槎咧g是請(qǐng)求和被請(qǐng)求的關(guān)系,頁面代碼在請(qǐng)求之前已經(jīng)編譯好了。
如果以上差別不會(huì)產(chǎn)生影響,其實(shí)二者哪個(gè)都可以用的。

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊
include指令是指把其它頁面的JAVA代碼(源碼)加進(jìn)來,跟本頁面的代碼合并在一起,相當(dāng)于把源碼從那個(gè)頁面復(fù)制到本頁面中來,然后再編譯。所以變量可以共用。并用由于本頁面編譯時(shí)已經(jīng)包含了別的文件的源碼,所以以后其它頁面更改時(shí),本頁面并不理會(huì),因?yàn)橐呀?jīng)編譯過了。
<jsp:include>動(dòng)作是指兩個(gè)頁面的代碼運(yùn)行完以后,再把包含的那個(gè)頁面運(yùn)行后的HTML結(jié)果頁面加到本頁面運(yùn)行后的HTML結(jié)果頁面中來。所以變量不能共用。
添加回答
舉報(bào)