J2EE Architecture(11)
1、JSP文檔(JSP Document)
根據XML文法調整格式的JSP頁稱為JSP文檔。它是識别“命名空間”的文檔,不是普通的JSP頁。
JSP文檔在文法中将jsp:root用作特殊元素,并作為JSP文檔的根元素。
JSP文檔包含JSP指令元素、JSP腳本元素、JSP标準動作、JSP定制操作、jsp:text元素和其它XML部分。
JSP文檔内部使用的其它元素如下:
jsp.directive.page
jsp.directive.include
jsp.declaration
jsp.scriptlet
jsp.expression
2、标記擴充
标記擴充是JSP技術的進階概念。
标記擴充提供“标記庫”工具,該庫包括可移植運作時支援,以及驗證機制和編寫工具支援。
使用“定制标記”,不必做太多工作,就能在JSP頁引入特殊操作。
“定制标記”和“标記庫”有助于取消标準JSP頁的大多數腳本元素。定制标記庫時“定制标記處理器”和“标記庫描述符”檔案的集合。
定制标記頁使用XML文法。這些标記遵循4個基本原理:
1)标準标記結構
tagBody
2)空标記結構
3)區分大小寫
所有的标記名、屬性和标記字首都區分大小寫。
4)嵌套規則
應嚴格采用階層化嵌套方式。定制庫标記包含兩個部分。
jar檔案包含“标記處理器”類檔案和“标記庫描述符(TLD)”檔案。
TLD是一個XML文檔,用于命名和聲明定制标記庫各個标記的結構。
為了有效地使用這些标記庫,要做到以下兩點:
(1)在Web應用程式部署描述符中聲明TLD的位置;
(2)在相應JSP頁使用taglib指令,易訓示URI以及字首屬性
3、标記處理器
“标記處理器”是一個Java類檔案,用于實作如下接口:Tag、IterationTag或BodyTag。
接口的實作可在JSP頁中提供定制的動作。
1)Tag接口
此接口有助于定義所有标記處理器需要的基本方法。
該接口提供了4個常量:SKIP_PAGE、EVAL_PAGE、SKIP_BODY和EVAL_BODY_INCLUDE,以及2個重要方法:doStartTag()和doEndTag()。
2)IterationTag接口
它是基本Tag接口的擴充,提供一個EVAL_BODY_AGAIN變量以及一個附加的方法doAfterBody(),以達到疊代的目的。