萬類
其實哪個好,關(guān)鍵在於寫程序的人的功力好壞,所以沒有誰好誰不好! 但還是有些使用需求的選擇來決定使用那種工具語言。如果你想要找資源豐富、唾手可得的現(xiàn)成軟件,那 PHP 便可以選擇,且建構(gòu)環(huán)境也可較容易得到支援,開發(fā)也較容易迅速。 如果你的需求可能是需要應(yīng)付C10K問題(即「在同時連接到服務(wù)器的客戶端數(shù)量超過10000 個的環(huán)境中,即便硬件性能足夠, 依然無法正常提供服務(wù)」),那 JSP 便是不錯的選擇! PHP 或 JSP 都是從 C 語言發(fā)展出來的,所以語法大同小異,最大差別在后端的服務(wù)器環(huán)境,而速度快慢也不是簡単區(qū)分出來,主要還得看應(yīng)用的模式。 所以簡言之,在客戶端有近 10K 人次同時對系統(tǒng)作處理請求時,使用 PHP 一定無法應(yīng)付!但客戶端沒那么多人次(數(shù)十或數(shù)百)同時對系統(tǒng)作處理請求,其實 PHP 效率不會輸給 JSP。 PHP 與 JSP 也可以依不同應(yīng)用而搭配使用,不見得只能選其一,我個人特別喜愛把 JSP 用來開發(fā) API 使用,但 Web UI 則以 PHP 為主。能夠善用工具者,才是真正的大贏家!
廖大興
現(xiàn)在InterNet 越來越成為生活中不可或缺的一部分,制作網(wǎng)頁的動態(tài)語言也越來越多,主要流行的有以下幾種,ASP,PHP 和 JSP,他們之間互有優(yōu)缺點,筆者在工作實踐中對他們作了一下比較淺顯的比較。 ASP 由于其簡單功能實用等方面受到廣大朋友的喜歡,再加上MS的強有力支持,可以說是時下作站點最為流行的語言,他借助MS的Com+ 技術(shù),幾乎可以實現(xiàn)在C/S 能夠?qū)崿F(xiàn)的所有功能,可以說確實具有相當?shù)母偁幜ΑSp的代碼實現(xiàn)也很簡單,MS 提供的InterDev 在RAD 的基礎(chǔ)上,使Asp 的開發(fā)一夜之間火遍了大江南北。但是他的缺點是,由于MS 長久以來的霸道作風,他只能運行在MS 的平臺上,因此在關(guān)鍵性的應(yīng)用上使人難以輕易接受。 PHP 則市秉承Linux 的GNU 風格,借助與源碼公開,使他迅速成為世界上目前應(yīng)用最為廣泛的站點制作語言之一。借助與C++的形式,引用類的概念,使得代碼的可重復(fù)性應(yīng)用便的異常簡單。加上他和Linux,Apache 和MySql 的緊密配合,關(guān)鍵性的應(yīng)用也沒有問題(有名的Sina就是采用Php)。但是他有一個比較大的麻煩,就是沒有一個非常有實力的公司專門給他做支持,因此相關(guān)的學習資料比較少,目前在國內(nèi)使用他的站點比較多,但是專門講解他的站點就比較少。給初學者帶來了很多的麻煩。 JSP 是Sun公司推出的新一代站點開發(fā)語言,他完全解決了目前ASP,PHP的一個通病--腳本級執(zhí)行(據(jù)說PHP4 也已經(jīng)在Zend 的支持下,實現(xiàn)編譯運行).Sun 公司借助自己在Java 上的不凡造詣,將Java 從Java 應(yīng)用程序 和 Java Applet 之外,又有新的碩果,就是Jsp--Java Server Page。Jsp 可以在Serverlet和JavaBean的支持下,完成功能強大的站點程序。 我在實際工作中,就這三種語言的性能進行了比較 首先進行的是循環(huán)性能測試首先測試的是Jsp測試采用 20000*20000 次循環(huán)運算(有沒有搞錯,這么多),測試結(jié)果另人不可思議,該程序只用了不到 4 秒的時間就運行結(jié)束了。(沒有搞錯吧),程序代碼如下: <jsp:useBean id='clock' scope='page' class='dates.JspCalendar' type="dates.JspCalendar"/> <jsp:getProperty name="clock" property="time" /> <% int i=0; int j=0; int k=0; for(i=0;i<20000;i++){ for(j=0;j<20000;j++){ } } %> <jsp:useBean id='clock1' scope='page' class='dates.JspCalendar' type="dates.JspCalendar"/> <jsp:getProperty name="clock1" property="time" /> 下一步測試的是 PHP,最初也準備測試 20000*20000次,但是不管把程序最大運行時間調(diào)的再大,也無法運行結(jié)束,因此改為 2000*2000 ,運行時間竟然達到 84 秒,程序代碼如下: <? $TTime=date("Y-n-d"). " " . date("H:i:s"); echo $TTime; echo "<br>"; for($i=0;$i<1000;$i++){ for($j=0;$j<1000;$j++){ } } $TTime=date("Y-n-d"). " " . date("H:i:s"); echo $TTime; ?> 最后進行的是Asp 的測試,測試的循環(huán)也是 2000*2000(幾個0可要看清楚),運行時間是 63 秒,程序代碼如下: <% response.write now response.write "<br>" for i=0 to 2000 for j=0 to 2000 next next response.write now %> 另外,我也對數(shù)據(jù)庫連接作了測試,由于Jsp 在連接數(shù)據(jù)庫時需要通過 JDBC,因此必須專門為此作一個連接數(shù)據(jù)庫的JavaBean,為了簡單起見,我只把測試結(jié)果寫出來,想要代碼的朋友,和我聯(lián)系! 對 Oracle 8 進行 1000 次 Insert,Update,Select,和Delete Jsp 需要 13 秒 Php 需要 69 秒 ASP 需要 73 秒
王徵
jsp,php可以動態(tài)連接數(shù)據(jù)庫,但是最終都是由服務(wù)器解析成html的。html是一切網(wǎng)頁語言的基礎(chǔ)。就是說,jsp,php可以嵌套在html中。具體看如下解釋:html是基本的;jsp,asp,php文檔都以html為基礎(chǔ),只是用程序代碼動態(tài)輸出html代碼,特點是同一文檔根據(jù)不同情況可以輸出不同的html代碼。jsp,asp,php文檔都要經(jīng)過編譯后生成html代碼,也就是我們在瀏覽器中看到的結(jié)果,不同之處在于jsp是一般瀏覽器都能編譯的,asp和php需要服務(wù)器支持,另外cgi也需要服務(wù)器支持。從編程角度看,asp和php都可以支持多充語言編程,可以javascript,vbscript或者perl等等,甚至可以混合語言編程。不能簡單從擴展名判斷其文檔類型!應(yīng)該從服務(wù)器和源代碼來判斷。里面有<%...%>的一般是asp文檔,里面有$的一般是php文檔。由于一般asp和php都有限制,所以在瀏覽器中采用查看源代碼或者直接下載該文檔的方法都是看不到真正源代碼的,只能看到源代碼運行后生成的html,真正得到源代碼恐怕只能攻擊并破解服務(wù)器:(aspx與asp類似,只是支持.net,在開發(fā)中更方便,功能更強大。至于數(shù)據(jù)庫技術(shù)的使用,則是另一話題,不論jsp,asp,php都可以使用數(shù)據(jù)庫,考慮到保護源代碼,一般都用asp和php,但這不是本質(zhì)差別,因為不論jsp,asp,php都可以不使用數(shù)據(jù)庫。
雙身教主
JSP ASP PHP 運行速度 快 較快 較快 運行耗損 較小 較大 較大 難易程度 容易掌握 簡單 簡單 運行平臺 絕大部分平臺均可 Windows平臺 Windows/UNIX平臺 擴展性 好 較好 較差 安全性 好 較差 好 函數(shù)性 多 較少 多 數(shù)據(jù)庫支持 多 多 多 廠商支持 多 較少 較多 對XML的支持 支持 不支持 支持 對組件的支持 支持 支持 不支持 對分布式處理的支持 支持 支持 不支持 應(yīng)用程序 較廣 較廣 較廣----------------------------------------------------轉(zhuǎn)載: 慢慢看吧! ASP、JSP與PHP的比較 目前,最常用的三種動態(tài)網(wǎng)頁語言有ASP(Active Server Pages),JSP(Java Server Pages), PHP (Hypertext Preprocessor)。 簡 介 ASP全名Active Server Pages,是一個WEB服務(wù)器端的開發(fā)環(huán)境, 利用它可以產(chǎn)生和運 行動態(tài)的、交互的、高性能的WEB服務(wù)應(yīng)用程序。ASP采用腳本語言VB Script(Java script )作為自己的開發(fā)語言。 PHP是一種跨平臺的服務(wù)器端的嵌入式腳本語言. 它大量地借用C,Java和Perl語言的語法 , 并耦合PHP自己的特性,使WEB開發(fā)者能夠快速地寫出動態(tài)生成頁面.它支持目前絕大多數(shù)數(shù) 據(jù)庫。還有一點,PHP是完全免費的,不用花錢,你可以從PHP官方站點(http://www.php.ne t)自由下載。而且你可以不受限制地獲得源碼,甚至可以從中加進你自己需要的特色。 JSP 是Sun公司推出的新一代站點開發(fā)語言,他完全解決了目前ASP,PHP的一個通?。? 腳本級執(zhí)行(據(jù)說PHP4 也已經(jīng)在Zend 的支持下,實現(xiàn)編譯運行).Sun 公司借助自己在Jav a 上的不凡造詣,將Java 從Java 應(yīng)用程序 和 Java Applet 之外,又有新的碩果,就是Js p--Java Server Page。Jsp 可以在Serverlet和JavaBean的支持下,完成功能強大的站點 程序。 三者都提供在 HTML 代碼中混合某種程序代碼、由語言引擎解釋執(zhí)行程序代碼的能力。 但JSP代碼被編譯成 Servlet 并由 Java 虛擬機解釋執(zhí)行,這種編譯操作僅在對 JSP 頁面的 第一次請求時發(fā)生。在 ASP 、PHP、JSP 環(huán)境下, HTML 代碼主要負責描述信息的顯示樣式 ,而程序代碼則用來描述處理邏輯。普通的 HTML 頁面只依賴于 Web 服務(wù)器,而 ASP 、PH P、JSP 頁面需要附加的語言引擎分析和執(zhí)行程序代碼。程序代碼的執(zhí)行結(jié)果被重新嵌入到 HTML 代碼中,然后一起發(fā)送給瀏覽器。 ASP 、PHP、 JSP三者都是面向 Web 服務(wù)器的技術(shù) ,客戶端瀏覽器不需要任何附加的軟件支持。 技術(shù)特點 ASP: 1. 使用 VBScript 、 JScript 等簡單易懂的腳本語言,結(jié)合 HTML 代碼,即可快速地完成 網(wǎng)站的應(yīng)用程序。 2. 無須 compile 編譯,容易編寫,可在服務(wù)器端直接執(zhí)行。 3. 使用普通的文本編輯器,如 Windows 的記事本,即可進行編輯設(shè)計。 4. 與瀏覽器無關(guān) (Browser Independence), 用戶端只要使用可執(zhí)行 HTML 碼的瀏覽器,即 可瀏覽 Active Server Pages 所設(shè)計的網(wǎng)頁內(nèi)容。 Active Server Pages 所使用的腳本語 言 (VBScript 、 Jscript) 均在 WEB 服務(wù)器端執(zhí)行,用戶端的瀏覽器不需要能夠執(zhí)行這些 腳本語言。 5.Active Server Pages 能與任何 ActiveX scripting 語言相容。除了可使用 VBScript 或 JScript 語言來設(shè)計外,還通過 plug-in 的方式,使用由第三方所提供的其他腳本語言 ,譬如 REXX 、 Perl 、 Tcl 等。腳本引擎是處理腳本程序的 COM(Component Object Mod el) 物件。 6. 可使用服務(wù)器端的腳本來產(chǎn)生客戶端的腳本。 7.ActiveX Server Components(ActiveX 服務(wù)器元件 ) 具有無限可擴充性??梢允褂? Vi sual Basic 、 Java 、 Visual C++ 、 COBOL 等編程語言來編寫你所需要的ActiveX Se rver Component 。 PHP: 1.數(shù)據(jù)庫連接 PHP可以編譯成具有與許多數(shù)據(jù)庫相連接的函數(shù)。PHP與MySQL是現(xiàn)在絕佳的組合。你還可 以自己編寫外圍的函數(shù)取間接存取數(shù)據(jù)庫。通過這樣的途徑當你更換使用的數(shù)據(jù)庫時,可以 輕松地更改編碼以適應(yīng)這樣的變。PHPLIB就是最常用的可以提供一般事務(wù)需要的一系列基庫 。但PHP提供的數(shù)據(jù)庫接口支持彼此不統(tǒng)一,比如對Oracle, MySQL, Sybase的接口,彼此 都不一樣。這也是PHP的一個弱點。 2.面向?qū)ο缶幊? PHP提供了類和對象?;趙eb的編程工作非常需要面向?qū)ο缶幊棠芰?。PHP支持構(gòu)造器、 提取類等。 JSP: 1.將內(nèi)容的生成和顯示進行分離 使用JSP技術(shù),Web頁面開發(fā)人員可以使用HTML或者XML標識來設(shè)計和格式化最終頁面。使 用JSP標識或者小腳本來生成頁面上的動態(tài)內(nèi)容。生成內(nèi)容的邏輯被封裝在標識和JavaBeans 組件中,并且捆綁在小腳本中,所有的腳本在服務(wù)器端運行。如果核心邏輯被封裝在標識和 Beans中,那么其他人,如Web管理人員和頁面設(shè)計者,能夠編輯和使用JSP頁面,而不影響內(nèi) 容的生成。 在服務(wù)器端,JSP引擎解釋JSP標識和小腳本,生成所請求的內(nèi)容(例如,通過訪問Java Beans組件,使用JDBCTM技術(shù)訪問數(shù)據(jù)庫,或者包含文件),并且將結(jié)果以HTML(或者XML) 頁面的形式發(fā)送回瀏覽器。這有助于作者保護自己的代碼,而又保證任何基于HTML的Web瀏覽 器的完全可用性。 2.強調(diào)可重用的組件 絕大多數(shù)JSP頁面依賴于可重用的,跨平臺的組件(JavaBeans或者Enterprise JavaBea nsTM組件)來執(zhí)行應(yīng)用程序所要求的更為復(fù)雜的處理。開發(fā)人員能夠共享和交換執(zhí)行普通操 作的組件,或者使得這些組件為的使用者或者客戶團體所使用?;诮M件的方法加速了 總體開發(fā)過程,并且使得各種組織在他們現(xiàn)有的技能和優(yōu)化結(jié)果的開發(fā)努力中得到平衡。 3.采用標識簡化頁面開發(fā) Web頁面開發(fā)人員不會都是熟悉腳本語言的編程人員。JavaServer Page技術(shù)封裝了許多 功能,這些功能是在易用的、與JSP相關(guān)的XML標識中進行動態(tài)內(nèi)容生成所需要的。標準的JS P標識能夠訪問和實例化JavaBeans組件,設(shè)置或者檢索組件屬性,下載Applet,以及執(zhí)行用 其他方法更難于編碼和耗時的功能。 通過開發(fā)定制化標識庫,JSP技術(shù)是可以擴展的。今后,第三方開發(fā)人員和其他人員可以 為常用功能創(chuàng)建自己的標識庫。這使得Web頁面開發(fā)人員能夠使用熟悉的工具和如同標識一樣 的執(zhí)行特定功能的構(gòu)件來工作。 JSP技術(shù)很容易整合到多種應(yīng)用體系結(jié)構(gòu)中,以利用現(xiàn)存的工具和技巧,并且擴展到能夠 支持企業(yè)級的分布式應(yīng)用。作為采用Java技術(shù)家族的一部分,以及Java 2(企業(yè)版體系結(jié)構(gòu) )的一個組成部分,JSP技術(shù)能夠支持高度復(fù)雜的基于Web的應(yīng)用。 由于JSP頁面的內(nèi)置腳本語言是基于Java編程語言的,而且所有的JSP頁面都被編譯成為 Java Servlet,JSP頁面就具有Java技術(shù)的所有好處,包括健壯的存儲管理和安全性。 作為Java平臺的一部分,JSP擁有Java編程語言“一次編寫,各處運行”的特點。隨著越 來越多的供應(yīng)商將JSP支持添加到他們的產(chǎn)品中,您可以使用自己所選擇的服務(wù)器和工具,更 改工具或服務(wù)器并不影響當前的應(yīng)用。 應(yīng)用范圍 ASP是Microsoft開發(fā)的動態(tài)網(wǎng)頁語言,也繼承了微軟產(chǎn)品的一貫傳統(tǒng)——只能運行于微軟 的服務(wù)器產(chǎn)品,IIS (Internet Information Server) (windows NT)和PWS(Personal Web Se rver)(windows 98)上。Unix下也有ChiliSoft的插件來支持ASP,但是ASP本身的功能有限, 必須通過ASP+COM的組合來擴充,Unix下的COM實現(xiàn)起來非常困難。 PHP3可在Windows,Unix,Linux的Web服務(wù)器上正常運行,還支持IIS,Apache等通用Web服務(wù)器 ,用戶更換平臺時,無需變換PHP3代碼,可即拿即用. JSP同PHP3類似,幾乎可以運行于所有平臺。如Win NT,Linux,Unix. NT下IIS通過一個插 件,例如JRUN或者ServletExec,就能支持JSP。著名的Web服務(wù)器Apache已經(jīng)能夠支持JSP。 由于Apache廣泛應(yīng)用在NT、Unix和Linux上,因此JSP有更廣泛的運行平臺。雖然現(xiàn)在NT操作 系統(tǒng)占了很大的市場份額,但是在服務(wù)器方面Unix的優(yōu)勢仍然很大,而新崛起的Linux更是來 勢不小。從一個平臺移植到另外一個平臺,JSP和JavaBean甚至不用重新編譯,因為Java字節(jié) 碼都是標準的與平臺無關(guān)的。 性能比較 有人做過試驗,對這三種語言分別做循環(huán)性能測試及存取Oracle數(shù)據(jù)庫測試。 在循環(huán)性能測試中,JSP只用了令人吃驚的四秒鐘就結(jié)束了20000*20000的循環(huán)。而ASP 、PHP測試的是2000*2000循環(huán)(少一個數(shù)量級),卻分別用了63秒和84秒。(參考PHPLIB) 。 數(shù)據(jù)庫測試中,三者分別對 Oracle 8 進行 1000 次 Insert,Update,Select,和Delete : Jsp 需要 13 秒,Php 需要 69 秒,ASP則 需要 73 秒。 前景分析 目前在國內(nèi)PHP與ASP應(yīng)用最為廣泛。而JSP由于是一種較新的技術(shù),國內(nèi)采用的較少。但在 國外,JSP已經(jīng)是比較流行的一種技術(shù),尤其是電子商務(wù)類的網(wǎng)站,多采用JSP。 采用PHP的網(wǎng)站如新浪網(wǎng)(sina)、中國人(Chinaren)等,但由于PHP本身存在的一些缺 點,使得它不適合應(yīng)用于大型電子商務(wù)站點,而更適合一些小型的商業(yè)站點。 首先,PHP缺乏規(guī)模支持。其次,缺乏多層結(jié)構(gòu)支持。對于大負荷站點,解決方法只有一 個:分布計算。數(shù)據(jù)庫、應(yīng)用邏輯層、表示邏輯層彼此分開,而且同層也可以根據(jù)流量分開 ,組成二維陣列。而PHP則缺乏這種支持。還有上面提到過的一點,PHP提供的數(shù)據(jù)庫接口支 持不統(tǒng)一,這就使得它不適合運用在電子商務(wù)中。 ASP和JSP則沒有以上缺陷,ASP可以通過Microsoft Windowsd的COM/DCOM獲得ActiveX規(guī) 模支持,通過DCOM和Transcation Server獲得結(jié)構(gòu)支持;JSP可以通過SUN Java的Java Clas s和EJB獲得規(guī)模支持,通過EJB/CORBA以及眾多廠商的Application Server獲得結(jié)構(gòu)支持。 三者中,JSP應(yīng)該是未來發(fā)展的趨勢。世界上一些大的電子商務(wù)解決方案提供商都采用J SP/Servlet。比較出名的如IBM的E-business,它的核心是采用JSP/Servlet的WebSphere; 西方另外一個非常著名的電子商務(wù)軟件提供商,Intershop。它原來的產(chǎn)品Intershop1 2, 3 , 4占據(jù)了主要的電子商務(wù)軟件份額。它們都是通過CGI來提供支持 的。但去年10月后它推出 了Enfinity,一個采用JSP/Servlet的電子商務(wù)Application Server,而且聲言不再開發(fā)傳統(tǒng) 軟件。 總之 ASP,PHP,JSP三者都有相當數(shù)量的支持者,由此也可以看出三者各有所長。正在學習或 使用動態(tài)頁面的朋友可根據(jù)三者的特點選擇一種適合自己的語言。
薩守堅
要看做什么,php語言比較靈活一點,屬于入門容易,但是想提升有專點困難。很多東西是要自己屬寫的,包括php模板引擎,框架之類的,別人寫的可能不太符合這個項目要求,很多情況要自己寫。java不像php這種弱語言類型。規(guī)范比較嚴格,但是像做金融這一塊的話,要求是java+oracle。至于原因在此就不多說了。相比較而言PHP更好做一點。
頑石大師
jsp這是個很大的整套解決方案,常用來代指view層的jsp【允許其他的頁面展示,甚至不是jsp】,Model的hibernate,ibatis,Controller層面的struts,spring【這兩個可不僅僅是controller,這兩個可以統(tǒng)籌全局】這一套整體。php嘛,分的就不那么清楚,他追求的是簡單快捷,做個人應(yīng)用和一些簡單的商業(yè)應(yīng)用非常棒,這是jsp+struts/sping+hibernate/ibatis無法匹敵的,但是企業(yè)級綜合應(yīng)用,php能不能做都是個問題??偨Y(jié)一下:基本應(yīng)用,幾乎一樣;高級應(yīng)用,各有專攻。
蘭方方
就是PHP語言和JSP語言的區(qū)別。PHP是一種快速免費易學的WEB腳本語言,不需要編譯即可運行,是在頁面被訪問時由php編譯器進行解釋執(zhí)行的。JSP是基于Java的WEB腳本語言,在首次運行時需要編譯,以后就不需要二次編譯了。但是綜合考慮PHP優(yōu)于JSP,JSP多用在大型Java項目的網(wǎng)頁端呈現(xiàn),現(xiàn)在已經(jīng)很少有人JSP了。相對來說,PHP是一門相對獨立的語言,而JSP只是Java開發(fā)人員順便掌握的東西,在招聘求職的時候一般只有PHP和Java程序員的招聘,并不會招聘JSP程序員。相對來說ASP更近似JSP,同樣的,招聘職位只有.Net程序員而沒有ASP程序員。
金菩提
要看做什么,php語言比較靈活一點,屬于入門容易,但是想提升有點困難。很多東西是要自己寫的,包括php模板引擎,框架之類的,別人寫的可能不太符合這個項目要求,很多情況要自己寫。java不像php這種弱語言類型。規(guī)范比較嚴格,但是像做金融這一塊的話,要求是java+oracle。至于原因在此就不多說了。相比較而言PHP更好做一點。
元覺禪師
PHP程序的優(yōu)點:1.首先他是免費的,對于許多要考慮運行成本的商業(yè)望站來說,尤為重要2.開放源碼,所有的源碼和穩(wěn)當都可以買南非復(fù)制、編譯和傳播。3.多平臺支持,可以運行在UNIX、Linux或Windows操作系統(tǒng)下4.由于在服務(wù)器端運行,是將PHP文件解釋成標準的HTML穩(wěn)當發(fā)送過去,因此不受客戶端瀏覽器的限制5.效率高,PHP占用的系統(tǒng)資源叫少,執(zhí)行速度教快PHP程序的缺點:1.因為沒有大公司的支持,可能前途不如ASP、JSP輝煌2.運行環(huán)境安裝相對教復(fù)雜3.相對ASP來說,學習起來可能要稍微復(fù)雜些JSP程序的優(yōu)點:1.多平臺支持,可以在幾乎所有的服務(wù)器系統(tǒng)上運行。無論在哪里都可以迅速轉(zhuǎn)化使用2.編譯后運行,能夠大大提高執(zhí)行效率3.JSP采用JAVA技術(shù),而JAVA作為一個成熟的跨平臺的程序設(shè)計語言,幾乎可以實現(xiàn)任何想要實現(xiàn)的功能,對于眾多的已有的JAVA程序員來說,學習起來非常容易JSP程序的缺點:1.開發(fā)運行環(huán)境相對于ASP來說,稍顯復(fù)雜2.相對 于ASP的VBScript腳本語言來說,JAVA學習起來稍難些