動態(tài)網(wǎng)頁開發(fā)工具的分析和研究
發(fā)布時間:2008-11-18 瀏覽: 次
1 引言
現(xiàn)在已經(jīng)進入了一個網(wǎng)絡(luò)時代, 基于網(wǎng)絡(luò)的活動和交易越來 越多, 而網(wǎng)上活動和交易依托的就是各種網(wǎng)站。網(wǎng)站在人們的想 象中就是一些頁面, 然后這些頁面提供一些信息, 我們從提供的 信息中得到有用的東西。這只不過是傳統(tǒng)的想法, 在兩三年前也 許是這樣的。這種網(wǎng)站開發(fā)依托的是一些網(wǎng)頁編輯軟件, 先在這 些軟件上生成靜態(tài)的頁面, 然后發(fā)布到站點上去, 這種開發(fā)不必 用到數(shù)據(jù)庫。正因為這樣, 人們就開始在美工上下功夫, 因而有了 眾多網(wǎng)站建設(shè)軟件如Flash 等的紅火, 這些網(wǎng)站制作出來的網(wǎng)頁 給人一種美感。是藝術(shù)品式的網(wǎng)站, 也是很死板的網(wǎng)站。
2 動態(tài)網(wǎng)頁開發(fā)工具
隨著網(wǎng)站數(shù)據(jù)處理量的加大, 并且與用戶交互需求的增加, 靜態(tài)網(wǎng)頁已不能滿足需要, 從而出現(xiàn)了動態(tài)網(wǎng)頁開發(fā)技術(shù)。動態(tài) 網(wǎng)頁不是Dynamic HTML, 而是Active Pages, 動態(tài)交互頁面。有了 這種技術(shù), 就可以在網(wǎng)絡(luò)上實現(xiàn)進行查詢、購物、聊天、留言、開論 壇等。
目前, 開發(fā)這些動態(tài)網(wǎng)站的技術(shù)最常見的有三種, 第一種是 微軟的ASP, 全名Active Server Pages, 是一個WEB 服務(wù)器端的開 發(fā)環(huán)境, 利用它可以產(chǎn)生和執(zhí)行動態(tài)的、互動的、高性能的WEB 服務(wù)應(yīng)用程序。ASP 采用腳本語言VBScript( Java script) 作為自己 的開發(fā)語言。由于Windows 的流行和其本身的簡單易學(xué)和支持?jǐn)?shù) 據(jù)庫類型眾多, 所以相當(dāng)流行, 但又由于平臺的限制和安全性問 題, 給其傳播制造了一定障礙。第二種是Sun 公司推出的新一代 網(wǎng)站開發(fā)語言JSP, Sun 公司借助自己在Java 上的不凡造詣, 在 Java 和Java 應(yīng)用程序及Java Applet 之外, 又有了新的碩果, 就是 JSP, 全名Java Server Page。JSP 可以在Serverlet 和JavaBean 的支 持下, 完成功能強大的站點程序。JSP 以它的平臺無關(guān)性得到了較 為強大的用戶群, 但是對數(shù)據(jù)庫的支持不多, 使得開發(fā)相對比較 難, 所以發(fā)展并不快。第三種是完全免費的PHP, 全名Hypertext Preprocessor 。PHP 是一種跨平臺的服務(wù)器端的嵌入式腳本語言。 它大量地借用C、Java 和Perl 語言的語法, 并耦合PHP 自己的特 性, 使WEB 開發(fā)者能夠快速地寫出動態(tài)產(chǎn)生頁面。它有上面兩種 開發(fā)語言的長處, 如平臺無關(guān)性, 數(shù)據(jù)庫支持種類多, 但是由于是 完全免費, 沒有強大的后臺支撐, 有的用戶對其前景不是很看好。 這三種語言的發(fā)展都相當(dāng)快, 各具特色, 并且由于網(wǎng)絡(luò)事業(yè)的發(fā) 展, 其地位也越來越重要, 現(xiàn)在公司的競爭也變成了占領(lǐng)網(wǎng)絡(luò)開 發(fā)領(lǐng)域的競爭了, SUN 提出了J2EE, 其中JSP 占很重要的一部分, 而微軟也以.NET 把ASP.NET 送上了歷史舞臺。
2.1 ASP 技術(shù)特點
2.1.1 使用VBScript 、JScript 等簡單易懂的腳本語言, 結(jié)合 HTML 代碼, 即可快速地完成網(wǎng)站的應(yīng)用程序編輯。
2.1.2 無須compile 編譯, 容易編寫, 可在服務(wù)器端直接執(zhí) 行。
2.1.3 使用普通的文本編輯器, 如Windows 的記事本, 即可進 行編輯設(shè)計。
2.1.4 與瀏覽器無關(guān)(Browser Independence) , 客戶端只要使用 可執(zhí)行HTML 碼的瀏覽器, 即可瀏覽Active Server Pages 所設(shè)計 的網(wǎng)頁內(nèi)容。Active ServerPages 所使用的腳本語言(VBScript 、 Jscript) 均在WEB 服務(wù)器端執(zhí)行, 客戶端的瀏覽器不需要執(zhí)行這 些腳本語言。
2.1.5 Active Server Pages 能與任何ActiveX scripting 語言兼 容。除了可使用VB Script 或JScript 語言來設(shè)計外, 還通過plugin 的方式, 使用由第三方所提供的其它腳本語言, 譬如REXX 、 Perl 、Tcl 等。腳本引擎是處理腳本程序的COM(Component Object Model) 對象。
2.1.6 可使用服務(wù)器端的腳本來產(chǎn)生客戶端的腳本。
2.1.7 ActiveX Server Components(ActiveX 服務(wù)器組件) 具有 無限可擴充性??梢允褂肰isual Basic 、Java 、Visual C++ 、COBOL 等程序設(shè)計語言來編寫你所需要的ActiveX Server Component 。
2.2 PHP 技術(shù)特點
PHP 可以編譯成具有與許多數(shù)據(jù)庫相連接的函數(shù)。PHP 與 MySQL 是現(xiàn)在絕佳的群組合。還可以自己編寫外圍的函數(shù)去間接 存取數(shù)據(jù)庫。通過這樣的途徑當(dāng)你更換使用的數(shù)據(jù)庫時, 可以輕 松地修改編碼以適應(yīng)這樣的變化。PHPLIB 就是最常用的可以提 供一般事務(wù)需要的一系列基庫。但PHP 提供的數(shù)據(jù)庫接口支持彼 此不統(tǒng)一, 比如對Oracle, MySQL, Sybase 的接口, 彼此都不一樣。 這也是PHP 的一個弱點。
2.3 JSP 技術(shù)特點
2.3.1 將內(nèi)容的產(chǎn)生和顯示進行分離
使用JSP 技術(shù),Web 頁面開發(fā)人員可以使用HTML 或者XML 標(biāo)識來設(shè)計和格式化最終頁面。使用JSP 標(biāo)識或者小腳本來產(chǎn)生 頁面上的動態(tài)內(nèi)容。產(chǎn)生內(nèi)容的邏輯被封裝在標(biāo)識和JavaBeans 群組件中, 并且捆綁在小腳本中, 所有的腳本在服務(wù)器端執(zhí)行。如 果核心邏輯被封裝在標(biāo)識和Beans 中, 那么其他人, 如Web 管理 人員和頁面設(shè)計者, 能夠編輯和使用JSP 頁面, 而不影響內(nèi)容的 產(chǎn)生。在服務(wù)器端, JSP 引擎解釋JSP 標(biāo)識, 產(chǎn)生所請求的內(nèi)容( 例如, 通過存取JavaBeans 群組件, 使用JDBC 技術(shù)存取數(shù)據(jù)庫) , 并 且將結(jié)果以HTML( 或者XML) 頁面的形式發(fā)送回瀏覽器。這有助 于作者保護自己的代碼, 而又保證任何基于HTML 的Web 瀏覽 器的完全可用性。
2.3.2 強調(diào)可重用的群組件
絕大多數(shù)JSP 頁面依賴于可重用且跨平臺的組件( 如: JavaBeans 或者Enterprise JavaBeans) 來執(zhí)行應(yīng)用程序所要求的更為 復(fù)雜的處理。開發(fā)人員能夠共享和交換執(zhí)行普通操作的組件, 或 者使得這些組件為更多的使用者或者用戶團體所使用?;诮M件 的方法加速了總體開發(fā)過程, 并且使得各種群組件在他們現(xiàn)有的 技能和優(yōu)化結(jié)果的開發(fā)努力中得到平衡。
2.3.3 采用標(biāo)識簡化頁面開發(fā)
Web 頁面開發(fā)人員不會都是熟悉腳本語言的程序設(shè)計人員。 JavaServer Page 技術(shù)封裝了許多功能, 這些功能是在易用的、與 JSP 相關(guān)的XML 標(biāo)識中進行動態(tài)內(nèi)容產(chǎn)生所需要的。標(biāo)準(zhǔn)的JSP 標(biāo)識能夠存取和實例化JavaBeans 組件, 設(shè)定或者檢索群組件屬 性, 下載Applet, 以及執(zhí)行用其它方法更難于編碼和耗時的功 能。
通過開發(fā)定制化標(biāo)識庫, JSP 技術(shù)是可以擴展的。今后, 第三 方開發(fā)人員和其它人員可以為常用功能建立自己的標(biāo)識庫。這使 得Web 頁面開發(fā)人員能夠使用熟悉的工具和如同標(biāo)識一樣的執(zhí) 行特定功能的構(gòu)件來工作。
JSP 技術(shù)很容易整合到多種應(yīng)用體系結(jié)構(gòu)中, 以利用現(xiàn)存的 工具和技巧, 并且擴展到能夠支持企業(yè)級的分布式應(yīng)用。作為采 用Java 技術(shù)家族的一部分, 以及Java 2EE 的一個成員, JSP 技術(shù) 能夠支持高度復(fù)雜的基于Web 的應(yīng)用。
由于JSP 頁面的內(nèi)置腳本語言是基于Java 程序設(shè)計語言的, 而且所有的JSP 頁面都被編譯成為Java Servlet, JSP 頁面就具有 Java 技術(shù)的所有好處, 包括健壯的存儲管理和安全性。
作為Java 平臺的一部分, JSP 擁有Java 程序設(shè)計語言“一次 編寫, 各處執(zhí)行”的特點。隨著越來越多的供貨商將JSP 支持加入 到他們的產(chǎn)品中, 您可以使用自己所選擇的服務(wù)器和工具, 修改 工具或服務(wù)器并不影響目前的應(yīng)用。
3 應(yīng)用范圍及前景
ASP 是Microsoft 開發(fā)的動態(tài)網(wǎng)頁語言, 也繼承了微軟產(chǎn)品的 一貫傳統(tǒng), 只能執(zhí)行于微軟的服務(wù)器產(chǎn)品, IIS( Internet Information Server) (Windows NT) 和PWS( Personal Web Server) (Windows 98) 上。Unix 下也有ChiliSoft 的組件來支持ASP, 但是ASP 本身的功 能有限, 必須通過ASP+COM的群組來擴充, Unix 下的COM實現(xiàn) 起來非常困難。
PHP 可在Windows、Unix、Linux 的Web 服務(wù)器上正常執(zhí)行, 還支持IIS、Apache 等一般的Web 服務(wù)器, 用戶更換平臺時, 無需 變換PHP 代碼, 可即拿即用。
JSP 同PHP 類似, 幾乎可以執(zhí)行于所有平臺。如WinNT、 Linux、Unix。在NT 下IIS 通過一個外加服務(wù)器, 例如JRUN 或者 ServletExec, 就能支持JSP。知名的Web 服務(wù)器Apache 已經(jīng)能夠 支持JSP。由于Apache 廣泛應(yīng)用在NT、Unix 和Linux 上, 因此JSP 有更廣泛的執(zhí)行平臺。雖然現(xiàn)在NT 操作系統(tǒng)占了很大的市場份 額, 但是在服務(wù)器方面Unix 的優(yōu)勢仍然很大, 而新崛起的Linux 更是來勢不小。從一個平臺移植到另外一個平臺, JSP 和JavaBean 甚至不用重新編譯, 因為Java 字節(jié)碼都是標(biāo)準(zhǔn)的與平臺無關(guān)的。 三者都提供在HTML 代碼中混合某種程序代碼、由語言引擎解釋執(zhí)行程序代碼的能力。但JSP 代碼被編譯成Servlet 并由Java 虛擬機解釋執(zhí)行, 這種編譯操作僅在對JSP 頁面的第一次請求時 發(fā)生。在ASP、PHP、JSP 環(huán)境下, HTML 代碼主要負責(zé)描述信息的 顯示樣式, 而程序代碼則用來描述處理邏輯。普通的HTML 頁面 只依賴于Web 服務(wù)器, 而ASP、PHP、JSP 頁面需要附加的語言引 擎分析和執(zhí)行程序代碼。程序代碼的執(zhí)行結(jié)果被重新嵌入到 HTML 代碼中, 然后一起發(fā)送給瀏覽器。ASP、PHP、JSP 三者都是 面向Web 服務(wù)器的技術(shù), 客戶端瀏覽器不需要任何附加的軟件支 持。
有人做過試驗, 對這三種語言分別做回圈性能測試及存取 Oracle數(shù)據(jù)庫測試。在循環(huán)性能測試中, JSP 只用了令人吃驚的四 秒鐘就結(jié)束了20 000 ×20 000 的回圈。而ASP、PHP 測試的是 2 000×2 000 循環(huán)( 少一個數(shù)量級) , 卻分別用了63 秒和84 秒。 ( 參考PHPLIB) 。數(shù)據(jù)庫測試中, 三者分別對Oracle 8 進行1000 次Insert, Update, Select 和Delete: JSP 需要13 秒, PHP 需要69 秒, ASP 則需要73 秒。
目前在國內(nèi)PHP 與ASP 應(yīng)用最為廣泛。而JSP 由于是一種 較新的技術(shù), 國內(nèi)采用的較少。但在國外, JSP 已經(jīng)是比較流行的 一種技術(shù), 尤其是網(wǎng)站建設(shè)類的網(wǎng)站, 多采用JSP。
采用PHP 的網(wǎng)站如新浪網(wǎng)( sina) 、中國人(Chinaren) 等, 由于 PHP 本身存在的一些缺點, 使得它不適合應(yīng)用于大型網(wǎng)站建設(shè)站 點, 而更適合一些小型的商業(yè)站點。首先, PHP 缺乏規(guī)模支持。其 次, 缺乏多層結(jié)構(gòu)支持。對于大負荷站點, 解決方法只有一個: 分 布計算。數(shù)據(jù)庫、應(yīng)用邏輯層、表示邏輯層彼此分開, 而且同層也 可以根據(jù)流量分開, 群組成二維數(shù)組。而PHP 則缺乏這種支持。還 有上面提到過的一點, PHP 提供的數(shù)據(jù)庫接口支持不統(tǒng)一, 這就 使得它不適合運用在網(wǎng)站建設(shè)中。
ASP 和JSP 則沒有以上缺陷, ASP 可以通過Microsoft Windows 的COM/DCOM 獲得ActiveX 規(guī)模支持, 通過DCOM 和 Transactions Server 獲得結(jié)構(gòu)支持; JSP 可以通過SUN Java 的Java Class 和EJB 獲得規(guī)模支持, 通過EJB/CORBA 以及眾多廠商的 Application Server 獲得結(jié)構(gòu)支持。
三者中, JSP 應(yīng)該是未來發(fā)展的趨勢。世界上一些大的電子商 務(wù)解決方案提供商都采用JSP/Servlet。比較出名的如IBM的Ebusiness, 它的核心是采用JSP/Servlet 的Web Sphere。它們都是通 過CGI 來提供支持的。但去年10 月后它推出了Enfinity, 一個采 用JSP/Servlet 的網(wǎng)站建設(shè)Application Server, 而且聲言不再開發(fā) 傳統(tǒng)軟件。
4 結(jié)束語
語言本身的性能是一方面, 更重要的是看你是否可以正確的 使用這種技術(shù), 發(fā)揮它的特長。各種語言都有自己的強項, 但這些 東西往往屬于該語言的高級部分。而實際上大部分編程者往往以 為會了這種語言的基本東西, 如變量、語法什么就以為自己會了 這種語言。殊不知其實各種語言在這些基本的方面相差都不太 大。只有深入進去, 才能真正領(lǐng)會到各種語言的精髓。
資訊推薦
- 關(guān)于2016年春節(jié)放假安排2016-01-26
- 為了方便同事們提前訂票回家過年,現(xiàn)在公司春節(jié)放假時間安排通知。
春節(jié)放假時間為:2016年2月3到 2月14日。共11天。
廣大客戶在我...
- 如何做好創(chuàng)業(yè)型網(wǎng)站運營2016-03-07
- 1、緊記網(wǎng)站定位,制訂網(wǎng)站長期與短期經(jīng)營目標(biāo)。
網(wǎng)站定位是網(wǎng)站發(fā)展之本,不管是營銷型網(wǎng)站建設(shè)還是創(chuàng)業(yè)型網(wǎng)站運營,網(wǎng)站經(jīng)營偏離了定位或定位不...
- 奢侈品B2C的網(wǎng)站規(guī)劃該如何做2016-03-07
- 電子商務(wù)(EC,也就是E-Commerce的縮寫),關(guān)于電子商務(wù)的定義世人眾說紛紜,從不同的角度出發(fā)有不同的定義??梢岳斫鉃橐?Internet為依托,借助一定...
- 微信:支付寶搶紅包要到春晚,我們今晚就開始!2016-01-26
- 昨天上午 11 點,支付寶通過一個長微博,公布了大家期待已久的與央視春晚獨家合作的互動玩法,核心點在于必須主動通過社交拓展才能夠獲得最多的紅包。
支...