天天看点

J2EE Architecture(11)

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(),以达到迭代的目的。