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