在ASP 、PHP、JSP環境下,HTML代碼主要負責描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的 HTML頁面只依賴於Web服務器,而ASP 、PHP、JSP頁面須要附加的語言引擎分析和執行程序代碼。程序代碼的執行結果被從新嵌入到HTML代碼中,而後一塊兒發送給瀏覽器。ASP 、PHP、JSP三者都是面向Web服務器的技術,客戶端瀏覽器不須要任何附加的軟件支持。數據庫
2、技術特色:windows
(一)ASP的技術特色:數組
一、 使用VBScript 、JScript等簡單易懂的腳本語言,結合HTML代碼,便可快速地完成網站的應用程序。瀏覽器
二、無須compile編譯,容易編寫,可在服務器端直接執行。安全
三、使用普通的文本編輯器,如Windows的記事本,便可進行編輯設計。服務器
四、 與瀏覽器無關(Browser Independence), 客戶端只要使用可執行HTML碼的瀏覽器,便可瀏覽Active Server Pages所設計的網頁內容。Active ServerPages 所使用的腳本語言(VBScript 、 Jscript)均在WEB服務器端執行,客戶端的瀏覽器不須要可以執行這些腳本語言。編輯器
五、Active Server Pages能與任何ActiveX scripting語言兼容。除了可以使用VB Script或JScript語言來設計外,還經過plug-in的方式,使用由第三方所提供的其它腳本語言,譬如REXX 、Perl 、Tcl等。腳本引擎是處理腳本程序的COM(Component Object Model) 對象。分佈式
六、可以使用服務器端的腳原本產生客戶端的腳本。函數
七、ActiveX Server Components(ActiveX 服務器組件 )具備無限可擴充性。可使用Visual Basic 、Java 、Visual C++ 、COBOL等程序設計語言來編寫你所須要的ActiveX Server Component 。工具
(二)PHP的技術特色:
一、 數據庫鏈接
PHP能夠編譯成具備與許多數據庫相鏈接的函數。PHP與MySQL 是如今絕佳的羣組合。你還能夠本身編寫外圍的函數去間接存取數據庫。經過這樣的途徑當你更換使用的數據庫時,能夠輕鬆地修改編碼以適應這樣的變化。PHPLIB就是最經常使用的能夠提供通常事務須要的一系列基庫。但PHP提供的數據庫接口支持彼此不統一,好比對Oracle, MySQL ,Sybase的接口,彼此都不同。這也是PHP的一個弱點。
(三)JSP的技術特色:
一、將內容的產生和顯示進行分離
使用JSP技術,Web頁面開發人員可使用HTML或者XML標識來設計和格式化最終頁面。使用JSP標識或者小腳原本產生頁面上的動態內容。產生內容的邏輯被封裝在標識和JavaBeans羣組件中,而且捆綁在小腳本中,全部的腳本在服務器端執行。若是核心邏輯被封裝在標識和Beans中,那麼其它人,如Web管理人員和頁面設計者,可以編輯和使用JSP頁面,而不影響內容的產生。在服務器端,JSP引擎解釋JSP標識,產生所請求的內容(例如,經過存取JavaBeans羣組件,使用JDBC技術存取數據庫),而且將結果以HTML(或者XML)頁面的形式發送回瀏覽器。這有助於做者保護本身的代碼,而又保證任何基於HTML的Web瀏覽器的徹底可用性。
二、強調可重用的羣組件
絕大多數JSP頁面依賴於可重用且跨平臺的組件(如:JavaBeans或者Enterprise JavaBeans)來執行應用程序所要求的更爲複雜的處理。開發人員可以共享和交換執行普通操做的組件,或者使得這些組件爲更多的使用者或者用戶團體所使用。基於組件的方法加速了整體開發過程,而且使得各類羣組織在他們現有的技能和優化結果的開發努力中獲得平衡。
三、採用標識簡化頁面開發
Web頁面開發人員不會都是熟悉腳本語言的程序設計人員。JavaServer Page技術封裝了許多功能,這些功能是在易用的、與JSP相關的XML標識中進行動態內容產生所須要的。標準的JSP標識可以存取和實例化JavaBeans組件,設定或者檢索羣組件屬性,下載Applet,以及執行用其它方法更難於編碼和耗時的功能。經過開發定製化標識庫,JSP技術是能夠擴展的。從此,第三方開發人員和其它人員能夠爲經常使用功能創建本身的標識庫。這使得Web頁面開發人員可以使用熟悉的工具和如同標識同樣的執行特定功能的構件來工做。 JSP技術很容易整合到多種應用體系結構中,以利用現存的工具和技巧,而且擴展到可以支持企業級的分佈式應用。做爲採用Java技術家族的一部分,以及Java 2EE的一個成員,JSP技術可以支持高度複雜的基於Web的應用。因爲JSP頁面的內置腳本語言是基於Java程序設計語言的,並且全部的JSP頁面都被編譯成爲Java Servlet,JSP頁面就具備Java技術的全部好處,包括健壯的存儲管理和安全性。做爲Java平臺的一部分,JSP擁有Java程序設計語言「一次編寫,各處執行」的特色。隨着愈來愈多的供貨商將JSP支持加入到他們的產品中,您可使用本身所選擇的服務器和工具,修改工具或服務器並不影響目前的應用。
3、應用範圍:
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字節碼都是標準的與平臺無關的。
4、性能比較:
有人作過試驗,對這三種語言分別作迴圈性能測試及存取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的Web Sphere。它們都是經過CGI來提供支持的。但去年10月後它推出了Enfinity,一個採用JSP/Servlet的電子商務Application Server,並且聲言再也不開發傳統軟件。
總之,ASP,PHP,JSP三者都有至關數量的支持者,由此也能夠看出三者各有所長。正在學習或使用動態頁面的朋友可根據三者的特色選擇一種適合本身的語言。