天天看點

ASP JSP PHP比較

目前,最常用的三種動态網頁語言有ASP(Active Server Pages),JSP(Java Server Pages),PHP (Hypertext Preprocessor)。

簡 介

ASP全名Active Server Pages,是一個WEB伺服器端的開發環境, 利用它可以産生和運作動态的、互動的、高性能的WEB服務應用程式。ASP采用腳本語言VB Script(Java script)作為自己的開發語言。

PHP是一種跨平台的伺服器端的嵌入式腳本語言. 它大量地借用C,Java和Perl語言的文法, 并耦合PHP自己的特性,使WEB開發者能夠快速地寫出動态生成頁面.它支援目前絕大多數資料庫。還有一點,PHP是完全免費的,不用花錢,你可以從PHP官方站點(http://www.php.net)自由下載下傳。而且你可以不受限制地獲得源碼,甚至可以從中加進你自己需要的特色。

JSP 是Sun公司推出的新一代站點開發語言,他完全解決了目前ASP,PHP的一個通病--腳本級執行(據說PHP4 也已經在Zend 的支援下,實作編譯運作).Sun 公司借助自己在Java 上的不凡造詣,将Java 從Java 應用程式 和 Java Applet 之外,又有新的碩果,就是Jsp--Java Server Page。Jsp 可以在Serverlet和JavaBean的支援下,完成功能強大的站點程式。

三者都提供在 HTML 代碼中混合某種程式代碼、由語言引擎解釋執行程式代碼的能力。但JSP代碼被編譯成 Servlet 并由 Java 虛拟機解釋執行,這種編譯操作僅在對 JSP 頁面的第一次請求時發生。在 ASP 、PHP、JSP 環境下, HTML 代碼主要負責描述資訊的顯示樣式,而程式代碼則用來描述處理邏輯。普通的 HTML 頁面隻依賴于 Web 伺服器,而 ASP 、PHP、JSP 頁面需要附加的語言引擎分析和執行程式代碼。程式代碼的執行結果被重新嵌入到 HTML 代碼中,然後一起發送給浏覽器。 ASP 、PHP、 JSP三者都是面向 Web 伺服器的技術,用戶端浏覽器不需要任何附加的軟體支援。

技術特點

ASP:

1. 使用 VBScript 、 JScript 等簡單易懂的腳本語言,結合 HTML 代碼,即可快速地完成網站的應用程式。

2. 無須 compile 編譯,容易編寫,可在伺服器端直接執行。

3. 使用普通的文本編輯器,如 Windows 的記事本,即可進行編輯設計。

4. 與浏覽器無關 (Browser Independence), 使用者端隻要使用可執行 HTML 碼的浏覽器,即可浏覽 Active Server Pages 所設計的網頁内容。 Active Server Pages 所使用的腳本語言 (VBScript 、 Jscript) 均在 WEB 伺服器端執行,使用者端的浏覽器不需要能夠執行這些腳本語言。

5.Active Server Pages 能與任何 ActiveX scripting 語言相容。除了可使用 VBScript 或 JScript 語言來設計外,還通過 plug-in 的方式,使用由第三方所提供的其他腳本語言,譬如 REXX 、 Perl 、 Tcl 等。腳本引擎是處理腳本程式的 COM(Component Object Model) 物件。

6. 可使用伺服器端的腳本來産生用戶端的腳本。

7.ActiveX Server Components(ActiveX 伺服器元件 ) 具有無限可擴充性。可以使用 Visual Basic 、 Java 、 Visual C++ 、 COBOL 等程式設計語言來編寫你所需要的ActiveX Server Component 。

PHP:

1.資料庫連接配接

PHP可以編譯成具有與許多資料庫相連接配接的函數。PHP與MySQL是現在絕佳的組合。你還可以自己編寫外圍的函數取間接存取資料庫。通過這樣的途徑當你更換使用的資料庫時,可以輕松地更改編碼以适應這樣的變。PHPLIB就是最常用的可以提供一般事務需要的一系列基庫。但PHP提供的資料庫接口支援彼此不統一,比如對Oracle, MySQL, Sybase的接口,彼此都不一樣。這也是PHP的一個弱點。

2.面向對象程式設計

PHP提供了類和對象。基于web的程式設計工作非常需要面向對象程式設計能力。PHP支援構造器、提取類等。

優勢

1 一種能快速學習、跨平台、有良好資料庫互動能力的開發語言。

2 與Apache及其他擴充庫結合緊密。php可與apache以靜态編譯的方式結合,最大好處是最大化利用CPU和記憶體。外部擴充庫也是靜态聯編,與資料庫的連接配接也是這樣,是以使用的是本地化的調用,這也讓資料庫發揮了最佳效能。

3 良好的安全性。他的代碼中存在許多檢測,同時它與apache編譯在一起的方式也可以讓他具有靈活的安全設定。

劣勢

1 資料庫支援的極大變化

2 安裝複雜

3 缺少企業級支援

4 缺少正規商業支援

5 無法實作商品化應用開發

JSP:

1.将内容的生成和顯示進行分離

使用JSP技術,Web頁面開發人員可以使用HTML或者XML辨別來設計和格式化最終頁面。使用JSP辨別或者小腳本來生成頁面上的動态内容。生成内容的邏輯被封裝在辨別和JavaBeans元件中,并且捆綁在小腳本中,所有的腳本在伺服器端運作。如果核心邏輯被封裝在辨別和Beans中,那麼其他人,如Web管理人員和頁面設計者,能夠編輯和使用JSP頁面,而不影響内容的生成。

在伺服器端,JSP引擎解釋JSP辨別和小腳本,生成所請求的内容(例如,通過通路JavaBeans元件,使用JDBCTM技術通路資料庫,或者包含檔案),并且将結果以HTML(或者XML)頁面的形式發送回浏覽器。這有助于作者保護自己的代碼,而又保證任何基于HTML的Web浏覽器的完全可用性。

2.強調可重用的元件

絕大多數JSP頁面依賴于可重用的,跨平台的元件(JavaBeans或者Enterprise JavaBeansTM元件)來執行應用程式所要求的更為複雜的處理。開發人員能夠共享和交換執行普通操作的元件,或者使得這些元件為更多的使用者或者客戶團體所使用。基于元件的方法加速了總體開發過程,并且使得各種組織在他們現有的技能和優化結果的開發努力中得到平衡。

3.采用辨別簡化頁面開發

Web頁面開發人員不會都是熟悉腳本語言的程式設計人員。JavaServer Page技術封裝了許多功能,這些功能是在易用的、與JSP相關的XML辨別中進行動态内容生成所需要的。标準的JSP辨別能夠通路和執行個體化JavaBeans元件,設定或者檢索元件屬性,下載下傳Applet,以及執行用其他方法更難于編碼和耗時的功能。

通過開發定制化辨別庫,JSP技術是可以擴充的。今後,第三方開發人員和其他人員可以為常用功能建立自己的辨別庫。這使得Web頁面開發人員能夠使用熟悉的工具和如同辨別一樣的執行特定功能的構件來工作。

JSP技術很容易整合到多種應用體系結構中,以利用現存的工具和技巧,并且擴充到能夠支援企業級的分布式應用。作為采用Java技術家族的一部分,以及Java 2(企業版體系結構)的一個組成部分,JSP技術能夠支援高度複雜的基于Web的應用。

由于JSP頁面的内置腳本語言是基于Java程式設計語言的,而且所有的JSP頁面都被編譯成為Java Servlet,JSP頁面就具有Java技術的所有好處,包括健壯的存儲管理和安全性。

作為Java平台的一部分,JSP擁有Java程式設計語言“一次編寫,各處運作”的特點。随着越來越多的供應商将JSP支援添加到他們的産品中,您可以使用自己所選擇的伺服器和工具,更改工具或伺服器并不影響目前的應用。

優勢

1 一次編寫,到處運作

2 系統的多平台支援

3 強大的可伸縮性

4 多樣化和功能強大的開發工具支援

劣勢

1 由于跨平台功能,為極度的伸縮能力,極大增加了産品複雜度

2 記憶體消耗大

應用範圍

ASP是Microsoft開發的動态網頁語言,也繼承了微軟産品的一貫傳統——隻能運作于微軟的伺服器産品,IIS (Internet Information Server) (windows NT)和PWS(Personal Web Server)(windows 98)上。Unix下也有ChiliSoft的插件來支援ASP,但是ASP本身的功能有限,必須通過ASP+COM的組合來擴充,Unix下的COM實作起來非常困難。

PHP3可在Windows,Unix,Linux的Web伺服器上正常運作,還支援IIS,Apache等通用Web伺服器,使用者更換平台時,無需變換PHP3代碼,可即拿即用.

JSP同PHP3類似,幾乎可以運作于所有平台。如Win NT,Linux,Unix. NT下IIS通過一個插件,例如JRUN或者ServletExec,就能支援JSP。著名的Web伺服器Apache已經能夠支援JSP。由于Apache廣泛應用在NT、Unix和Linux上,是以JSP有更廣泛的運作平台。雖然現在NT作業系統占了很大的市場佔有率,但是在伺服器方面Unix的優勢仍然很大,而新崛起的Linux更是來勢不小。從一個平台移植到另外一個平台,JSP和JavaBean甚至不用重新編譯,因為Java位元組碼都是标準的與平台無關的。

性能比較

有人做過試驗,對這三種語言分别做循環性能測試及存取Oracle資料庫測試。

在循環性能測試中,JSP隻用了令人吃驚的四秒鐘就結束了20000*20000的循環。而ASP、PHP測試的是2000*2000循環(少一個數量級),卻分别用了63秒和84秒。(參考PHPLIB)。

資料庫測試中,三者分别對 Oracle 8 進行 1000 次 Insert,Update,Select,和Delete: Jsp 需要 13 秒,Php 需要 69 秒,ASP則 需要 73 秒。

前景分析

目前在國内PHP與ASP應用最為廣泛。而JSP由于是一種較新的技術,國内采用的較少。但在國外,JSP已經是比較流行的一種技術,尤其是電子商務類的網站,多采用JSP。

采用PHP的網站如新浪網(sina)、中國人(Chinaren)等,但由于PHP本身存在的一些缺點,使得它不适合應用于大型電子商務站點,而更适合一些小型的商業站點。

首先,PHP缺乏規模支援。其次,缺乏多層結構支援。對于大負荷站點,解決方法隻有一個:分布計算。資料庫、應用邏輯層、表示邏輯層彼此分開,而且同層也可以根據流量分開,組成二維陣列。而PHP則缺乏這種支援。還有上面提到過的一點,PHP提供的資料庫接口支援不統一,這就使得它不适合運用在電子商務中。

ASP和JSP則沒有以上缺陷,ASP可以通過Microsoft Windowsd的COM/DCOM獲得ActiveX規模支援,通過DCOM和Transcation Server獲得結構支援;JSP可以通過SUN Java的Java Class和EJB獲得規模支援,通過EJB/CORBA以及衆多廠商的Application Server獲得結構支援。

三者中,JSP應該是未來發展的趨勢。世界上一些大的電子商務解決方案提供商都采用JSP/Servlet。比較出名的如IBM的E-business,它的核心是采用JSP/Servlet的WebSphere;西方另外一個非常著名的電子商務軟體提供商,Intershop。它原來的産品Intershop1 2, 3, 4占據了主要的電子商務軟體份額。它們都是通過CGI來提供支援 的。但去年10月後它推出了Enfinity,一個采用JSP/Servlet的電子商務Application Server,而且聲言不再開發傳統軟體。

                                   jsp                     asp                 php

運作速度                快                   較快               較快

運作耗損               較小                  較大               較大

難易程度            容易掌握              簡單               簡單

運作平台        絕大部分均可      windows        windows/Unix

擴充性                    好                   較好                較差

安全性                    好                   較差                好

函數支援                多                   較少                多

資料庫支援             多                   多                  多

廠商支援                 多                   較少                較多

對XML支援              支援                 不支援              支援

對元件支援             支援                 支援                不支援

對分布式處理支援  支援                 支援                不支援

應用程度                 較廣                 較廣                較廣

總之

ASP,PHP,JSP三者都有相當數量的支援者,由此也可以看出三者各有所長。正在學習或使用動态頁面的朋友可根據三者的特點選擇一種适合自己的語言。