JSP標(biāo)簽庫介紹
我使用JSP和ASP編程已經(jīng)有一段頗長的時(shí)間了,在兩種服務(wù)器端的編程方式中,我越來越覺得JSP的功能要強(qiáng)大得多。不提別的,其中JSP標(biāo)簽庫就是我選擇JSP作為***服務(wù)器端web應(yīng)用開發(fā)工具的原因。
為什么?有兩個(gè)方面:維護(hù)和開發(fā)的速度。在一個(gè)單一的服務(wù)器頁面中,你可以混合使用各種不同的腳本方法和對象。就象“混凝土”一樣,這種混合可令服務(wù)器端的腳本變得強(qiáng)大,并且讓服務(wù)器端的編程者設(shè)計(jì)出非常靈活和動(dòng)態(tài)的web頁面。不過這種自由的混合也有其缺點(diǎn),那就是維護(hù)起來非常麻煩,特別是當(dāng)項(xiàng)目逐漸變大時(shí)。由于最終的產(chǎn)品是經(jīng)由一個(gè)傳統(tǒng)的web設(shè)計(jì)者來維護(hù)的,因此會帶來問題。更糟糕的是,隨著代碼的復(fù)雜性增加,開發(fā)的速度就會變慢,不利于開發(fā)中等和大型的web應(yīng)用,一旦開發(fā)完,站點(diǎn)還要找合格的編程者來維護(hù)這些頗為復(fù)雜的代碼。
為此ASP可讓我們使用COM對象,而JSP則提供J2EE來解決這些問題。這些方法的共通之處都是經(jīng)由建立集中的可重用代碼庫。不過它們都更難,需要更多的時(shí)間去學(xué)習(xí)它。對于中等的項(xiàng)目來說,通常都較少使用這樣的方法,但事實(shí)上,中等的web應(yīng)用項(xiàng)目才是最多的。因此,許多項(xiàng)目都不得不使用一個(gè)不符合它們需要的開發(fā)和維護(hù)環(huán)境。
幸好,JSP提供了一個(gè)更好解決的辦法。標(biāo)簽庫提供了一個(gè)簡單的方法來建立一個(gè)可重用的代碼塊。一旦標(biāo)簽庫設(shè)計(jì)好,它就可以在許多項(xiàng)目中再次使用。更方便的是,與COM和J2EE不同,你無需學(xué)習(xí)任何其它的技巧就可以建立一個(gè)標(biāo)簽庫!只要你懂得寫JSP,你就可以建立一個(gè)標(biāo)簽庫。標(biāo)簽庫還可以改善web應(yīng)用的維護(hù)。這個(gè)是得益于JSP頁面自定義標(biāo)簽的簡單XML接口。這樣,web設(shè)計(jì)者甚至可以做到無需知道任何JSP的知識,就可以建立JSP的web應(yīng)用。這個(gè)開放式的web開發(fā)對于團(tuán)隊(duì)運(yùn)作是非常有效的。JSP編程者可以建立自定義的標(biāo)簽和后臺的代碼模塊,而web設(shè)計(jì)者可以使用自定義的標(biāo)簽來建立web應(yīng)用,并且將精力集中在web設(shè)計(jì)上。
那么標(biāo)簽庫究竟是什么?
JSP標(biāo)簽庫(也稱自定義庫)可看成是一套產(chǎn)生基于XML腳本的方法,它經(jīng)由JavaBeans來支持。在概念上說,標(biāo)簽庫是非常簡單和可以重用的代碼構(gòu)造。
執(zhí)行XML/XSL轉(zhuǎn)換的標(biāo)簽范例和HTML頁面
<%@ taglib uri="http://www.jspinsider.com/jspkit/JAXP" prefix="JAXP"%>
◆c:/xml/example.xml
◆c:/xml/example.xsl
在這個(gè)例子中,通過使用簡單的標(biāo)簽來訪問后臺更為強(qiáng)大的代碼,一個(gè)XML被裝載,并且通過一個(gè)XSL文件來產(chǎn)生一個(gè)結(jié)果,并發(fā)送給客戶端,全部通過使用一個(gè)簡單的標(biāo)簽調(diào)用就做到了。
自定義標(biāo)簽為在JSP項(xiàng)目中創(chuàng)建易于重用的代碼打開了一扇大門。你所需要的只是標(biāo)簽庫和它的文檔說明。
標(biāo)簽庫的重要特性
1.易于在多個(gè)項(xiàng)目安裝
標(biāo)簽庫可以很方便地在項(xiàng)目間轉(zhuǎn)移。一旦標(biāo)簽庫建立好,則只需要將所有的東西打包為一個(gè)JAR文件,你就可以在任何的JSP項(xiàng)目中重新使用。由于這個(gè)原因,標(biāo)簽庫越來越通行,在網(wǎng)上,你要找標(biāo)簽的***地點(diǎn)是JSPTags.com(http://jsptags.com/tags/)。
2.擴(kuò)展JSP
標(biāo)簽庫可以繼承JSP規(guī)范各方面的特性(例如JSP1.2)。這樣,你就可以無限制地?cái)U(kuò)展和增加JSP的功能,而無需要等待下一版本JSP的出現(xiàn)。例如,你對JSP的include調(diào)用不太滿意。你可以建立自己的include標(biāo)簽,該標(biāo)簽執(zhí)行的是你自己的規(guī)范。
3.容易維護(hù)
JSP標(biāo)簽庫可令web應(yīng)用非常易于維護(hù),原因有:標(biāo)簽應(yīng)用簡單,也便于以后解釋所有你的邏輯都放到集中的標(biāo)簽處理和JavaBeans中。這意味著你在升級代碼時(shí),無需要對每個(gè)使用該代碼的頁面進(jìn)行修改,你只需要修改集中的代碼文件便可
。如果你需要加入新的功能,你也無需修改所有現(xiàn)有的頁面,你可以在自己的標(biāo)簽中加入更多的屬性,這些屬性可加入新的處理,而其它舊的屬性不變,這樣所有舊的頁面還可以正常工作 例如你有一個(gè)讓所有文本變藍(lán)的標(biāo)簽
后來在項(xiàng)目中你想選擇藍(lán)色的深淺(shade),這樣你可以保留原有的標(biāo)簽,只要加入一個(gè)新的屬性--shade。
所有舊的標(biāo)簽仍然可以產(chǎn)生藍(lán)色的文本,不過現(xiàn)在你可以使用同樣的標(biāo)簽產(chǎn)生不同深淺的藍(lán)色文本。
標(biāo)簽有利于代碼的重用。代碼經(jīng)過長時(shí)間的使用測試,它的bug就更少。這樣,使用自定義標(biāo)簽的JSP頁面將有著更少的bug,從而更容易維護(hù)。
4.快速的開發(fā)時(shí)間
標(biāo)簽庫提供一個(gè)簡單的方式來重用代碼。在服務(wù)器端的語言中,其中一個(gè)標(biāo)準(zhǔn)的重用代碼方式是使用模板。相對于使用模板庫,JSP標(biāo)簽庫是一個(gè)更好的解決辦法。使用模板庫,你必須為每個(gè)項(xiàng)目修改模板或者且建立嚴(yán)格的界面,而標(biāo)簽庫則沒有這些限制,并且擁有所有面向?qū)ο蟮暮锰帲梢宰龅届`活和更有擴(kuò)展性,而且,通過重用代碼,你可以花費(fèi)更少的時(shí)間來做開發(fā),更多的時(shí)間可以用在設(shè)計(jì)你的web應(yīng)用上。標(biāo)簽庫的接口也很簡單,非常容易做插入、使用和調(diào)試。
【編輯推薦】

















