JSP和ASP两种服务器端的编程方式中,JSP的功能要强大得多。不提别的,其中JSP的标签库就是选择JSP作为首选服务器端web应用开发工具的原因。 
  为什么?有两个方面:维护和开发的速度。在一个单一的服务器页面中,你可以混合使用各种不同的脚本方法和对象。就象“混凝土”一样,这种混合可令服务器端的脚本变得强大,并且让服务器端的编程者设计出非常灵活和动态的web页面。不过这种自由的混合也有其缺点,那就是维护起来非常麻烦,特别是当项目逐渐变大时。由于最终的产品是经由一个传统的web设计者来维护的,因此会带来问题。更糟糕的是,随着代码的复杂性增加,开发的速度就会变慢,不利于开发中等和大型的web应用,一旦开发完,站点还要找合格的编程者来维护这些颇为复杂的代码。  为此ASP可让我们使用COM对象,而JSP则提供J2EE来解决这些问题。这些方法的共通之处都是经由建立集中的可重用代码库。不过它们都更难,需要更多的时间去学习它。对于中等的项目来说,通常都较少使用这样的方法,但事实上,中等的web应用项目才是最多的。因此,许多项目都不得不使用一个不符合它们需要的开发和维护环境。  幸好,JSP提供了一个更好解决的办法。标签库提供了一个简单的方法来建立一个可重用的代码块。一旦标签库设计好,它就可以在许多项目中再次使用。更方便的是,与COM和J2EE不同,你无需学习任何其它的技巧就可以建立一个标签库!只要你懂得写JSP,你就可以建立一个标签库。标签库还可以改善web应用的维护。这个是得益于JSP页面自定义标签的简单XML接口。这样,web设计者甚至可以做到无需知道任何JSP的知识,就可以建立JSP的web应用。这个开放式的web开发对于团队运作是非常有效的。JSP编程者可以建立自定义的标签和后台的代码模块,而web设计者可以使用自定义的标签来建立web应用,并且将精力集中在web设计上。

解决方案 »

  1.   

    那么标签库究竟是什么?  JSP标签库(也称自定义库)可看成是一套产生基于XML脚本的方法,它经由JavaBeans来支持。在概念上说,标签库是非常简单和可以重用的代码构造。执行XML/XSL转换的标签范例和HTML页面
    <%@ taglib uri="http://www.jspinsider.com/jspkit/JAXP" prefix="JAXP"%>c:/xml/example.xml
    c:/xml/example.xsl
      在这个例子中,通过使用简单的标签来访问后台更为强大的代码,一个XML被装载,并且通过一个XSL文件来产生一个结果,并发送给客户端,全部通过使用一个简单的标签调用就做到了。  自定义标签为在JSP项目中创建易于重用的代码打开了一扇大门。你所需要的只是标签库和它的文档说明。
      

  2.   

    标签库的重要特性1.易于在多个项目安装  标签库可以很方便地在项目间转移。一旦标签库建立好,则只需要将所有的东西打包为一个JAR文件,你就可以在任何的JSP项目中重新使用。由于这个原因,标签库越来越通行。2.扩展JSP  标签库可以继承JSP规范各方面的特性(例如JSP1.2)。这样,你就可以无限制地扩展和增加JSP的功能,而无需要等待下一版本JSP的出现。例如,你对JSP的include调用不太满意。你可以建立自己的include标签,该标签执行的是你自己的规范。3.容易维护  标签库可令JSP的web应用非常易于维护,原因有:标签应用简单,也便于以后解释所有你的逻辑都放到集中的标签处理和JavaBeans中。这意味着你在升级代码时,无需要对每个使用该代码的页面进行修改,你只需要修改集中的代码文件便可
    。如果你需要加入新的功能,你也无需修改所有现有的页面,你可以在自己的标签中加入更多的属性,这些属性可加入新的处理,而其它旧的属性不变,这样所有旧的页面还可以正常工作 例如你有一个让所有文本变蓝的标签 My Text 后来在项目中你想选择蓝色的深浅(shade),这样你可以保留原有的标签,只要加入一个新的属性--shade。My Text所有旧的标签仍然可以产生蓝色的文本,不过现在你可以使用同样的标签产生不同深浅的蓝色文本。。标签有利于代码的重用。代码经过长时间的使用测试,它的bug就更少。这样,使用自定义标签的JSP页面将有着更少的bug,从而更容易维护。4.快速的开发时间  标签库提供一个简单的方式来重用代码。在服务器端的语言中,其中一个标准的重用代码方式是使用模板。相对于使用模板库,标签库是一个更好的解决办法。使用模板库,你必须为每个项目修改模板或者且建立严格的界面,而标签库则没有这些限制,并且拥有所有面向对象的好处,可以做到灵活和更有扩展性,而且,通过重用代码,你可以花费更少的时间来做开发,更多的时间可以用在设计你的web应用上。标签库的接口也很简单,非常容易做插入、使用和调试。
      

  3.   

    首先,谢谢 hf_rabbit(紫灵轩) 
      如果是这样子,为什么不使用javabeans,而要建立标签呢?
      beans也拥有标签的优势啊. hf_rabbit(紫灵轩) 可以再解释吗?
     大侠们,欢迎你们来参与!
      

  4.   

    如何在Jbuiler6下创建标签的描述文件tld??????????
      

  5.   

    标签的组件  虽然标签库非常易于使用,不过要建立一个内里的设计来支持标签库是颇复杂的,起码要比建立一个简单的JavaBean复杂。这个复杂是来自于标签库是由几部分构成的。不过,你只需要知道Java和JSP的知识就够了。一个简单的标签由下面的元素构成:1.JavaBeans:为了得到Java与生具来的面向对象的好处,可重用的代码应该放到一个独立的代码容器中。这些JavaBeans并不是标签库的一部分。不过它是你的代码库用来执行相关任务的基本代码块。2.标签处理:这是标签库的真正核心。一个标签处理器将引用它需要的任何资源(你的JavaBeans)和访问你的JSP页面的全部信息(pageContext对象)。JSP页面也会将所有已经被设置的标签属性和JSP页面上的标签体中的内容传送给标签处理器。在标签处理器处理完毕后,它将发回输出到你的JSP页面进行处理。3.标签库的描述(tld文件):这是一个简单的XML文件,它记录着标签处理器的属性、信息和位置。JSP容器通过这个文件来得知从哪里及如何调用一个标签库。4.网站的web.xml文件:这是你网站的初始化文件,在这个文件中,你定义了网站中用到的自定义标签,以及哪个tld文件用来描述每个自定义的标签。5.分发文件(一个WAR或者JAR文件):如果你想重用自定义标签的话,你需要一个方法来将它由一个项目转移到另一个项目中。将标签库打包为一个JAR文件是一个简单而且有效的方式。6.在你的JSP文件中作标签库声明:很简单,如果要用到该标签的话,只要在页面声明一下就可以,其后,你就可以在该JSP页面的任何地方使用它。  看来要做的工作很多,不过其实并不是很难。它的要点并不在于编码,而是在于如何将各部分正确地组织起来。不过,这样的分层是很重要的,它可令标签的使用灵活和更容易转移。更重要的是,这些层的存在可让处理建立标签的工程通过一个JSP IDE(JSP的集成开发环境)自动完成。期望将来的JSP IDE可自动完成创建一个自定义标签的大部分工作,这样你只需要写代码和标签处理就可以了。(注意:一个标签处理仅定义一个自定义标签;一个标签库是几个处理相同任务的标签处理器的集合)更新Web XML文件  现在可告诉JSP容器使用标签库。为此要修改web.xml文件,具体说来是要在其中加入一个taglib的项目来注册该标签库。最重要的是,要为tag分配一个URI。URI是一个唯一的引用,只应用在该网站的这个特别的标签上。使用全长的URL或者包名是一个好的习惯,它可以确保唯一性,因为该标签可以在不同的网站使用。这个例子是简化了。修改web.xml文件<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
    "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd"><WEB-APP><TAGLIB>
    <TAGLIB-URI>
    HTMLEncode
    </TAGLIB-URI>
    <TAGLIB-LOCATION>
    /WEB-INF/HTML_FormatTag.tld
    </TAGLIB-LOCATION>
    </TAGLIB></WEB-APP>结论  标签库是JSP最重要的特性之一,它还处在不断的发展中。它的确是一个新事物,因此还没有被广泛采用,不过自定义标签库已经剥去了它的神秘面纱,越来越多的开发者也开始关注和使用它了。在2001年末,可预料标签库将是许多JSP项目中的一个很常见的特性。  在这篇文章中只简要地讨论了标签库的好处。标签库实际上还有许多其它强大的功能。标签库将会令JSP的开发者进入一个新的领域。JSP的开发者将会感到十分的兴奋,因为他们得到了一个可将JSP转到各个应用并且建立任何类型web应用的工具。标签库将令JSP成为web领域其中一个最强大的编程环境。它的功能只受我们的想象和创造力限制。