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.darkn