【JAVA_scwcd_認證部份筆記】主要聚焦在JavaServer Pages (JSP)的自定义标签(Custom Tags)技术上,分为两种类型:Classic Tag和Simple Tag。这两种标签都是为了增强JSP页面的功能和可重用性,但它们在实现方式和生命周期上有显著的不同。 **Classic Tag** Classic Tag是最传统的自定义标签形式,它要求开发者完成更多的步骤来实现。首先,你需要编写Tag Handler,这个类需要实现Tag、IterationTag或BodyTag接口,通常会继承TagSupport或BodyTagSupport。然后,创建一个Tag Library Descriptor (TLD)文件,用于描述标签的行为、名称、类路径以及属性信息。TLD文件会被放置在特定位置,如WEB-INF/lib下的jar文件的Meta-INF目录,或者直接放在WEB-INF目录下。最后,在JSP页面中通过`<%@ taglib>`指令引入自定义标签库。 Classic Tag的基本生命周期包括: 1. `setPageContext()`:设置页面上下文。 2. `setParent()`(如果需要):设置父标签。 3. 设置所有属性(如果需要)。 4. `doStartTag()`:开始标签处理,返回值决定是否继续处理体内容。 5. 如果返回EVAL_BODY_INCLUDE,执行4.1;如果返回SKIP_BODY,执行6。 4.1. `setBodyContent()`:设置体内容。 4.2. `doInitBody()`:初始化体内容。 6. `doAfterBody()`(如果扩展了IterationTag):处理体内容后的操作,返回值决定是否继续循环。 7. `doEndTag()`:结束标签处理,返回值决定是否继续处理页面。 8. `release()`:释放资源。 Classic Tag的优点: 1. 它能处理所有情况,包括迭代和有体内容的标签。 2. 可以利用PageContext访问所有的隐式变量。 **Simple Tag** Simple Tag是简化版的标签处理类,它的开发过程更简洁,但限制了体内容不能包含script元素。实现步骤与Classic Tag类似,只是Tag Handler需要实现SimpleTag接口,通常会扩展SimpleTagSupport,并且TLD中的<body-content>不能设为JSP。 Simple Tag的基本生命周期包括: 1. `setJspContext(JspContext jspContext)`:设置JSP上下文。 2. `setParent(JspTag jspTag)`(如果需要):设置父标签。 3. 设置所有属性(如果需要)。 4. `setJspBody(JspFragment jspFragment)`(如果需要):设置体内容。 5. `doTag()`:执行标签逻辑。 Simple Tag的优点: 1. 实现简单,只需要关注`doTag()`方法,没有返回值处理。 Simple Tag的缺点: 1. JspContext只能访问page、request、session和application四个范围内的属性,无法访问任何隐式变量。 2. JspFragment不能处理script元素,只能简单地将结果输出到writer。 总的来说,Classic Tag提供了更大的灵活性,但实现起来更为复杂,而Simple Tag则提供了一种更简洁、易于维护的解决方案,但牺牲了一些功能。选择哪种方式取决于具体的需求和项目规模。在SCWCD(Sun Certified Web Component Developer)认证中,理解和掌握这两种自定义标签的使用是至关重要的,因为它们是构建高效、可维护的JSP应用的关键组成部分。
![](https://csdnimg.cn/release/download_crawler_static/6485403/bg1.jpg)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 0
- 资源: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)
评论0