本篇將介紹ASP,PHP,JSP的差異和各自的功能。
推薦課程:PHP教學。
ASP全名ActiveServerPages,是一個WEB伺服器端的開發環境,利用它可以產生和執行動態的、互動的、高效能的WEB服務應用程式。 ASP採用腳本語言VBScript(Javascript)作為自己的開發語言。
PHP是一種跨平台的伺服器端的內嵌腳本語言。它大量地借用C,Java和Perl語言的語法,並耦合PHP自己的特性,使WEB開發者能夠快速地寫出動態產生頁面。它支援目前絕大多數資料庫。還有一點,PHP是完全免費的,不用花錢,你可以從PHP官方網站(http://www.php.net)自由下載。而且你可以不受限制地取得原始碼,甚至可以從中加進你自己需要的特色。
JSP是Sun公司推出的新一代網站開發語言,Sun公司借助自己在Java上的不凡造詣,將Java從Java應用程式和JavaApplet之外,又有新的碩果,就是JSP,JavaServerPage。 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.與瀏覽器無關(BrowserIndependence),客戶端只要使用可執行HTML碼的瀏覽器,即可瀏覽ActiveServerPages所設計的網頁內容。 ActiveServerPages所使用的腳本語言(VBScript、Jscript)均在WEB伺服器端執行,客戶端的瀏覽器不需要能夠執行這些腳本語言。
5.ActiveServerPages能與任何ActiveXscripting語言相容。除了可使用VBScript或JScript語言來設計外,還透過plug-in的方式,使用由第三方所提供的其它腳本語言,譬如REXX、Perl、Tcl等。腳本引擎是處理腳本程式的COM(ComponentObjectModel)物件。
6.可使用伺服器端的腳本來產生客戶端的腳本。
7.ActiveXServerComponents(ActiveX伺服器元件)具有無限可擴充性。可以使用VisualBasic、Java、VisualC++、COBOL等程式設計語言來寫你所需的ActiveXServerComponent。
PHP:
1資料庫連線
PHP可以編譯成具有與許多資料庫連結的函數。 PHP與MySQL是現在絕佳的群組組合。你也可以自己寫外圍的函數去間接存取資料庫。透過這樣的途徑當你更換使用的資料庫時,可以輕鬆地修改編碼以適應這樣的變化。 PHPLIB就是最常用的可以提供一般事務所需的一系列基庫。但PHP提供的資料庫介面支援彼此不統一,例如對Oracle,MySQL,Sybase的接口,彼此都不一樣。這也是PHP的一個弱點。
JSP:
1、將內容的產生和顯示進行分離
使用JSP技術,Web頁面開發人員可以使用HTML或XML標識來設計和格式化最終頁面。使用JSP標識或小腳本來產生頁面上的動態內容。產生內容的邏輯被封裝在識別和JavaBeans群元件中,並且捆綁在小腳本中,所有的腳本在伺服器端執行。如果核心邏輯被封裝在識別和Beans中,那麼其它人,如Web管理人員和頁面設計者,能夠編輯和使用JSP頁面,而不影響內容的產生。在伺服器端,JSP引擎解釋JSP標識,產生所要求的內容(例如,透過訪問JavaBeans群組元件,使用JDBC技術存取資料庫),並將結果以HTML(或XML)頁面的形式傳送回瀏覽器。這有助於作者保護自己的程式碼,而保證任何基於HTML的網頁瀏覽器的完全可用性。
2、強調可重複使用的群組元件
絕大多數JSP頁面依賴可重複使用且跨平台的元件(如:JavaBeans或EnterpriseJavaBeans)來執行應用程式所要求的更為複雜的處理。開發人員能夠共用和交換執行普通操作的元件,或使得這些元件為更多的使用者或使用者團體所使用。基於組件的方法加速了整體開發過程,並且使得各種群組織在他們現有的技能和優化結果的開發努力中得到平衡。
3、採用識別簡化頁面開發
Web頁面開發人員不會都是熟悉腳本語言的程式設計人員。 JavaServerPage技術封裝了許多功能,這些功能是在易用的、與JSP相關的XML標識中進行動態內容產生所需的。標準的JSP標識能夠存取和實例化JavaBeans元件,設定或檢索群組元件屬性,下載Applet,以及執行用其它方法更難於編碼和耗時的功能。
透過開發客製化識別庫,JSP技術是可以擴展的。今後,第三方開發人員和其它人員可以為常用功能建立自己的識別庫。這使得Web頁面開發人員能夠使用熟悉的工具和如同標識一樣的執行特定功能的構件來運作。
JSP技術很容易整合到多種應用體系結構中,以利用現存的工具和技巧,並擴展到能夠支援企業級的分散式應用。作為採用Java技術家族的一部分,以及Java2EE的一個成員,JSP技術能夠支援高度複雜的基於Web的應用。
由於JSP頁面的內建腳本語言是基於Java程式設計語言的,而且所有的JSP頁面都被編譯成為JavaServlet,JSP頁面具有Java技術的所有好處,包括健全的儲存管理和安全性。
作為Java平台的一部分,JSP擁有Java程式設計語言「一次編寫,各處執行」的特點。隨著越來越多的供貨商將JSP支援加入到他們的產品中,您可以使用自己選擇的伺服器和工具,修改工具或伺服器並不影響目前的應用。
應用程式範圍
ASP是Microsoft開發的動態網頁語言,也繼承了微軟產品的一貫傳統,只能執行於微軟的伺服器產品,IIS(InternetInformationServer)(windowsNT)和PWS(PersonalWebServer) (windows98)上。 Unix下方也有ChiliSoft的元件來支援ASP,但是ASP本身的功能有限,必須透過ASP+COM的群組合來擴充,Unix下的COM實現起來非常困難。
PHP3可在Windows,Unix,Linux的Web伺服器上正常執行,也支援IIS,Apache等一般的Web伺服器,使用者更換平台時,無需變換PHP3代碼,可即拿即用。
JSP同PHP3類似,幾乎可以執行於所有平台。如WinNT,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)。
資料庫測試中,三者分別對Oracle8進行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可以透過MicrosoftWindowsd的COM/DCOM獲得ActiveX規模支持,透過DCOM和TranscationServer獲得結構支持;JSP可以透過SUNJava的JavaClass和EJB獲得規模支持,透過EJB/CORBA以及眾多廠商的ApplicationServer獲得結構支援。
三者中,JSP應該是未來發展的趨勢。世界上一些大型的電子商務解決方案提供者都採用JSP/Servlet。比較出名的如IBM的E-business,它的核心是採用JSP/Servlet的WebSphere。它們都是透過CGI來提供支持的。但去年10月後它推出了Enfinity,一個採用JSP/Servlet的電子商務ApplicationServer,而且聲言不再開發傳統軟體。
總之,ASP,PHP,JSP三者都有相當數量的支持者,由此也可以看出三者各有所長。正在學習或使用動態頁面的朋友可根據三者的特點選擇適合自己的語言。
以上是jsp和asp和php的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!