動(dòng)態(tài)網(wǎng)頁(yè)編程語(yǔ)言中的三大帝國(guó)ASP.JSP.PHP之間的較量
本文跟大家一起分享到的是關(guān)于動(dòng)態(tài)網(wǎng)頁(yè)編程語(yǔ)言中的三大霸主ASP.JSP.PHP之間的較量,究竟誰(shuí)主沉浮,讓我們一起來(lái)看一看。
ASP JSP PHP是動(dòng)態(tài)網(wǎng)頁(yè)編程語(yǔ)言中的三大霸主,ASP的全稱(chēng)是Active Server Pages,是一個(gè)WEB服務(wù)器端的開(kāi)發(fā)環(huán)境,利用它可以產(chǎn)生和運(yùn)行動(dòng)態(tài)的、交互的、高性能的WEB服務(wù)應(yīng)用程序。ASP采用腳本語(yǔ)言VBScript(Java script)作為自己的開(kāi)發(fā)語(yǔ)言。JSP是Sun公司推出的新一代站點(diǎn)開(kāi)發(fā)語(yǔ)言,他完全解決了目前ASP,PHP的一個(gè)通病,腳本級(jí)執(zhí)行(據(jù)說(shuō)PHP4也已經(jīng)在Zend的支持下,實(shí)現(xiàn)編譯運(yùn)行)。Sun公司借助自己在Java上的不凡造詣,將Java從Java應(yīng)用程序和Java Applet之外,又有新的碩果,就是JSP,Java Server Page。Jsp可以在Serverlet和JavaBean的支持下,完成功能強(qiáng)大的站點(diǎn)程序。PHP是一種跨平臺(tái)的服務(wù)器端的嵌入式腳本語(yǔ)言。它大量地借用C,Java和Perl語(yǔ)言的語(yǔ)法, 并耦合PHP自己的特性,使WEB開(kāi)發(fā)者能夠快速地寫(xiě)出動(dòng)態(tài)生成頁(yè)面。它支持目前絕大多數(shù)數(shù)據(jù)庫(kù)。還有一點(diǎn),PHP是完全免費(fèi)的,不用花錢(qián),你可以從PHP官方站點(diǎn)(http: //www.php.net)自由下載。而且你可以不受限制地獲得源碼,甚至可以從中加進(jìn)你自己需要的特色。
強(qiáng)大的ASP帝國(guó)
ASP身為微軟早期的動(dòng)態(tài)網(wǎng)頁(yè)編程語(yǔ)言以其簡(jiǎn)單、易學(xué)易用的特點(diǎn)吸引了廣大網(wǎng)頁(yè)編程愛(ài)好者的青睞,是三種語(yǔ)言中使用最廣、影響力最深、從業(yè)者最多的一門(mén)語(yǔ)言,ASP+ACCESS幾乎占據(jù)了目前底端WEB開(kāi)發(fā)的主流市場(chǎng),即使是一些大型的網(wǎng)站也從來(lái)沒(méi)有放棄過(guò)用ASP來(lái)實(shí)現(xiàn)WEB應(yīng)用程序的開(kāi)發(fā)。同時(shí),ASP與MS SQLSERVER同為微軟嫡系產(chǎn)品,它們的結(jié)合已經(jīng)成為動(dòng)態(tài)網(wǎng)頁(yè)開(kāi)發(fā)的一股新勢(shì)力,被越來(lái)越多地應(yīng)用于企業(yè)級(jí)的網(wǎng)站程序開(kāi)發(fā)當(dāng)中。
ASP的特點(diǎn):
1. 使用VBScript 、 JScript等簡(jiǎn)單易懂的腳本語(yǔ)言,結(jié)合HTML代碼,即可快速地完成網(wǎng)站的應(yīng)用程序。
2. 無(wú)須compile編譯,容易編寫(xiě),可在服務(wù)器端直接執(zhí)行。
3. 使用普通的文本編輯器,如Windows的記事本,即可進(jìn)行編輯設(shè)計(jì)。
4. 與瀏覽器無(wú)關(guān)(Browser Independence), 用戶端只要使用可執(zhí)行HTML碼的瀏覽器,即可瀏覽Active Server Pages所設(shè)計(jì)的網(wǎng)頁(yè)內(nèi)容。Active ServerPages 所使用的腳本語(yǔ)言(VBScript 、 Jscript)均在WEB服務(wù)器端執(zhí)行,用戶端的瀏覽器不需要能夠執(zhí)行這些腳本語(yǔ)言。
5.Active Server Pages能與任何ActiveX scripting語(yǔ)言相容。除了可使用VB Script或JScript語(yǔ)言來(lái)設(shè)計(jì)外,還通過(guò)plug-in的方式,使用由第三方所提供的其他腳本語(yǔ)言,譬如REXX 、Perl 、Tcl等。腳本引擎是處理腳本程序的COM(Component Object Model) 物件。
6. 可使用服務(wù)器端的腳本來(lái)產(chǎn)生客戶端的腳本。
7. ActiveX Server Components(ActiveX 服務(wù)器元件 )具有無(wú)限可擴(kuò)充性(
可以使用Visual Basic 、Java 、Visual C++ 、COBOL等編程語(yǔ)言來(lái)編寫(xiě)你所需要的ActiveX Server Component)。
ASP的應(yīng)用:
ASP是Microsoft開(kāi)發(fā)的動(dòng)態(tài)網(wǎng)頁(yè)語(yǔ)言,也繼承了微軟產(chǎn)品的一貫傳統(tǒng)??只能運(yùn)行于微軟的服務(wù)器產(chǎn)品,IIS(Internet Information Server) (windows NT)和PWS(Personal Web Server)(windows 98)上。Unix下也有ChiliSoft的插件來(lái)支持ASP,但是ASP本身的功能有限,必須通過(guò)ASP+COM的組合來(lái)擴(kuò)充,Unix下的COM實(shí)現(xiàn)起來(lái)非常困難。
ASP的前景:
ASP不是目前最好的動(dòng)態(tài)網(wǎng)頁(yè)編程語(yǔ)言但絕對(duì)是目前應(yīng)用最廣的一門(mén)編程語(yǔ)言,在ASP的基礎(chǔ)上,微軟構(gòu)架了ASP.NET,可以說(shuō)ASP.NET延續(xù)了ASP的許多特點(diǎn)但又在很多方面彌補(bǔ)了ASP的不足,ASP.Net擺脫了以前ASP使用腳本語(yǔ)言來(lái)編程的缺點(diǎn),理論上可以使用任何編程語(yǔ)言包括C++ , VB , JS等等,當(dāng)然,最合適的編程語(yǔ)言還是MS為.Net Frmaework專(zhuān)門(mén)推出的C(讀c sharp),它可以看作是VC和Java的混合體吧,盡管MS自己講C#內(nèi)核中更多的象VC,但實(shí)際上我還是認(rèn)為它和Java更象一些吧。首先它是面向?qū)ο蟮木幊陶Z(yǔ)言,而不是一種腳本,所以它具有面向?qū)ο缶幊陶Z(yǔ)言的一切特性,比如封裝性、繼承性、多態(tài)性等等,這就解決了剛才談到的ASP的那些弱點(diǎn)。封裝性使得代碼邏輯清晰,易于管理,并且應(yīng)用到ASP.Net上就可以使業(yè)務(wù)邏輯和Html頁(yè)面分離,這樣無(wú)論頁(yè)面原型如何改變,業(yè)務(wù)邏輯代碼都不必做任何改動(dòng);繼承性和多態(tài)性使得代碼的可重用性大大提高,你可以通過(guò)繼承已有的對(duì)象最大限度保護(hù)你以前的投資。并且C#和C++、Java一樣提供了完善的調(diào)試/糾錯(cuò)體系。
神速的JSP帝國(guó)
JSP的內(nèi)置腳本語(yǔ)言是基于Java編程語(yǔ)言的,而且所有的JSP頁(yè)面都被編譯成為Java Servlet,JSP頁(yè)面就具有Java技術(shù)的所有好處,包括健壯的存儲(chǔ)管理和安全性。作為Java平臺(tái)的一部分,JSP擁有Java編程語(yǔ)言“一次編寫(xiě),各處運(yùn)行”的特點(diǎn)。隨著越來(lái)越多的供應(yīng)商將JSP支持添加到他們的產(chǎn)品中,您可以使用自己所選擇的服務(wù)器和工具,更改工具或服務(wù)器并不影響當(dāng)前的應(yīng)用。
JSP的特點(diǎn):
1、將內(nèi)容的生成和顯示進(jìn)行分離
使用JSP技術(shù),Web頁(yè)面開(kāi)發(fā)人員可以使用HTML或者XML標(biāo)識(shí)來(lái)設(shè)計(jì)和格式化最終頁(yè)面。使用JSP標(biāo)識(shí)或者小腳本來(lái)生成頁(yè)面上的動(dòng)態(tài)內(nèi)容。生成內(nèi)容的邏輯被封裝在標(biāo)識(shí)和JavaBeans組件中,并且捆綁在小腳本中,所有的腳本在服務(wù)器端運(yùn)行。如果核心邏輯被封裝在標(biāo)識(shí)和Beans中,那么其他人,如Web管理人員和頁(yè)面設(shè)計(jì)者,能夠編輯和使用JSP頁(yè)面,而不影響內(nèi)容的生成。
在服務(wù)器端,JSP引擎解釋JSP標(biāo)識(shí)和小腳本,生成所請(qǐng)求的內(nèi)容(例如,通過(guò)訪問(wèn)JavaBeans組件,使用JDBCTM技術(shù)訪問(wèn)數(shù)據(jù)庫(kù),或者包含文件),并且將結(jié)果以HTML(或者XML)頁(yè)面的形式發(fā)送回瀏覽器。這有助于作者保護(hù)自己的代碼,而又保證任何基于HTML的Web瀏覽器的完全可用性。
2、強(qiáng)調(diào)可重用的組件
絕大多數(shù)JSP頁(yè)面依賴(lài)于可重用的,跨平臺(tái)的組件(JavaBeans或者Enterprise JavaBeans組件)來(lái)執(zhí)行應(yīng)用程序所要求的更為復(fù)雜的處理。開(kāi)發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使得這些組件為更多的使用者或者客戶團(tuán)體所使用;诮M件的方法加速了總體開(kāi)發(fā)過(guò)程,并且使得各種組織在他們現(xiàn)有的技能和優(yōu)化結(jié)果的開(kāi)發(fā)努力中得到平衡。
3、采用標(biāo)識(shí)簡(jiǎn)化頁(yè)面開(kāi)發(fā)
Web頁(yè)面開(kāi)發(fā)人員不會(huì)都是熟悉腳本語(yǔ)言的編程人員。JavaServer Page技術(shù)封裝了許多功能,這些功能是在易用的、與JSP相關(guān)的XML標(biāo)識(shí)中進(jìn)行動(dòng)態(tài)內(nèi)容生成所需要的。標(biāo)準(zhǔn)的JSP標(biāo)識(shí)能夠訪問(wèn)和實(shí)例化JavaBeans組件,設(shè)置或者檢索組件屬性,下載Applet,以及執(zhí)行用其他方法更難于編碼和耗時(shí)的功能。
通過(guò)開(kāi)發(fā)定制化標(biāo)識(shí)庫(kù),JSP技術(shù)是可以擴(kuò)展的。今后,第三方開(kāi)發(fā)人員和其他人員可以為常用功能創(chuàng)建自己的標(biāo)識(shí)庫(kù)。這使得Web頁(yè)面開(kāi)發(fā)人員能夠使用熟悉的工具和如同標(biāo)識(shí)一樣的執(zhí)行特定功能的構(gòu)件來(lái)工作。
JSP技術(shù)很容易整合到多種應(yīng)用體系結(jié)構(gòu)中,以利用現(xiàn)存的工具和技巧,并且擴(kuò)展到能夠支持企業(yè)級(jí)的分布式應(yīng)用。作為采用Java技術(shù)家族的一部分,以及Java 2(企業(yè)版體系結(jié)構(gòu))的一個(gè)組成部分,JSP技術(shù)能夠支持高度復(fù)雜的基于Web的應(yīng)用。
JSP的應(yīng)用:
JSP同PHP3類(lèi)似,幾乎可以運(yùn)行于所有平臺(tái)。如Win NT,Linux,Unix. NT下IIS通過(guò)一個(gè)插件,例如JRUN或者ServletExec,就能支持JSP。著名的Web服務(wù)器Apache已經(jīng)能夠支持JSP。由于Apache廣泛應(yīng)用在NT、Unix和Linux上,因此JSP有更廣泛的運(yùn)行平臺(tái)。雖然現(xiàn)在NT操作系統(tǒng)占了很大的市場(chǎng)份額,但是在服務(wù)器方面Unix的優(yōu)勢(shì)仍然很大,而新崛起的Linux更是來(lái)勢(shì)不小。從一個(gè)平臺(tái)移植到另外一個(gè)平臺(tái),JSP和JavaBean甚至不用重新編譯,因?yàn)镴ava字節(jié)碼都是標(biāo)準(zhǔn)的與平臺(tái)無(wú)關(guān)的。
JSP的前景:
由于JSP具有JAVA開(kāi)發(fā)語(yǔ)言的許多特點(diǎn),其強(qiáng)大的應(yīng)用程序開(kāi)發(fā)能力和快速執(zhí)行能力在這個(gè)講究效率的時(shí)代實(shí)際上被越來(lái)越多的人所關(guān)注,相信JSP將會(huì)隨著它的老大哥JAVA一道風(fēng)起云涌,成為動(dòng)態(tài)網(wǎng)頁(yè)編程語(yǔ)言中一個(gè)舉足輕重的角色。
開(kāi)放的PHP帝國(guó)
PHP是一種跨平臺(tái)的服務(wù)器端的嵌入式腳本語(yǔ)言。它大量地借用C,Java和Perl語(yǔ)言的語(yǔ)法, 并耦合PHP自己的特性,使WEB開(kāi)發(fā)者能夠快速地寫(xiě)出動(dòng)態(tài)生成頁(yè)面。它支持目前絕大多數(shù)數(shù)據(jù)庫(kù)。還有一點(diǎn),PHP是完全免費(fèi)的,不用花錢(qián),你可以從PHP官方站點(diǎn)(http: //www.php.net)自由下載。而且你可以不受限制地獲得源碼,甚至可以從中加進(jìn)你自己需要的特色。
PHP的特點(diǎn):
1、強(qiáng)大的數(shù)據(jù)處理能力
PHP可以編譯成具有與許多數(shù)據(jù)庫(kù)相連接的函數(shù)。PHP與MySQL是現(xiàn)在絕佳的組合。你還可以自己編寫(xiě)外圍的函數(shù)去間接存取數(shù)據(jù)庫(kù)。通過(guò)這樣的途徑當(dāng)你更換使用的數(shù)據(jù)庫(kù)時(shí),可以輕松地更改編碼以適應(yīng)這樣的變化。PHPLIB就是最常用的可以提供一般事務(wù)需要的一系列基庫(kù)。但PHP提供的數(shù)據(jù)庫(kù)接口支持彼此不統(tǒng)一,比如對(duì)Oracle, MySQL,Sybase的接口,彼此都不一樣。這也是PHP的一個(gè)弱點(diǎn)。
2、面向?qū)ο蟮木幊虡?gòu)架
PHP提供了類(lèi)和對(duì)象。基于web的編程工作非常需要面向?qū)ο缶幊棠芰。PHP支持構(gòu)造器、提取類(lèi)等。
PHP的應(yīng)用:
PHP可在Windows,Unix,Linux的Web服務(wù)器上正常運(yùn)行,還支持IIS,Apache等通用Web服務(wù)器,用戶更換平臺(tái)時(shí),無(wú)需變換PHP代碼,可即拿即用。
PHP的前景:
PHP的特點(diǎn)決定了PHP在動(dòng)態(tài)網(wǎng)頁(yè)編程語(yǔ)言中的位置,但在這個(gè)細(xì)分的時(shí)代,集團(tuán)式的大型網(wǎng)站開(kāi)發(fā)并沒(méi)有顯現(xiàn)其被人們接受的深刻性,相反,細(xì)分時(shí)代給了小型WEB應(yīng)用程序開(kāi)發(fā)一片廣闊的天地,在這個(gè)舞臺(tái)上,相信PHP會(huì)越走越好。