?? html、swing還是xml,java客戶端工具選擇?(四) [轉(zhuǎn)].txt
字號:
作者:jeru
email: jeru@163.net
日期:8/6/2001 6:12:01 PM
基于XML/XSLT的客戶端應(yīng)用程序
在這里,我們假定你已經(jīng)對XML有了基本的理解,我將重點討論其前端應(yīng)用程序的開發(fā)。與XML相關(guān)的用戶界面開發(fā)的一個主要特征是內(nèi)容和表達方法之間互不干涉。簡單地說,就是數(shù)據(jù)被保存為XML文檔,而不再負責(zé)數(shù)據(jù)的使用和顯示,根據(jù)決定數(shù)據(jù)格式和在網(wǎng)頁上輸出方式的樣式表(XSLT)在HTML、WML、XHTML和其他表達形式中選擇一種數(shù)據(jù)表達形式。通過使各層之間保持相對的獨立,讓每個層處理各自的任務(wù),這種方法的優(yōu)點是非常明顯的。
盡管XML提供了很好的數(shù)據(jù)發(fā)布模式,可以生成不同的表達模式,它仍然不能解決所有的問題。XML值得稱道的是讓開發(fā)人員專注于數(shù)據(jù)的處理,而讓設(shè)計人員和藝術(shù)家來處理數(shù)據(jù)的表達形式。應(yīng)用程序則把生成的XML文件保存在內(nèi)存或存儲在磁盤上,為得到指定的表達類型,例如HTML,可以通過適當(dāng)?shù)腦SLT類型表對內(nèi)容進行轉(zhuǎn)換,該類型表可以將XML文檔轉(zhuǎn)換為HTML文檔。類型表與判斷文檔中的內(nèi)容應(yīng)當(dāng)如何分布在網(wǎng)頁上的模板類似。它還可以轉(zhuǎn)換數(shù)據(jù),執(zhí)行傳統(tǒng)的命令和循環(huán)來處理數(shù)據(jù),進行決策,因此它也可能變得非常復(fù)雜。
類型表的優(yōu)點之一是,如果要從一部移動電話上訪問同一個應(yīng)用程序,所需要作的全部工作就是再創(chuàng)建一個新的WML類型表。從理論上說,這個應(yīng)用程序的所有其他部分都無需作任何改變,這使得服務(wù)器端的編程工作變得非常高效。采用XML實現(xiàn)一個前端應(yīng)用程序?qū)⑹挂恍┤蝿?wù)變得簡單,因為顯示的數(shù)據(jù)和處理這些數(shù)據(jù)的代碼都無需改變。開發(fā)應(yīng)用程序各部分的開發(fā)小組可以獨立工作,從而加快開發(fā)進程。
然而,我曾經(jīng)在基于XML的前端應(yīng)用程序開發(fā)中吃過苦頭,它的二個最主要的缺點是缺乏幫助生成XML以及類型表開發(fā)方面的工具和處理速度,第一個因素對那些使用DreamWeaver和FrontPage等可視化HTML開發(fā)工具創(chuàng)建HTML網(wǎng)頁的開發(fā)人員的影響更大。就我本人而言,我還是喜歡使用DreamWeaver,但我實在不能從在文本編輯器中編寫HTML代碼中得到什么樂趣。畢竟,現(xiàn)在已經(jīng)是21世紀(jì)了,我們來看一個將XML文檔轉(zhuǎn)換為HTML的非常簡單的XSLT類型表:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="page">
<html>
<head>
<title><xsl:value-of select="title"/></title>
</head>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="title">
<h1><xsl:apply-templates/></h1>
</xsl:template>
</xsl:stylesheet>
如果所選的XSL類型表適當(dāng)?shù)脑挘厦娴拇a會生成如下所示的HTML代碼:
<html>
<head>
<title>My first page</title>
</head>
<body>
<h1>Hello, world</h1>
</body>
</html>
我們會發(fā)現(xiàn),上面的代碼與我們用HTML開發(fā)工具得到的代碼不大相同。不幸地是,我們必須用手工的方式對它進行編輯,在一個可以生成HTML文檔的工具中對它進行處理后,然后在瀏覽器中打開生成的文檔。如果僅僅是為了美觀而改變字體的大小,那么就無需這么作了。
第二個問題是在運行時完成所有的任務(wù)需要許多時間。如果數(shù)據(jù)格式不是XML,還需要生成XML文檔,在類型表對XML進行轉(zhuǎn)換處理后,才能生成HTML代碼。與在Servlet或JSP應(yīng)用程序中向內(nèi)存緩存中寫文件相比,速度和簡潔性實在不是基于XML的前端應(yīng)用程序的優(yōu)點。
總而言之,如果需要動態(tài)地生成不同版面和窗體的表達形式時,就需要使用XML。如果表達形式需要經(jīng)常變化或需要非常靈活,就應(yīng)該讓設(shè)計人員重新設(shè)計新的類型表。需要記信的是,設(shè)計人員只要掌握XML和XSLT就萬事大吉了。
另一個需要使用基于XML的UI的場合是你需要處理的資料是XML文檔,而不是Java對象或關(guān)系數(shù)據(jù)庫。XML是一種在未來頗有前途的新技術(shù),然而,目前使用JSP開發(fā)前端應(yīng)用不是比較方便的,尤其是HTML是唯一一種前端開發(fā)工具時更是如此。使用JavaBeans和JSP標(biāo)識庫等一些著名的設(shè)計模式則能夠使數(shù)據(jù)的內(nèi)容和表達形式很好的分離。隨著自動對XML/XSLT進行編輯的工具的出現(xiàn),這些技術(shù)在使用方面將更加簡單方便。
結(jié)論
具體到你自己的Java應(yīng)用程序,這三種前端技術(shù)各有利弊,任何一種技術(shù)都不能在所有方面超過其他二種。針對具體的應(yīng)用程序,我們必須對需求、用戶的期望進行詳細分析,對這三種技術(shù)進行評估。下面是一些基本的準(zhǔn)則:
使用HTML/JSP:
━━適合于由大量圖形和美術(shù)作品組成的靜態(tài)內(nèi)容。
━━前端應(yīng)用程序的界面面向使用所有平臺的用戶。
━━用戶所使用的互聯(lián)網(wǎng)連接較慢。
━━希望快速地構(gòu)建功能比較單一的應(yīng)用程序。
使用Java Swing:
━━適合創(chuàng)建具有內(nèi)置、與界面相關(guān)的邏輯的GUI。
━━可以減輕網(wǎng)絡(luò)流量,提供盡可能的即時響應(yīng)。
━━如果用戶對界面的質(zhì)量和功能有較高的期望。
━━如果UI的功能比其美感更重要時。
使用XML/XSLT
━━需要支持許多不同的而且經(jīng)常變化的窗體。
━━數(shù)據(jù)是XML格式。
━━需要個性化。
━━計劃提供無線訪問等不同的訪問方式。
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -