Jsp/Servlet复习笔记-----第9章 自定义标签和JSP标准标签库

标签库:
原因:在JSP的开发中,在标准的MVC设计模式里,希望尽可能的不要出现Scriplet(<
%....%>),在JSP中提供了一种叫做标签库的程序代码,此代码可以解决JSP中出现Scriplet代码的情况,但是此种开发比较困难,而且标签库的功能类似于JavaBean。
标签库程序应该有以下几部分组成:
 标签的具体实现文件(*.java):javax.servlet.jsp.tagext.TagSupport
 标签的表述文件(*.tld)
 如果需要可以在web.xml中进行配置
 在JSP中通过标签进行自定义标签的调用

9.1 自定义标签
9.1.1自定义标签简介
9.1.2 标签库描述符
9.1.3 标签开发实例
开发一个简单的能够打印一个”Welcome to www.darkness.org”的程序
Java代码
1.<%@ page pageEncoding="gb2312"%>
2.<%@ taglib uri="WEB-INF/darkness.tld" prefix="sky"%>
3.<html>
4.<head>
5.<title>Dark_Sky</title>
6.</head>
7.<body>
8.<sky:darkness/>
9.</body>
10.</html>
11.</body>
12.</html>
13.<?xml version="1.0" encoding="ISO-8859-1"?>
14.<!DOCTYPE taglib PUBLIC "-//Sun Microsystems,Inc.//DTD JSP Tag Library 1.2//EN"
15. "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
16.<!--a tag library descriptor-->
17.<taglib>
18. <tlib-version>1.0</tlib-version>
19. <jsp-version>1.2</jsp-version>
20. <short-name>first</short-name>
21. <uri></uri>
22. <info>A simple tab library for the examples</info>
23. <tag>
24. <name>darkness</name>
25. <tag-class>darksky.Welcome</tag-class>
26. <body-content>JSP</body-content>
27. </tag>
28.</taglib>
<%@ page pageEncoding="gb2312"%>
<%@ taglib uri="WEB-INF/darkness.tld" prefix="sky"%>
<html>
<head>
<title>Dark_Sky</title>
</head>
<body>
<sky:darkness/>
</body>
</html>
</body>
</html>
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems,Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<!--a tag library descriptor-->
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>first</short-name>
<uri></uri>
<info>A simple tab library for the examples</info>
<tag>
<name>darkness</name>
<tag-class>darksky.Welcome</tag-class>
<body-content>JSP</body-content>
</tag>
</taglib>Java代码
1.package darksky;
2.
3.import java.io.*;
4.import javax.servlet.jsp.*;
5.import javax.servlet.jsp.tagext.*;
6.
7.public class Welcome extends TagSupport {
8. public int doStartTag() {
9. try {
10. JspWrite out = pageContext.getOut();
11. out.println("Welcome to www.darkness.org");
12. } catch (Exception ex) {
13. //ex.printStrackTrace();
14. }
15. // 只要打印完了字符传,则后面的代码就不需要执行了
16. return TagSupport.SKIP_BODY;
17. }
18.}
package darksky;

import java.io.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;

public class Welcome extends TagSupport {
public int doStartTag() {
try {
JspWrite out = pageContext.getOut();
out.println("Welcome to www.darkness.org");
} catch (Exception ex) {
//ex.printStrackTrace();
}
// 只要打印完了字符传,则后面的代码就不需要执行了
return TagSupport.SKIP_BODY;
}
}

9.2 JSP标准标签库(JSTL)
9.2.1 JSTL 简介
9.2.2 配置JSTL
9.2.3核心标签库
9.2.4国际化与格式化标签库
9.2.5 SQL 标签库
9.2.6 标签库应用实例
9.3 本章小结
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值