標籤庫Taglib
標籤被定義和分布在一個稱為標籤庫的結構中,一個標籤庫是由元資訊和類組成的集合:
1.標籤處理器:實現定製標籤功能的Java類。
2.標籤附加資訊(TEI):向JSP容器提供邊輯以確認標籤屬性和建立變數的類。
3.標籤庫描述器(TLD):描述單個標籤和整個標籤庫屬性的XML文檔。
標籤處理器和標籤附加資訊需要定位在JSP容器類載入器可以找到的地方。標籤庫描述器可在URL指定 的符意位置。JSP1.1規範要求JSP容器接受一個打包成因定結構的JAR檔案的標籤庫。TLD必須是/META- INF目錄中名為taglib.tld的檔案,JAR檔案則複製到/WEB-INF/lib目錄下。
一、標籤實現
1.開發步驟
a.定義標籤的名字、屬性、聲明的變數和標籤體的內容。
b.編寫標籤庫描述器TLD。
c.編寫標籤處理器。
d.在JSP頁面中使用標籤。
2.JSP頁面在JSP容器中的轉換步驟:
JSP頁面存在三種形式:jsp檔案、java檔案和class檔案。
a.指令元素、和向JSP容器提供轉換時資訊。
b.HTML行在_jspService()方法中依順序轉換到out.print()語名中。
c.指令碼元素的聲明被原封不動地複製到_jspService()方法外的源碼中。
d.指令碼元素的運算式在_jspService()方法中依順序轉換到out.print()語名中。
e.指令碼元素的Scriptlet被原封不動地複製到_jspService()方法中。
f.行為元素被轉換為執行其功能的運行時邏輯代碼。
g.定製標籤被擴充到調用其相應標籤處理器中方法的Java語句中。
3.標籤在JSP容器中的轉換步驟:
a.JSP容器使用taglib指令元素定位標籤庫描述器,將頁面中用到的定製標籤和TLD相匹配。
b.讀取標籤庫描述器的標籤列表和每一標籤相關的類名字。
c.在頁面中遇到一個標籤時,尋找與具有指定名字的標籤首碼相關的一個標籤庫。
d.容器使用在TLD中找到的標籤結構資訊產生一系列完成標籤功能的Java語句。