JAVA SCWCD认证:ClassicTag详解与生命周期

需积分: 0 0 下载量 50 浏览量 更新于2024-09-11 收藏 82KB DOC 举报
"JAVA_scwcd_認證部份筆記主要涵盖了Java Servlet和JSP Custom Tags的相关知识,包括Classic Tag的实现步骤、TLD(Tag Library Descriptor)的编写以及Custom Tag生命周期的基本流程。" 在Java Web开发中,SCWCD(Servlet and JSP Certified Web Component Developer)认证是针对Servlet和JSP技术的专业资格考试。这部分笔记主要讨论了Custom Tag的实现,这是一种自定义JSP标签的方法,用于扩展JSP语言的功能。 Classic Tag是Custom Tag的一种传统实现方式,它需要开发者完成一系列步骤来创建和使用。首先,你需要编写Tag Handler,这通常意味着实现`Tag`、`IterationTag`或`BodyTag`接口,并可能继承`TagSupport`或`BodyTagSupport`类。接着,创建TLD文件,这是一个XML文档,用来描述你的自定义标签及其属性。TLD文件中包含了标签的名称、类路径、属性定义等信息。例如: ```xml <taglib> <short-name>ex</short-name> <uri>http://www.manning.com/scwcd/example</uri> <tag> <name>example</name> <tag-class>com.example.web.EJBHandler</tag-class> <body-content></body-content> <attribute> <name>attribute1</name> <required>true/false/yes/no</required> <rtexprvalue>true/false</rtexprvalue> </attribute> </tag> </taglib> ``` 创建完TLD后,有两种方式让JSP容器识别这个标签库:隐式(将TLD放入WEB-INF/lib目录下的jar文件的META-INF,或者直接放在WEB-INF目录下)或显式(通过web.xml配置文件进行映射)。最后,在JSP页面中使用`<%@taglib prefix="myTag" uri="..."%>`引入标签库。 Custom Tag的生命周期包含以下步骤: 1. `setPageContext()`: 设置与当前请求关联的PageContext对象,提供对JSP上下文的访问。 2. `setParent()`: 如果需要,设置父标签(如在嵌套标签中)。 3. `setAllAttributes()`: 如果需要,设置标签属性值。 4. `doStartTag()`: 开始处理标签,返回EVAL_BODY_INCLUDE表示继续处理JSP体,SKIP_BODY表示跳过JSP体,EVAL_BODY_BUFFERED表示缓存JSP体以备后用。 5. `setBodyContent(BodyContent bodyContent)`(仅在BodyTag时使用): 设置用于存储JSP体内容的对象。 6. `doInitBody()`(仅在BodyTag时使用): 初始化处理JSP体的准备。 7. `doAfterBody()`(仅在IterationTag时使用): 在每次遍历JSP体后调用,决定是否继续遍历。 8. `doEndTag()`: 标签结束时调用,返回EVAL_PAGE表示继续处理JSP页,SKIP_BODY表示跳过剩余的JSP体。 这些步骤详细描述了Custom Tag如何在JSP页面中执行和交互,对于理解自定义标签的工作原理和开发自定义标签库至关重要。对于准备SCWCD认证的开发者来说,熟悉这些概念和技术是非常重要的。