JSP學(xué)習(xí)之四:JSP指令
CoffeeTree 2009-1-5
一、指令基礎(chǔ)
a) 指令的格式:<%@ 指令名 [….一個(gè)或多個(gè)屬性….] %>;
b) 指令的作用:告訴容器在解釋JSP時(shí)的一些約定;
c) 可用的JSP指令
i. page指令;
ii. taglib指令
iii. include指令
d) JSP指令的處理(注意各個(gè)動(dòng)作所發(fā)生的階段)
二、page指令
告訴容器翻譯階段如何處理JSP文件。
1. language屬性 :<%@ page language=”java” %> 此為默認(rèn);
2. extends屬性 :使用超類,基本不用;
3. import屬性 :<%@ page import=”java.util.*” %> ;
4. session屬性 :true | false ;
5. info屬性 :指定頁(yè)面信息,基本不用;
6. isELIgnored屬性 :true | false ;
7. isErrorPage屬性 :true | false ;
8. errorPage屬性 :<%@ page errorPage=”error.jsp” %> ;
9. contentType屬性 :text/html | text/xml ;
三、taglib指令
taglib指令的工作流程在《 JSP學(xué)習(xí)之三:EL & JSTL(二) 》中已經(jīng)描述;關(guān)鍵字:taglib映射,TLD ;
1. uri屬性
taglib指令告訴容器此JSP將使用與此uri相關(guān)聯(lián)的標(biāo)記庫(kù)。
2. tagdir屬性
指定標(biāo)記庫(kù)具體目錄。(必須為/WEB-INF/tags目錄或子目錄下)
3. prefix屬性
指定一個(gè)前綴。
隱式包含介紹:
如果你開(kāi)發(fā)了一個(gè)項(xiàng)目,每一個(gè)JSP都用到了10個(gè)不同的標(biāo)記庫(kù),在每個(gè)JSP前面都指定10個(gè)taglib指令會(huì)很麻煩,此時(shí)隱式包含可以方便的解決此問(wèn)題,其處理方法類似于C語(yǔ)言中引入一個(gè).h文件。
WEB.xml添加:
<jsp-config>
<jsp-property-group>
<uri-pattern> index.jsp</uri-pattern>
<include-preclude> /WEB-INF/jspf/pre.jspf</include-preclude>
</jsp-property-group>
</jsp-config>
/WEB-INF/jspf/pre.jspf:
<%@ taglib prefix=”c” uri=http://java.sun.com/jsp/jstl/core %>
<%@ taglib prefix=”fmt” uri=http://java.sun.com/jsp/jstl/format %>
四、include指令
include指令告訴容器,在翻譯階段把其他文件的內(nèi)容與當(dāng)前JSP合并。
1. 所包含的所有JSP代碼都不會(huì)被執(zhí)行,甚至不會(huì)被編譯。
2. 首先合并文件,然后合并后的整個(gè)輸出作為一個(gè)單元得到翻譯。
3. 如果所包含的文件有所改動(dòng),容器沒(méi)有一般的方法來(lái)知道這一點(diǎn),只能重新編譯整個(gè)翻譯單元。
<jsp : include >動(dòng)作在請(qǐng)求時(shí)發(fā)生,可以克服以上限制。

