您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)jsp標(biāo)簽庫(kù)是什么,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
JSP標(biāo)準(zhǔn)標(biāo)簽庫(kù)(JSTL)是一個(gè)JSP標(biāo)簽集合,它封裝了JSP應(yīng)用的通用核心功能。JSTL支持通用的、結(jié)構(gòu)化的任務(wù),比如迭代,條件判斷,XML文檔操作,國(guó)際化標(biāo)簽,SQL標(biāo)簽。 除了這些,它還提供了一個(gè)框架來(lái)使用集成JSTL的自定義標(biāo)簽。從概念上講,標(biāo)簽就是很簡(jiǎn)單而且可重用的代碼結(jié)構(gòu)。比方說(shuō),在最新發(fā)布的JSPKit(在JSP Insider內(nèi))中,使用XML標(biāo)簽實(shí)現(xiàn)了對(duì)XML文檔的輕松訪問(wèn)。
推薦課程:Java教程。
重要特性
易于安裝在多個(gè)項(xiàng)目上
標(biāo)簽很容易從一個(gè)JSP項(xiàng)目遷移到其他項(xiàng)目。一旦建立了一個(gè)標(biāo)簽庫(kù),則只需要將所有的東西打包為一個(gè)JAR文件,你就可以在任何的JSP項(xiàng)目中重新使用。因?yàn)闃?biāo)簽可以重新使用,標(biāo)簽庫(kù)可以輕松地用于你自己的項(xiàng)目,所以標(biāo)簽庫(kù)越來(lái)越通行。目前,最好的標(biāo)簽資源可以在JSPTags.com這個(gè)站點(diǎn)找到。
可以無(wú)限制地?cái)U(kuò)展和增加JSP的功能
擴(kuò)展JSP 標(biāo)簽庫(kù)可以具備JSP規(guī)范(JSP 1.2)中的任何特性和功能,你可以無(wú)限制地?cái)U(kuò)展和增加JSP的功能,而無(wú)需要等待下一版本JSP的出現(xiàn)。例如,你對(duì)JSP的include調(diào)用不太滿意。你可以建立自己的include標(biāo)簽,該標(biāo)簽執(zhí)行的是你自己的規(guī)范。
容易維護(hù)
標(biāo)簽庫(kù)使得JSP的web應(yīng)用程序非常易于維護(hù),原因有:
(1)標(biāo)簽應(yīng)用簡(jiǎn)單,對(duì)任何人而言都很容易使用、易于理解。
(2)所有的程序邏輯代碼都集中放在的標(biāo)簽處理器和JavaBeans中。這意味著你在升級(jí)代碼時(shí),無(wú)需要對(duì)每個(gè)使用該代碼的頁(yè)面進(jìn)行修改,你只需要修改集中的代碼文件便可。
(3)如果需要加入新的功能,你也無(wú)需修改任何已經(jīng)存在的頁(yè)面,可以在標(biāo)簽中加入額外的屬性,從而引進(jìn)新的行為,而其它舊的屬性不變,這樣所有舊的頁(yè)面還可以正常工作。 例如你有一個(gè)讓所有文本變藍(lán)的標(biāo)簽:
<BlueText>My Text</BlueText>
但在后來(lái)項(xiàng)目中,你又想讓藍(lán)色變暗。你可以保留原有的標(biāo)簽,只要為其增加一個(gè)新的屬性:shade ,如下所示:
<BlueText shade="teal">My Text</BlueText>
所有舊的標(biāo)簽仍然可以產(chǎn)生藍(lán)色的文本,但現(xiàn)在你可以使用同一標(biāo)簽來(lái)產(chǎn)生變暗的藍(lán)色文本了。
(4)標(biāo)簽提升了代碼的重用性。那些經(jīng)過(guò)多次測(cè)試和使用的代碼肯定具有更少的bug。所以,使用定制標(biāo)簽的JSP頁(yè)面也同樣具有更少的缺陷,維護(hù)起來(lái)自然方便多了。
快速的開(kāi)發(fā)時(shí)間
標(biāo)簽庫(kù)提供一個(gè)簡(jiǎn)單的方式來(lái)重用代碼。在服務(wù)器端的語(yǔ)言中,其中一個(gè)標(biāo)準(zhǔn)的重用代碼方式是使用模板。相對(duì)于使用模板庫(kù),標(biāo)簽庫(kù)是一個(gè)更好的解決辦法。使用模板庫(kù),你必須為每個(gè)項(xiàng)目修改模板或者且建立嚴(yán)格的界面,而標(biāo)簽庫(kù)則沒(méi)有這些限制,并且擁有所有面向?qū)ο蟮暮锰?,可以做到靈活和更有擴(kuò)展性,而且,通過(guò)重用代碼,你可以花費(fèi)更少的時(shí)間來(lái)做開(kāi)發(fā),更多的時(shí)間可以用在設(shè)計(jì)你的web應(yīng)用上。標(biāo)簽庫(kù)的接口也很簡(jiǎn)單,非常容易做插入、使用和調(diào)試。
標(biāo)簽的組成結(jié)構(gòu)
雖然標(biāo)簽庫(kù)非常易于使用,不過(guò)要建立一個(gè)標(biāo)簽庫(kù)的內(nèi)部實(shí)現(xiàn)機(jī)制還是頗復(fù)雜的,起碼要比建立一個(gè)簡(jiǎn)單的JavaBean復(fù)雜。這個(gè)復(fù)雜是來(lái)自于標(biāo)簽庫(kù)是由幾部分構(gòu)成的。不過(guò),你只需要掌握了Java和JSP的知識(shí)就夠了。
一個(gè)簡(jiǎn)單的標(biāo)簽由下面的元素構(gòu)成:
1.JavaBean:為了得到Java與生具來(lái)的面向?qū)ο蟮暮锰?,可重用的代碼應(yīng)該放到一個(gè)獨(dú)立的代碼容器中,也就是JavaBean。這些JavaBeans并不是標(biāo)簽庫(kù)必不可少的一部分,但它們是標(biāo)簽庫(kù)用來(lái)執(zhí)行所分配任務(wù)的基礎(chǔ)代碼模塊。
2.標(biāo)簽處理器:標(biāo)簽處理器是標(biāo)簽庫(kù)的真正核心。一個(gè)標(biāo)簽處理器(tag handler)引用它所需要的任何外部資源(JavaBean)并且負(fù)責(zé)訪問(wèn)JSP頁(yè)面的信息(PageContext對(duì)象)。而JSP頁(yè)面則把頁(yè)面上設(shè)置的標(biāo)簽屬性和標(biāo)簽體中的內(nèi)容都傳遞給標(biāo)簽處理器,當(dāng)標(biāo)簽處理器完成其處理過(guò)程后,它就會(huì)把處理后的輸出結(jié)果回送給JSP頁(yè)面做進(jìn)一步處理。
3.標(biāo)簽庫(kù)描述符(TLD文件):這是一個(gè)簡(jiǎn)單的XML文件,它記錄著標(biāo)簽處理器的屬性、信息和位置等信息。JSP容器通過(guò)這個(gè)文件來(lái)得知從哪里及如何調(diào)用一個(gè)標(biāo)簽庫(kù)。
4.Web站點(diǎn)的web.xml文件:這是Web站點(diǎn)的初始化文件,在這個(gè)文件中,需要定義了Web站點(diǎn)中用到的自定義標(biāo)簽,以及用來(lái)描述每個(gè)自定義標(biāo)簽的tld文件。
5.發(fā)布文件(WAR或JAR文件):如果你想重用自定義標(biāo)簽的話,你需要一個(gè)方法來(lái)將它由一個(gè)項(xiàng)目遷移到其他項(xiàng)目中去。將標(biāo)簽庫(kù)打包為一個(gè)JAR文件是一個(gè)簡(jiǎn)單而且有效的方式。
6.JSP頁(yè)面上的標(biāo)簽庫(kù)聲明:要在JSP頁(yè)面中的使用某個(gè)自定義標(biāo)簽的話,需要使用標(biāo)簽庫(kù)標(biāo)示符在頁(yè)面上進(jìn)行聲明。
看來(lái)要做的工作很多,剛開(kāi)始用的時(shí)候當(dāng)然會(huì)有點(diǎn)棘手,不過(guò)其實(shí)并不是很難。它的要點(diǎn)并不在于編碼,而是在于如何將各部分正確地組織起來(lái)。這種層次性的結(jié)構(gòu)是很重要的,它令標(biāo)簽的使用靈活和更容易轉(zhuǎn)移。更重要的事,這些層次可以讓整個(gè)建立標(biāo)簽庫(kù)的過(guò)程都能通過(guò)JSP IDE(JSP的集成開(kāi)發(fā)環(huán)境)自動(dòng)完成。JSP IDE更可以自動(dòng)完成創(chuàng)建定制標(biāo)簽的大部分工作,而你自己則只需要負(fù)責(zé)建立代碼和標(biāo)簽處理器。(注意:一個(gè)標(biāo)簽處理器僅定義一個(gè)自定義標(biāo)簽;一個(gè)標(biāo)簽庫(kù)是幾個(gè)處理相同任務(wù)的標(biāo)簽處理器的集合)
在這篇文章中只簡(jiǎn)要地討論了標(biāo)簽庫(kù)的好處。標(biāo)簽庫(kù)實(shí)際上還有許多其它強(qiáng)大的功能。標(biāo)簽庫(kù)促使JSP開(kāi)發(fā)進(jìn)入了前所未有的新天地。對(duì)JSP開(kāi)發(fā)人員來(lái)說(shuō)這確實(shí)是一種很令人振奮的新技術(shù),因?yàn)樗麄兊玫搅艘粋€(gè)可將JSP轉(zhuǎn)到各個(gè)應(yīng)用并且建立任何類型web應(yīng)用的工具。標(biāo)簽庫(kù)讓JSP變成了最豐富、最具動(dòng)態(tài)開(kāi)發(fā)能力的、強(qiáng)大的Web編程環(huán)境。它的功能只受我們的想象和創(chuàng)造力限制。
關(guān)于jsp標(biāo)簽庫(kù)是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。