JSP 自定义标签之一 简单实例_JSP编程

在JSP中使用自定义标签可以达到这样的目的,事实上,我们所熟知的各类框架基本上都是通过自定义标签的形式来实现的。
通过使用自定义标签,我们可以将实现复杂的逻辑在页面用简单的标签来加以展示。下面我们来实现一个非常简单的自定义标签,期望通过这个简单的实例引领各位进入自定义标签的领域。我们准备定义的这个自定义标签所实现的功能是在JSP页面中显示出版权信息,并且在以后的博文中,我们还会对它进行升级改造。
首先,打开编辑器,创建以下Java代码:

复制代码 代码如下:

package com.yanzhijun;
import java.io.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
public class CopyRightTag extends TagSupport
{
public int doEndTag()
{
try
{
String copyPre = "颜志军版权所有 &copy2008";
String info = new String(copyPre.getBytes(), "ISO8859_1");
pageContext.getOut().println(info);
}
catch(IOException e){}
return EVAL_PAGE;
}
}

上述代码编辑完成后,编译并生成class文件。并将编译之后的字节码文件连同包名一同放入准备使用当前标签的WEB应用的WEB-INF\classes目录之下。例如WEB应用在名为test的目录之下,则将上述代码编译时生成的com目录全部拷贝至test\WEB-INF\classes之下即可。
注意:在编译上述代码时,如果不是在集成的环境中进行,例如直接在命令行通过执行javac命令进行编译工作,那么需要手工在环境变量CLASSPATH中添加包javax.servlet.jsp所在的位置,对于Tomcat而言,这个包的位置是Tomcat安装目录下lib目录中的jsp-api.jar。
随后将以下XML格式的文件存入到名为testlib.tld的文件中,文件testlib.tld要存储于目录WEB-INF\tlds之下。

复制代码 代码如下:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>yzj</shortname>
<tag>
<name>copyright</name>
<tagclass>com.yanzhijun.CopyRightTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute/>
</tag>
</taglib>

至此,我们已经完成了一个自定义标签,随后我们就可以在JSP文件中对其进行使用了。例如有如下JSP文件:

复制代码 代码如下:

<%@ taglib uri="WEB-INF/tlds/testlib.tld" prefix="yzj" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>自定义标签简单示例</title>
</head>
<body>
<p>这里是正文内容</p>
<yzj:copyright/>
</body>
</html>

在浏览器中访问该JSP文件,可以看到,在页面底部,显示了“颜志军版权所有 2008”的信息,这正是我们定义的这个自己定义标签的作用。
通过上面的过程,已经实现了自定义标签,并对其进行使用测试。关于其原理、机制、要注意的细节等问题,在请等待随后的博文。

时间: 2024-09-30 03:55:36

JSP 自定义标签之一 简单实例_JSP编程的相关文章

jsp输出金字塔的简单实例_JSP编程

jsp输出金字塔的简单实例 <% String str = ""; for(int i = 1; i <= 5; i++){ for(int j = 1; j <= 5-i; j++){ str +="    "; } for(int k = 1; k <= 2*i-1; k++){ str +="☆"; } str +="<br>"; } %> <%= str %> 以上

JSP自定义标签基础知识学习_JSP编程

在实际的开发中,如为了简化JSP中出现大量的JSP脚本,那么我们需要使用标准标签库和EL表达式,但是和新标签库中提供的标签是有限的,不可能完全满足开发的需要.如:分页.因此需要学习如何自定义自己的标签库. 如果要实现自定义标签,那么需要如下几步: 编写标签处理类 需要继承或者实现相关的类或者接口 编写标签描述文件 该文件是一个XML文件,而且必须放在网站的WEB-INF目录中 在JSP中引入标签且使用 使用taglib指令引入标签库,随后使用. 自定标签的类体系 详细了解下一下几个类和接口: -

jsp页面中两种方法显示当前时间的简单实例_JSP编程

在jsp页面实现显示当前的日期时间,我们可以用一下两种方式实现: 1. 通过在jsp页面添加Java代码实现,主要代码如下所示 java.text.SimpleDateFormat simpleDateFormat = new java.text.SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); java.util.Date currentTime = new java.util.Date(); String time = simpleDateForm

jsp输出九九乘法表的简单实例_JSP编程

<% String st = ""; for(int i = 1; i <= 9; i++){ for(int j = 1; j <= i; j++){ st += j+"x"+i+"="+i*j; st += "  "; } st += "<br>"; } %> <table width="400" height="200"

jsp 标准标签库简析_JSP编程

一.JSTL简介 引入:在JSP以及javaBean中 ,当我们在网页中使用循环,或者使用对象方法连接数据库时,我们都不可避免的需要使用到jsp的脚本编制元素,其中嵌有大量的java代码,现在开发者想尽可能的避免使用jsp脚本编制元素,进一步将应用程序的显示层和业务层完全分离,更加有利于应用程序的分工协作,jsp开发者指定了 JSTL ,提供了一组统一的通用的自定义标签文件,并将这些文件组合在一起,形成了jsp标准标签库,即JSTL. 1) 定义:包含编写和开发JSP页面的一组标准标签 a) 特

JSP+XML构架网站的实例_JSP编程

XML(可扩展标记语言)看起来可能像某种W3C标准--现在没有什么实际影响,即使以后能派上用场,也是很久以后的事.但实际上,它现在已经得到了应用.所以,不要等到XML已被加进了你最喜爱的HTML编辑器中才开始使用它.它现在就可以解决各种内部问题和B2B系统问题. 在Sparks.com,我们使用XML来标准化从Java对象到HTML数据显示等不同系统之间的数据表示. 特别需要指出的是,我们发现,只要以非常基本的XML结构来实现标准化,就可以更容易地共享和操作数据.在这一过程中,我们发现了使用XM

用fileupload组件实现的大文件上传简单实例_JSP编程

1.FileUploadServlet.java文件,实现上传处理 import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.text.DecimalFormat; import java.util.Iterator; import java.util.List; import javax.servlet.ServletException; import javax.servl

JSP自定义标签之简单标签入门

在sun官方文档上有下面这样一段话. 官方文档声明 public interface SimpleTag extends JspTag Interface for defining Simple Tag Handlers. Simple Tag Handlers differ from Classic Tag Handlers in that instead of supporting doStartTag() and doEndTag(), the SimpleTag interface pr

jsp登录会话的简单实现_JSP编程

jsp登录会话的简单实现 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd&