js|設計|網頁
摘 要:Web開發技術是Internet應用的一個重要方面,而JSP又是Web開發的最先進的技術,是當前Web開發人員的首選技術。但是由於JSP對Web開發人員要求較高,所以許多一般的Web開發人員還不能夠使用這一項先進的技術。討論基於模板和標籤庫的JSP網頁自動產生工具的設計和實現,提出具體的設計思想和實現方法。
關鍵詞:JSP;自動產生;Web開發;標籤;標籤庫;模板
目錄:
引言…………………………………………………………………..2
1 系統設計目標和使用的主要技術……………………………….4
1.1 設計目標………………………………………………………4
1.2 主要技術………………………………………………………4
1.2.1 模板技術………………………………………………….4
1.2.2 標籤庫技術……………………………………………….4
2 系統的組成和實現……………………………………………….6
2.1 系統組成………………………………………………………6
2.2 系統的實現……………………………………………………7
2.2.1 模板庫和標籤庫的實現………………………………….7
2.2.2 系統開發環境…………………………………………….11
3 結束語…………………………………………………………….11
引 言
隨著WWW(World Wide Web)的普及,動態網頁技術也急速發展。從原來的CGI(Common Gateway In-terface)到ASP(Active Server Page),都從某種程度上滿足了網頁開發人員對動態網頁開發技術的需求。但是不管是CGI還是ASP都存在一定的局限性,如CGI對伺服器資源的耗費,ASP只能同Microsoft IIS一起使用等,這些都限制了這些技術的使用範圍,極大地阻礙了它們的推廣。廣大的頁面開發人員都熱切地盼望一種統一的頁面開發技術,該技術應該具有的特點:①與操作平台無關,能夠在任何Web或應用程式伺服器上運行;②將應用程式邏輯和頁面顯示分離;③提供代碼重用,簡化開發基於Web的互動式應用程式的過程。
JSP(Java Server Page)技術就是被設計用來滿足這樣的要求的。JSP是由Sun MicroSystem公司於1999年6月推出的新的網頁開發技術,它是基於Java Serv-let以及整個Java體系的Web開發技術,是Servlet2.1API的擴充。利用這一技術,可以建立先進、安全和跨平台的動態網站。
Java是未來的主流開發技術,具有很多優勢。JSP則是Java在Internet/Intranet Web上的重要應用技術,得到了廣泛的支援和承認,它可以和各種Java技術完好地結合在一起,從而實現非常複雜的應用。
作為一種基於文本的、以顯示為中心的開發技術,JSP提供了Java Servlet的所有好處。為了做到邏輯功能和顯示功能分開,JSP已經可以和JavaBeans、Enterprise JavaBeans(EJB)和Servlet一起工作。JSP的開發人員可以通過使用JavaBeans、EJB和Servlet來完成大部分與網站邏輯相關的工作,而僅僅把顯示的工作交給JSP頁面來完成。內容和顯示邏輯分開的好處在於,更新頁面外觀的人員不必懂得Java代碼,而更新Java類的人員也不必是設計網頁的行家。這就可以用帶Java類的JSP頁面來定義Web模板,以建立一個具有相似外觀的頁面組成的網站。Java類完成資料提供,在模板中就沒有Java代碼,這意味著這些模板可以由一個HTML編寫人員來維護。
JSP作為當前主流的網頁開發技術,具有如下特點。
1)將內容的產生和顯示進行分離:使用JSP技術,Web頁面開發人員可以使用HTML或者XML標識來設計和格式化最終的頁面。使用JSP標識或者小指令碼來產生頁面上的動態內容(內容是根據請求來變化的)。產生內容的邏輯被封裝在標識和JavaBeans組件中,並且捆綁在小指令碼中,所有的指令碼在伺服器端運行。如果核心邏輯被封裝在標識和JavaBeans中,那麼其他人,如Web管理員和頁面設計者,能夠編輯和使用JSP頁面,而不影響內容的產生。
2)強調可重用的組件:絕大多數JSP頁面依賴於可重用的、跨平台的組件來完成應用程式所要求的更為複雜的處理。得益於Java的操作平台無關性,開發人員能夠很方便共用和交流執行普通操作的組件,或者使得這些組件為更多的使用者所使用。基於組件的方法加速了總體的開發過程,極大地提高了項目整體開發的效率。
雖然JSP功能強大,但是它要求網頁開發人員對Java要相當熟悉。而現在Java程式員還比較少,對一般的網頁開發人員來說,JSP的文法還是比較難於掌握的。所以,就需要有一種網頁開發工具,為一般的網頁開發人員提供常用的JSP應用,讓只懂得一般頁面開發技術(HTML)的開發人員也能夠使用JSP的強大功能。
1 系統設計目標和使用的主要技術
1.1 設計目標
本系統的設計目標是為只懂得HTML但完全不瞭解JSP的一般網頁開發人員提供一個網頁開發工具,使他們能夠根據系統文檔,通過標籤使用JSP的常用功能,最後產生一個只包含靜態HTML和JSP標籤的動態JSP網頁。
1.2 主要技術
本系統在設計時,主要考慮使用模板和JSP標籤的技術來實現。
1.2.1 模板技術
模板技術被廣泛地應用於各種開發和應用系統中。它預先產生一些常用的架構結構,使使用者可以根據自己的需要方便地從模板庫中選擇模板,而不用自己重新去搭建,節省了使用者的開發時間,方便了使用者的使用。在本系統中,將頁面按照功能類型進行分類,歸納出常用的頁面類型,產生模板庫。
1.2.2 標籤庫技術
在JSP中,動作是可以創造與訪問程式語言對象和影響輸出資料流的元素。JSP定義了六個標準的動作。除了這六個標準動作以外,使用者可以定義自己的動作來完成特定的功能。這些動作被稱為客戶化動作,它們是可重用的程式模組。通過這些動作,程式員就可以在JSP頁面中把頁面的顯示功能也部分地封裝起來,使整個頁面更加簡潔和易於維護。在一個JSP頁面中,這些客戶化動作是通過客戶化標籤來調用的。而標籤庫(Tag Library)就是客戶化標籤的集合。
JSP標籤庫是一種通過JavaBeans產生基於XML的指令碼的方法。它是JSP的最大特點之一。通過標籤庫,能夠無限制地擴充JSP應用,完成任何複雜的應用需求。
JSP標籤庫具有以下特點。
1)便於使用:JSP中的標籤和一般的HTML標記外表上是完全一樣的,使用起來和普通的HTML標記一樣方便。
2)易於代碼重用:標籤庫中的每一個標籤都能完成一定的功能。一旦定義好了一個標籤庫,只需要把這個標籤庫封裝成一個Jar檔案,那麼以後只要在別的系統中使用這個標籤庫就行了,而不用重新開發代碼,極大地提高了系統開發效率,降低了開發成本。
3)易於代碼維護:所有的應用邏輯都封裝在標籤處理器和JavaBeans中,所有的標籤都集中在一個標籤庫中。如果需要更新代碼或者需要修改一個網頁上的功能,只需要修改相應的標籤即可。通過這種統一維護方式,不用在每個網頁上去作修改,極大地減少了維護的工作量,節約了維護成本。
4)易於系統擴充:如果需要向系統中添加新的功能,只需要定義一個新的標籤來完成這一功能即可,無需對系統的其它方面作任何改動。標籤庫可以繼承JSP規範各方面的特性。這樣就可以無限制地擴充和增加JSP的功能,而不需要等待下一版本JSP的出現。
2 系統的組成和實現
2.1 系統組成
本系統主要由四個部分組成。
1)資料庫連接部分:本系統支援常用的幾個資料庫,包括Oracle、Sybase、MSSQLServer、MySQL和DB2,根據使用者選擇的資料庫類型和使用者提供的資料庫名稱、使用者名稱、密碼使用JDBC同資料庫相連。
2)系統基本表產生部分:和資料庫連接以後,根據同資料庫相連的使用者名稱產生兩個系統基本表TC-Tables和TC-Columns,TC-Tables表包含在該資料庫中屬於該使用者的所有的表的英文名稱、中文名稱和一些屬性,如是否可修改、是否可查詢等;TC-Columns表包含在該資料庫中屬於該使用者的所有的表的所有列的中英文名稱和其它一些屬性。如是否可顯示、是否可查詢等。這兩個系統基本表在整個系統的開發過程中提供使用者所使用資料庫的基本資料。
3)模板選擇和網頁產生部分:該部分是系統的核心部分。它包含了兩個子模組。
①模板選擇部分:系統為使用者提供模板選擇介面,讓使用者根據需要從模板庫中選擇所要使用的模板。
②模板處理部分:根據使用者選擇的模板,系統調用指定的模板處理模組對這個模板進行處理。當處理常式遇到模板中的標籤時,就為使用者提供互動介面,讓使用者為指定的標籤輸入參數,並由系統驗證使用者輸入的標籤的有效性。最後由系統完成JSP頁面的產生。
4)網頁預覽和修改部分:網頁產生出來以後,系統為使用者提供了一個網頁預覽視窗和代碼查看修改視窗。通過這個預覽視窗,使用者可以預覽一下產生出來的JSP頁面的效果。如果使用者對頁面的靜態方面的效果不太滿意,使用者可以通過代碼查看修改視窗修改代碼中的HTML代碼。如果使用者對頁面的靜態效果有進一步的要求,系統還為使用者提供了一個調用DreamWeaver編輯器的介面,使用者可以使用它來對產生出來的JSP頁面的靜態效果進行進一步的修改和完善。
2.2 系統的實現
2.2.1 模板庫和標籤庫的實現
標籤庫的規劃和設計在整個系統設計中至關重要,它關係到了代碼重用的程度和系統啟動並執行效率。它的規劃應該遵循以下原則。
1)在標籤中應該盡量少的包含靜態HTML。對於一般使用者來說,標籤是透明的。使用者不能夠查看和修改標籤。如果在標籤中包含了過多的靜態HT-ML語句,將影響使用者對頁面的靜態效果的修改和完善,限制標籤的使用。
2)盡量提高代碼的重用度。在對JSP應用進行分類是盡量把公用的JSP應用提取出來,形成標籤。而不用在每個標籤中都重複實現該應用。這樣在以後要對該應用進行修改和完善時,只需對這一個標籤進行修改即可,易於代碼的維護。
3)方便使用者的使用。在設計標籤庫時,應該充分考慮到使用者的使用方式,使使用者能夠很容易和方便地理解和使用標籤。
①標籤庫的定義:定義一個標籤庫,必須首先定義一個標籤庫描述檔案(TLD)。這是一個基於XML的指令檔,在這個檔案中定義了XML的版本、所使用的編碼、標籤庫的版本、所使用的JSP的版本、標籤庫的名稱和這個庫中所包含的所有的標籤的定義和參數描述,包括標籤的名稱,標籤所對應的Java類,標籤的描述資訊等。
②標籤的實現:一個標籤就是一個特殊的Java
類,這個類必須繼承TagSupport類,這個類是在javax.servlet.jsp.tagext包中定義的。在標籤類中,包含了這個標籤的參數初始化方法(Set/Get)、標籤的主體處理方法(Handler)以及供下一級標籤調用的方法等。
③模板的實現:一個模板就是一個含有標籤引用的JSP檔案。為了在模板中引用所定義的標籤,必須首先引入標籤庫。
<%@taglib uri=“tag.tld”prefix=“ctag”%>
其中uri指定標籤庫描述檔案的路徑;prefix指定引用標籤時所使用的首碼。
在模板中引用指定的標籤時,使用引入標籤庫時所指定的首碼,指定標籤的名稱;為標籤的參數賦值。
2.2.2 系統開發環境
本系統主體程式開發使用的是Borland公司的JBuilder 6.0,模板開發使用是Microsoft公司的Front-Page2000,標籤庫開發使用的是UltraEdit編輯器,JDK採用的是JDK1.4。系統測試環境是JRun3.0。
3 結束語
Java是未來開發語言的主流,而Java在Web上的主要應用JSP也必將成為未來Web開發的主流技術。本系統採用了JSP的最大特點之一的標籤庫,使一般的Web開發人員也能夠方便地使用JSP強大的動態網頁面功能,開發出技術先進的JSP動態Web頁面。由於本系統採用Java語言進行開發,所以可以在任何支援圖形化介面的作業系統下運行,實現了完全的與平台無關。本系統易於擴充和完善。在以後可以考慮為使用者提供介面,使使用者可以自己擴充模板庫和標籤庫,進一步增強系統的功能。
參考文獻
[1] Cay S.Horstmann,Gary Cornell.Java 2核心技術(CoreJava 2)[M].北京:機械工業出版社.
[2] Bruce Eckel.Java編程思想(Thinking in Java)[M].北京:機械工業出版社.
[3] Joseph L.Weber.Java 2編程詳解(Using Java 2)[M].北京:電子工業出版社.
[4] Borland公司.Building Applications with JBuilder.