- 相關(guān)推薦
基于JSP網(wǎng)頁(yè)自動(dòng)生成工具的設計與實(shí)現
摘 要:Web開(kāi)發(fā)技術(shù)是Internet應用的一個(gè)重要方面,而JSP又是Web開(kāi)發(fā)的最先進(jìn)的技術(shù),是當前Web開(kāi)發(fā)人員的首選技術(shù)。但是由于JSP對Web開(kāi)發(fā)人員要求較高,所以許多一般的Web開(kāi)發(fā)人員還不能夠使用這一項先進(jìn)的技術(shù)。討論基于模板和標簽庫的JSP網(wǎng)頁(yè)自動(dòng)生成工具的設計和實(shí)現,提出具體的設計思想和實(shí)現方法。關(guān)鍵詞:JSP;自動(dòng)生成;Web開(kāi)發(fā);標簽;標簽庫;模板 目錄:
引言…………………………………………………………………..2
1 系統設計目標和使用的主要技術(shù)……………………………….4
1.1 設計目標………………………………………………………4
1.2 主要技術(shù)………………………………………………………4
1.2.1 模板技術(shù)………………………………………………….4
1.2.2 標簽庫技術(shù)……………………………………………….4
2 系統的組成和實(shí)現……………………………………………….6
2.1 系統組成………………………………………………………6
2.2 系統的實(shí)現……………………………………………………7
2.2.1 模板庫和標簽庫的實(shí)現………………………………….7
2.2.2 系統開(kāi)發(fā)環(huán)境…………………………………………….11
3 結束語(yǔ)…………………………………………………………….11 引 言
隨著(zhù)WWW(World Wide Web)的普及,動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)也急速發(fā)展。從原來(lái)的CGI(Common Gateway In-terface)到ASP(Active Server Page),都從某種程度上滿(mǎn)足了網(wǎng)頁(yè)開(kāi)發(fā)人員對動(dòng)態(tài)網(wǎng)頁(yè)開(kāi)發(fā)技術(shù)的需求。但是不管是CGI還是ASP都存在一定的局限性,如CGI對服務(wù)器資源的耗費,ASP只能同Microsoft IIS一起使用等,這些都限制了這些技術(shù)的使用范圍,極大地阻礙了它們的推廣。廣大的頁(yè)面開(kāi)發(fā)人員都熱切地盼望一種統一的頁(yè)面開(kāi)發(fā)技術(shù),該技術(shù)應該具有的特點(diǎn):①與操作平臺無(wú)關(guān),能夠在任何Web或應用程序服務(wù)器上運行;②將應用程序邏輯和頁(yè)面顯示分離;③提供代碼重用,簡(jiǎn)化開(kāi)發(fā)基于Web的交互式應用程序的過(guò)程。
JSP(Java Server Page)技術(shù)就是被設計用來(lái)滿(mǎn)足這樣的要求的。JSP是由Sun MicroSystem公司于1999年6月推出的新的網(wǎng)頁(yè)開(kāi)發(fā)技術(shù),它是基于Java Serv-let以及整個(gè)Java體系的Web開(kāi)發(fā)技術(shù),是Servlet2.1API的擴展。利用這一技術(shù),可以建立先進(jìn)、安全和跨平臺的動(dòng)態(tài)網(wǎng)站。
Java是未來(lái)的主流開(kāi)發(fā)技術(shù),具有很多優(yōu)勢。JSP則是Java在Internet/Intranet Web上的重要應用技術(shù),得到了廣泛的支持和承認,它可以和各種Java技術(shù)完好地結合在一起,從而實(shí)現非常復雜的應用。
作為一種基于文本的、以顯示為中心的開(kāi)發(fā)技術(shù),JSP提供了Java Servlet的所有好處。為了做到邏輯功能和顯示功能分開(kāi),JSP已經(jīng)可以和JavaBeans、Enterprise JavaBeans(EJB)和Servlet一起工作。JSP的開(kāi)發(fā)人員可以通過(guò)使用JavaBeans、EJB和Servlet來(lái)完成大部分與網(wǎng)站邏輯相關(guān)的工作,而僅僅把顯示的工作交給JSP頁(yè)面來(lái)完成。內容和顯示邏輯分開(kāi)的好處在于,更新頁(yè)面外觀(guān)的人員不必懂得Java代碼,而更新Java類(lèi)的人員也不必是設計網(wǎng)頁(yè)的行家。這就可以用帶Java類(lèi)的JSP頁(yè)面來(lái)定義Web模板,以建立一個(gè)具有相似外觀(guān)的頁(yè)面組成的網(wǎng)站。Java類(lèi)完成數據提供,在模板中就沒(méi)有Java代碼,這意味著(zhù)這些模板可以由一個(gè)HTML編寫(xiě)人員來(lái)維護。
JSP作為當前主流的網(wǎng)頁(yè)開(kāi)發(fā)技術(shù),具有如下特點(diǎn)。
1)將內容的生成和顯示進(jìn)行分離:使用JSP技術(shù),Web頁(yè)面開(kāi)發(fā)人員可以使用HTML或者XML標識來(lái)設計和格式化最終的頁(yè)面。使用JSP標識或者小腳本來(lái)生成頁(yè)面上的動(dòng)態(tài)內容(內容是根據請求來(lái)變化的)。生成內容的邏輯被封裝在標識和JavaBeans組件中,并且捆綁在小腳本中,所有的腳本在服務(wù)器端運行。如果核心邏輯被封裝在標識和JavaBeans中,那么其他人,如Web管理人員和頁(yè)面設計者,能夠編輯和使用JSP頁(yè)面,而不影響內容的生成。
2)強調可重用的組件:絕大多數JSP頁(yè)面依賴(lài)于可重用的、跨平臺的組件來(lái)完成應用程序所要求的更為復雜的處理。得益于Java的操作平臺無(wú)關(guān)性,開(kāi)發(fā)人員能夠很方便共享和交流執行普通操作的組件,或者使得這些組件為更多的使用者所使用;诮M件的方法加速了總體的開(kāi)發(fā)過(guò)程,極大地提高了項目整體開(kāi)發(fā)的效率。
雖然JSP功能強大,但是它要求網(wǎng)頁(yè)開(kāi)發(fā)人員對Java要相當熟悉。而現在Java程序員還比較少,對一般的網(wǎng)頁(yè)開(kāi)發(fā)人員來(lái)說(shuō),JSP的語(yǔ)法還是比較難于掌握的。所以,就需要有一種網(wǎng)頁(yè)開(kāi)發(fā)工具,為一般的網(wǎng)頁(yè)開(kāi)發(fā)人員提供常用的JSP應用,讓只懂得一般頁(yè)面開(kāi)發(fā)技術(shù)(HTML)的開(kāi)發(fā)人員也能夠使用JSP的強大功能。
1 系統設計目標和使用的主要技術(shù)
1.1 設計目標
本系統的設計目標是為只懂得HTML但完全不了解JSP的一般網(wǎng)頁(yè)開(kāi)發(fā)人員提供一個(gè)網(wǎng)頁(yè)開(kāi)發(fā)工具,使他們能夠根據系統文檔,通過(guò)標簽使用JSP的常用功能,最后生成一個(gè)只包含靜態(tài)HTML和JSP標簽的動(dòng)態(tài)JSP網(wǎng)頁(yè)。
1.2 主要技術(shù)
本系統在設計時(shí),主要考慮使用模板和JSP標簽的技術(shù)來(lái)實(shí)現。
1.2.1 模板技術(shù)
模板技術(shù)被廣泛地應用于各種開(kāi)發(fā)和應用系統中。它預先生成一些常用的框架結構,使用戶(hù)可以根據自己的需要方便地從模板庫中選擇模板,而不用自己重新去搭建,節省了用戶(hù)的開(kāi)發(fā)時(shí)間,方便了用戶(hù)的使用。在本系統中,將頁(yè)面按照功能類(lèi)型進(jìn)行分類(lèi),歸納出常用的頁(yè)面類(lèi)型,生成模板庫。
1.2.2 標簽庫技術(shù)
在JSP中,動(dòng)作是可以創(chuàng )造與訪(fǎng)問(wèn)程序語(yǔ)言對象和影響輸出流的元素。JSP定義了六個(gè)標準的動(dòng)作。除了這六個(gè)標準動(dòng)作以外,用戶(hù)可以定義自己的動(dòng)作來(lái)完成特定的功能。這些動(dòng)作被稱(chēng)為客戶(hù)化動(dòng)作,它們是可重用的程序模塊。通過(guò)這些動(dòng)作,程序員就可以在JSP頁(yè)面中把頁(yè)面的顯示功能也部分地封裝起來(lái),使整個(gè)頁(yè)面更加簡(jiǎn)潔和易于維護。在一個(gè)JSP頁(yè)面中,這些客戶(hù)化動(dòng)作是通過(guò)客戶(hù)化標簽來(lái)調用的。而標簽庫(Tag Library)就是客戶(hù)化標簽的集合。
JSP標簽庫是一種通過(guò)JavaBeans生成基于XML的腳本的方法。它是JSP的最大特點(diǎn)之一。通過(guò)標簽庫,能夠無(wú)限制地擴展JSP應用,完成任何復雜的應用需求。
JSP標簽庫具有以下特點(diǎn)。
1)易于使用:JSP中的標簽和一般的HTML標記外表上是完全一樣的,使用起來(lái)和普通的HTML標記一樣方便。
2)易于代碼重用:標簽庫中的每一個(gè)標簽都能完成一定的功能。一旦定義好了一個(gè)標簽庫,只需要把這個(gè)標簽庫包裝成一個(gè)Jar文件,那么以后只要在別的系統中使用這個(gè)標簽庫就行了,而不用重新開(kāi)發(fā)代碼,極大地提高了系統開(kāi)發(fā)效率,降低了開(kāi)發(fā)成本。
3)易于代碼維護:所有的應用邏輯都封裝在標簽處理器和JavaBeans中,所有的標簽都集中在一個(gè)標簽庫中。如果需要更新代碼或者需要修改一個(gè)網(wǎng)頁(yè)上的功能,只需要修改相應的標簽即可。通過(guò)這種統一維護方式,不用在每個(gè)網(wǎng)頁(yè)上去作修改,極大地減少了維護的工作量,節約了維護成本。
4)易于系統擴充:如果需要向系統中添加新的功能,只需要定義一個(gè)新的標簽來(lái)完成這一功能即可,無(wú)需對系統的其它方面作任何改動(dòng)。標簽庫可以繼承JSP規范各方面的特性。這樣就可以無(wú)限制地擴展和增加JSP的功能,而不需要等待下一版本JSP的出現。
2 系統的組成和實(shí)現
2.1 系統組成
本系統主要由四個(gè)部分組成,見(jiàn)圖1。
1)數據庫連接部分:本系統支持常用的幾個(gè)數據庫,包括Oracle、Sybase、MSSQLServer、MySQL和DB2,根據用戶(hù)選擇的數據庫類(lèi)型和用戶(hù)提供的數據庫名稱(chēng)、用戶(hù)名、密碼使用JDBC同數據庫相連。
2)系統基本表生成部分:和數據庫連接以后,根據同數據庫相連的用戶(hù)名生成兩個(gè)系統基本表TC-Tables和TC-Columns,TC-Tables表包含在該數據庫中屬于該用戶(hù)的所有的表的英文名稱(chēng)、中文名稱(chēng)和一些屬性,如是否可修改、是否可查詢(xún)等;TC-Columns表包含在該數據庫中屬于該用戶(hù)的所有的表的所有列的中英文名稱(chēng)和其它一些屬性。如是否可顯示、是否可查詢(xún)等。這兩個(gè)系統基本表在整個(gè)系統的開(kāi)發(fā)過(guò)程中提供用戶(hù)所使用數據庫的基本信息。
3)模板選擇和網(wǎng)頁(yè)生成部分:該部分是系統的核心部分。它包含了兩個(gè)子模塊。
、倌0暹x擇部分:系統為用戶(hù)提供模板選擇界面,讓用戶(hù)根據需要從模板庫中選擇所要使用的模板。
、谀0逄幚聿糠郑焊鶕脩(hù)選擇的模板,系統調用指定的模板處理模塊對這個(gè)模板進(jìn)行處理。當處理程序遇到模板中的標簽時(shí),就為用戶(hù)提供交互界面,讓用戶(hù)為指定的標簽輸入參數,并由系統驗證用戶(hù)輸入的標簽的有效性。最后由系統完成JSP頁(yè)面的生成。
4)網(wǎng)頁(yè)預覽和修改部分:網(wǎng)頁(yè)生成出來(lái)以后,系統為用戶(hù)提供了一個(gè)網(wǎng)頁(yè)預覽窗口和代碼查看修改窗口。通過(guò)這個(gè)預覽窗口,用戶(hù)可以預覽一下生成出來(lái)的JSP頁(yè)面的效果。如果用戶(hù)對頁(yè)面的靜態(tài)方面的效果不太滿(mǎn)意,用戶(hù)可以通過(guò)代碼查看修改窗口修改代碼中的HTML代碼。如果用戶(hù)對頁(yè)面的靜態(tài)效果有進(jìn)一步的要求,系統還為用戶(hù)提供了一個(gè)調用DreamWeaver編輯器的接口,用戶(hù)可以使用它來(lái)對生成出來(lái)的JSP頁(yè)面的靜態(tài)效果進(jìn)行進(jìn)一步的修改和完善。
2.2 系統的實(shí)現
2.2.1 模板庫和標簽庫的實(shí)現
標簽庫的規劃和設計在整個(gè)系統設計中至關(guān)重要,它關(guān)系到了代碼重用的程度和系統運行的效率。它的規劃應該遵循以下原則。
1)在標簽中應該盡量少的包含靜態(tài)的HTML。對于一般用戶(hù)來(lái)說(shuō),標簽是透明的。用戶(hù)不能夠查看和修改標簽。如果在標簽中包含了過(guò)多的靜態(tài)HT-ML語(yǔ)句,將影響用戶(hù)對頁(yè)面的靜態(tài)效果的修改和完善,限制標簽的使用。
2)盡量提高代碼的重用度。在對JSP應用進(jìn)行分類(lèi)是盡量把公用的JSP應用提取出來(lái),形成標簽。而不用在每個(gè)標簽中都重復實(shí)現該應用。這樣在以后要對該應用進(jìn)行修改和完善時(shí),只需對這一個(gè)標簽進(jìn)行修改即可,易于代碼的維護。
3)方便用戶(hù)的使用。在設計標簽庫時(shí),應該充分考慮到用戶(hù)的使用情況,使用戶(hù)能夠很容易和方便地理解和使用標簽。
、贅撕瀻斓亩x:定義一個(gè)標簽庫,必須首先定義一個(gè)標簽庫描述文件(TLD)。這是一個(gè)基于XML的腳本文件,在這個(gè)文件中定義了XML的版本、所使用的編碼、標簽庫的版本、所使用的JSP的版本、標簽庫的名稱(chēng)和這個(gè)庫中所包含的所有的標簽的定義和參數描述,包括標簽的名稱(chēng),標簽所對應的Java類(lèi),標簽的描述信息等。 、跇撕灥膶(shí)現:一個(gè)標簽就是一個(gè)特殊的Java
類(lèi),這個(gè)類(lèi)必須繼承TagSupport類(lèi),這個(gè)類(lèi)是在javax.servlet.jsp.tagext包中定義的。在標簽類(lèi)中,包含了這個(gè)標簽的參數初始化方法(Set/Get)、標簽的主體處理方法(Handler)以及供下一級標簽調用的方法等。 、勰0宓膶(shí)現:一個(gè)模板就是一個(gè)含有標簽引用的JSP文件。為了在模板中引用所定義的標簽,必須首先引入標簽庫。
<%@taglib uri=“tag.tld”prefix=“ctag”%>
其中uri指定標簽庫描述文件的路徑;prefix指定引用標簽時(shí)所使用的前綴。
在模板中引用指定的標簽時(shí),使用引入標簽庫時(shí)所指定的前綴,指定標簽的名稱(chēng);為標簽的參數賦值。 2.2.2 系統開(kāi)發(fā)環(huán)境
本系統主體程序開(kāi)發(fā)使用的是Borland公司的JBuilder 6.0,模板開(kāi)發(fā)使用是Microsoft公司的Front-Page2000,標簽庫開(kāi)發(fā)使用的是UltraEdit編輯器,JDK采用的是JDK1.4。系統測試環(huán)境是JRun3.0。
3 結束語(yǔ)
Java是未來(lái)開(kāi)發(fā)語(yǔ)言的主流,而Java在Web上的主要應用JSP也必將成為未來(lái)Web開(kāi)發(fā)的主流技術(shù)。本系統采用了JSP的最大特點(diǎn)之一的標簽庫,使一般的Web開(kāi)發(fā)人員也能夠方便地使用JSP強大的動(dòng)態(tài)頁(yè)面功能,開(kāi)發(fā)出技術(shù)先進(jìn)的JSP動(dòng)態(tài)Web頁(yè)面。由于本系統采用Java語(yǔ)言進(jìn)行開(kāi)發(fā),所以可以在任何支持圖形化界面的操作系統下運行,實(shí)現了完全的與平臺無(wú)關(guān)。本系統易于擴充和完善。在以后可以考慮為用戶(hù)提供接口,使用戶(hù)可以自己擴充模板庫和標簽庫,進(jìn)一步增強系統的功能。
參考文獻
[1] Cay S.Horstmann,Gary Cornell.Java 2核心技術(shù)(CoreJava 2)[M].北京:機械工業(yè)出版社.
[2] Bruce Eckel.Java編程思想(Thinking in Java)[M].北京:機械工業(yè)出版社.
[3] Joseph L.Weber.Java 2編程詳解(Using Java 2)[M].北京:電子工業(yè)出版社.
[4] Borland公司.Building Applications with JBuilder.論文出處(作者):
淺談?dòng)妹嫦驅ο蠼<夹g(shù)構建企業(yè)管理信息系統
用Visual Basic 5.0開(kāi)發(fā)無(wú)線(xiàn)通訊數據采集應用程序
【基于JSP網(wǎng)頁(yè)自動(dòng)生成工具的設計與實(shí)現】相關(guān)文章:
基于JSP的BBS設計與實(shí)現JSP+SQL03-08
基于JSP的BBS系統設計與實(shí)現JSP+JavaBean+SQL03-08
基于MVC架構的JSP網(wǎng)站設計與實(shí)現-校園網(wǎng)上二手書(shū)店JSP+SQL03-08
美容網(wǎng)站的設計與實(shí)現JSP+SQL03-08
基于iFIX的Excel報表自動(dòng)生成與制作03-07
實(shí)現基于網(wǎng)頁(yè)的數據庫數據導入03-18