簡介
ASP全名Active Server Pages,是一(yī)個WEB服務器端的開(kāi)發環境,利用它可以産生(shēng)和執行動态的、互動的、高性能的WEB服務應用程序。ASP采用腳本語言VBScript(Java script)作爲自己的開(kāi)發語言。
PHP是一(yī)種跨平台的服務器端的嵌入式腳本語言。它大(dà)量地借用C,Java和Perl語言的語法, 并耦合PHP自己的特性,使WEB開(kāi)發者能夠快速地寫出動态産生(shēng)頁面。它支持目前絕大(dà)多數數據庫。還有一(yī)點,PHP是完全免費(fèi)的,不用花錢,你可以從 PHP官方站點(http: //www.PHP.net)自由下(xià)載。而且你可以不受限制地獲得源碼,甚至可以從中(zhōng)加進你自己需要的特色。
JSP是Sun公司推出的新一(yī)代網站開(kāi)發語言,Sun公司借助自己在Java上的不凡造詣,将Java從Java應用程序和Java Applet之外(wài),又(yòu)有新的碩果,就是JSP,Java Server Page。JSP可以在Serverlet和JavaBean的支持下(xià),完成功能強大(dà)的站點程序。
技術特點:
ASP:
1、使用VBScript 、 JavaScript等簡單易懂的腳本語言,結合HTML代碼,即可快速地完成網站的應用程序。
2、無須compile編譯,容易編寫,可在服務器端直接執行。
3、使用普通的文本編輯器,如Windows的記事本,即可進行編輯設計。
4、與浏覽器無關(Browser Independence), 客戶端隻要使用可執行HTML碼的浏覽器,即可浏覽Active Server Pages所設計的網頁内容。Active ServerPages 所使用的腳本語言(VBScript 、 Jscript)均在WEB服務器端執行,客戶端的浏覽器不需要能夠執行這些腳本語言。
5、Active Server Pages能與任何ActiveX scripting語言兼容。除了可使用VB Script或JScript語言來設計外(wài),還通過plug-in的方式,使用由第三方所提供的其它腳本語言,譬如REXX 、Perl 、Tcl等。腳本引擎是處理腳本程序的COM(Component Object Model) 對象。
6、可使用服務器端的腳本來産生(shēng)客戶端的腳本。
7、ActiveX Server Components(ActiveX 服務器組件 )具有無限可擴充性。可以使用Visual Basic 、Java 、Visual C++ 、COBOL等程序設計語言來編寫你所需要的ActiveX Server Component 。
PHP:
數據庫連接
PHP 可以編譯成具有與許多數據庫相連接的函數。PHP與MySQL是現在絕佳的群組合。你還可以自己編寫外(wài)圍的函數去(qù)間接存取數據庫。通過這樣的途徑當你更換使用的數據庫時,可以輕松地修改編碼以适應這樣的變化。PHPLIB就是最常用的可以提供一(yī)般事務需要的一(yī)系列基庫。但PHP提供的數據庫接口支持彼此不統一(yī),比如對Oracle, MySQL,Sybase的接口,彼此都不一(yī)樣。這也是PHP的一(yī)個弱點。
JSP:
1、将内容的産生(shēng)和顯示進行分(fēn)離(lí)
使用JSP技術,Web頁面開(kāi)發人員(yuán)可以使用HTML或者XML标識來設計和格式化最終頁面。使用JSP标識或者小(xiǎo)腳本來産生(shēng)頁面上的動态内容。産生(shēng)内容的邏輯被封裝在标識和JavaBeans群組件中(zhōng),并且捆綁在小(xiǎo)腳本中(zhōng),所有的腳本在服務器端執行。如果核心邏輯被封裝在标識和Beans中(zhōng),那麽其它人,如Web管理人員(yuán)和頁面設計者,能夠編輯和使用JSP頁面,而不影響内容的産生(shēng)。在服務器端,JSP引擎解釋JSP标識,産生(shēng)所請求的内容(例如,通過存取JavaBeans群組件,使用JDBC技術存取數據庫),并且将結果以HTML(或者XML)頁面的形式發送回浏覽器。這有助于作者保護自己的代碼,而又(yòu)保證任何基于HTML的Web浏覽器的完全可用性。
2、強調可重用的群組件
絕大(dà)多數JSP頁面依賴于可重用且跨平台的組件(如:JavaBeans或者Enterprise JavaBeans)來執行應用程序所要求的更爲複雜(zá)的處理。開(kāi)發人員(yuán)能夠共享和交換執行普通操作的組件,或者使得這些組件爲更多的使用者或者用戶團體(tǐ)所使用。基于組件的方法加速了總體(tǐ)開(kāi)發過程,并且使得各種群組織在他們現有的技能和優化結果的開(kāi)發努力中(zhōng)得到平衡。
3、采用标識簡化頁面開(kāi)發
Web 頁面開(kāi)發人員(yuán)不會都是熟悉腳本語言的程序設計人員(yuán)。JavaServer Page技術封裝了許多功能,這些功能是在易用的、與JSP相關的XML标識中(zhōng)進行動态内容産生(shēng)所需要的。标準的JSP标識能夠存取和實例化 JavaBeans組件,設定或者檢索群組件屬性,下(xià)載Applet,以及執行用其它方法更難于編碼和耗時的功能。通過開(kāi)發定制化标識庫,JSP技術是可以擴展的。今後,第三方開(kāi)發人員(yuán)和其它人員(yuán)可以爲常用功能建立自己的标識庫。這使得Web頁面開(kāi)發人員(yuán)能夠使用熟悉的工(gōng)具和如同标識一(yī)樣的執行特定功能的構件來工(gōng)作。 JSP技術很容易整合到多種應用體(tǐ)系結構中(zhōng),以利用現存的工(gōng)具和技巧,并且擴展到能夠支持企業級的分(fēn)布式應用。作爲采用Java技術家族的一(yī)部分(fēn),以及 Java 2EE的一(yī)個成員(yuán),JSP技術能夠支持高度複雜(zá)的基于Web的應用。由于JSP頁面的内置腳本語言是基于Java程序設計語言的,而且所有的JSP頁面都被編譯成爲Java Servlet,JSP頁面就具有Java技術的所有好處,包括健壯的存儲管理和安全性。作爲Java平台的一(yī)部分(fēn),JSP擁有Java程序設計語言“一(yī)次編寫,各處執行”的特點。随着越來越多的供貨商(shāng)将JSP支持加入到他們的産品中(zhōng),您可以使用自己所選擇的服務器和工(gōng)具,修改工(gōng)具或服務器并不影響目前的應用。
應用範圍:
ASP是Microsoft開(kāi)發的動态網頁語言,也繼承了微軟産品的一(yī)貫傳統,隻能執行于微軟的服務器産品,IIS(Internet Information Server) (windows NT)和PWS(Personal Web Server)(windows 98)上。Unix下(xià)也有ChiliSoft的組件來支持ASP,但是ASP本身的功能有限,必須通過ASP+COM的群組合來擴充,Unix下(xià)的COM 實現起來非常困難。
PHP3可在Windows,Unix,Linux的Web服務器上正常執行,還支持IIS,Apache等一(yī)般的Web服務器,用戶更換平台時,無需變換PHP3代碼,可即拿即用。
JSP 同PHP3類似,幾乎可以執行于所有平台。如Win NT,Linux,Unix。在NT下(xià)IIS通過一(yī)個外(wài)加服務器,例如JRUN或者ServletExec,就能支持JSP。知(zhī)名的Web服務器 Apache已經能夠支持JSP。由于Apache廣泛應用在NT、Unix和Linux上,因此JSP有更廣泛的執行平台。雖然現在NT操作系統占了很大(dà)的市場份額,但是在服務器方面Unix的優勢仍然很大(dà),而新崛起的Linux更是來勢不小(xiǎo)。從一(yī)個平台移植到另外(wài)一(yī)個平台,JSP和JavaBean甚至不用重新編譯,因爲Java字節碼都是标準的與平台無關的。
性能比較:
有人做過試驗,對這三種語言分(fēn)别做回圈性能測試及存取Oracle數據庫測試。在循環性能測試中(zhōng),JSP隻用了令人吃驚的四秒鍾就結束了20000*20000的回圈。而ASP、PHP測試的是 2000*2000循環(少一(yī)個數量級),卻分(fēn)别用了63秒和84秒。(參考PHPLIB)。 數據庫測試中(zhōng),三者分(fēn)别對 oracle 8 進行 1000 次 Insert,Update,Select和Delete: JSP 需要 13 秒,PHP 需要 69 秒,ASP則 需要 73 秒。
前景分(fēn)析:
目前在國内PHP與ASP應用最爲廣泛。而JSP由于是一(yī)種較新的技術,國内采用的較少。但在國外(wài), JSP已經是比較流行的一(yī)種技術,尤其是電(diàn)子商(shāng)務類的網站,多采用JSP。采用PHP的網站如新浪網(sina)、中(zhōng)國人(Chinaren)等,但由于 PHP本身存在的一(yī)些缺點,使得它不适合應用于大(dà)型電(diàn)子商(shāng)務站點,而更适合一(yī)些小(xiǎo)型的商(shāng)業站點。首先,PHP缺乏規模支持。其次,缺乏多層結構支持。對于大(dà)負荷站點,解決方法隻有一(yī)個:分(fēn)布計算。數據庫、應用邏輯層、表示邏輯層彼此分(fēn)開(kāi),而且同層也可以根據流量分(fēn)開(kāi),群組成二維數組。而PHP則缺乏這種支持。還有上面提到過的一(yī)點,PHP提供的數據庫接口支持不統一(yī),這就使得它不适合運用在電(diàn)子商(shāng)務中(zhōng)。
ASP和JSP則沒有以上缺陷, ASP可以通過Microsoft Windowsd的COM/DCOM獲得ActiveX規模支持,通過DCOM和Transcation Server獲得結構支持;JSP可以通過SUN Java的Java Class和EJB獲得規模支持,通過EJB/CORBA以及衆多廠商(shāng)的Application Server獲得結構支持。
三者中(zhōng),JSP必然是未來發展的趨勢。