phpaspjsp比較
A. php,jsp,asp三者優缺點...
php優點
1. 跨平台,性能優越,跟Linux/Unix結合別跟Windows結合性能強45%,並且和很多免費的平台結合非常省錢,比如LAMP(Linux
/Apache/Mysql/PHP)或者FAMP(FreeBSD/Apache/Mysql/PHP)結合,或者數據應用夠大可以考慮換
PostgreSQL或者Oracle,支持N種資料庫。(N >= 10)
2. 語法簡單,如果有學習C和Perl的很容易上手,並且跟ASP有部分類似。有成熟的開發工具,比如NuPHPed,或者Zend
Studio等等,再Linux平台下可以使用Eclipse等等。
3. 目前主流技術都支持,比如WebService、Ajax、XML等等,足夠應用。
4. 有比較完整的支持,比如使用ADODB或者PEAR::DB做資料庫抽象層,用Smarty或者smart template做模板層,如果是PHP
5.1的話,還能夠使用PDO(PHP Data Object)來訪問資料庫。
5. 有很多成熟的框架,比如支持MVC的框架:phpMVC,支持類似ASP.net的事件驅動的框架:Prado,支持類似Ruby On
Rails的快速開發的框架:Cake等等,足夠滿足你的應用需求。
6. PHP 5已經有成熟的面向對象體系,能夠適應基本的面向對象要求。適合開發大型項目。
7. 有成熟的社區來支持PHP的開發。
8.
目前已經很多大型應用都是使用PHP,比如淘寶網、Yahoo、163、Sina等等大型門戶,很多選用PHP來作為他們的開發語言,所以大型門戶都能夠選用它,我想足夠能夠你的使用了。
9. 有很多開源的框架或開源的系統可以使用,比如比較知名的開源框架有Zend
Framework、CakePHP、CodeIgniter、symfony等,開源論壇有Discuz!、Phpwind等,開源博客
WordPress,開源網店系統如Ecshop、ShopEx等,開源的SNS系統如UCHome、ThinkSNS等。
php缺點
1.對多線程支持不太好,大多數時候我們只能簡單的模擬去實現的。
2.語法不太嚴謹,比如變數不需要定義就可以使用,在c,java,c++中變數是必須先定義以後才可以使用的。
3.也許有經驗的PHP程序員最感到痛苦的地方是PHP的解釋運行機制。這種運行機制使得每個PHP頁面被解釋執行後,所有的相關資源都會被回收。也就是說,PHP在語言級別上沒有辦法讓某個對象常駐內存。在PHP中,所有的變數都是頁面級的,無論是全局變數,還是類的靜態成員,都會在頁面執行完畢後被清空。以JSP為例,在JSP中,Java
Bean的scope有四種有效值:Page、Application、Session、Request,分別對應頁面、程序、會話、請求四種生存期。但在PHP中,只有Page一種生存期。
JSP的優勢
(1)一次編寫,到處運行。在這一點上Java比PHP更出色,除了系統之外,代碼不用做任何更改。
(2)系統的多平台支持。基本上可以在所有平台上的任意環境中開發,在任意環境中進行系統部署,在任意環境中擴展。相比ASP/PHP的局限性是顯而易見的。
(3)強大的可伸縮性。從只有一個小的Jar文件就可以運行Servlet/JSP,到由多台伺服器進行集群和負載均衡,到多台Application進行事務處理,消息處理,一台伺服器到無數台伺服器,Java顯示了一個巨大的生命力。
(4)多樣化和功能強大的開發工具支持。這一點與ASP很像,Java已經有了許多非常優秀的開發工具,而且許多可以免費得到,並且其中許多已經可以順利的運行於多種平台之下。
JSP的劣勢
(1) 與ASP一樣,Java的一些優勢正是它致命的問題所在。正是由於為了跨平台的功能,為了極度的伸縮能力,所以極大的增加了產品的復雜性。
(2)
Java的運行速度是用class常駐內存來完成的,所以它在一些情況下所使用的內存比起用戶數量來說確實是「最低性能價格比」了。從另一方面,它還需要硬碟空間來儲存一系列的。java文件和。class文件,以及對應的版本文件。
ASP的特點:
1、任何開發工具皆可發展ASP
只要使用一般的文書編輯程序,如Windows記事本,就可以編輯。當然,其他網頁發展工具,例如,FrontPage Express、
FrontPage等也都可以;不過還是建議你用記事本來寫,既省錢又方便,若是使用那些所見即所得的網頁編輯來寫ASP,可能會發生一些意想不到的離奇狀態。
2、通吃各家瀏覽器
由於ASP程序是在網路伺服器端中執行,執行結果所產生的HTML文件適用於不同的瀏覽器。
3、語言相容性高
ASP與所有的ActiveX Script語言都相容,除了可結合HTML,VBScript、Java Script、Active
X伺服器組件來設計外,並可經由「plug-In(外掛組件模組)的方式,使用其他廠商(Third Party)所提供的語言。
4、隱密安全性高
如果我們在瀏覽器中直接查看網頁的原始代碼,就只能看到HTML文件,原始的ASP程序代碼是看不到的!這是因為ASP程序先於網站服務(Web
Server)端執行後,將結果轉換成標准HTML文件,再傳送到客戶端(Client)的瀏覽器上,因此,我們所辛苦撰寫的ASP程序並不會輕易地被看見進而被盜用。
5、易於操控資料庫
ASP可以輕易地通過ODBC(Open Database
Connectivity)驅動程序連接各種不同的資料庫,例如:Acess、Foxpro、dBase、Oracle等等,另外,ASP亦可將「文本文件」或是」Excel」
文件當成資料庫用。
6、面向對象學習容易
ASP具備有面向對象(Object-Oriented)功能,學習容易,ASP提供了五種方便能力強大的內建對象:Request、Response、Sever、Application以及Session,同時,若使用ASP內建的「Application」對象或」Session」對象所撰寫出來的ASP程序可以在多個網頁之間暫時保存必要的信息。
B. Asp、Php、Jsp區別
ASP全名Active
Server
Pages,是一個WEB伺服器端的開發環境,利用它可以產生和執行動態的、互動的、高性能的WEB服務應用程序。ASP採用腳本語言VBScript(Java
script)作為自己的開發語言。
PHP是一種跨平台的伺服器端的嵌入式腳本語言。它大量地借用C,Java和Perl語言的語法,
並耦合PHP自己的特性,使WEB開發者能夠快速地寫出動態產生頁面。它支持目前絕大多數資料庫。還有一點,PHP是完全免費的,不用花錢,你可以從PHP官方站點(http:
//www.php.net)自由下載。而且你可以不受限制地獲得源碼,甚至可以從中加進你自己需要的特色。
JSP是Sun公司推出的新一代開發語言,Sun公司藉助自己在Java上的不凡造詣,將Java從Java應用程序和Java
Applet之外,又有新的碩果,就是JSP,Java
Server
Page。JSP可以在Serverlet和JavaBean的支持下,完成功能強大的站點程序。
ASP.NET
ASP
最新的版本
ASP.NET
並不完全與
ASP
早期的版本後向兼容,因為該軟體進行了完全重寫。早期的
ASP
技術實際上與
PHP
的共同之處比與ASP.NET
與
PHP的共同之處多得多,ASP.NET
是用於構建
Web
應用程序的一個完整的框架。這個模型的主要特性之一是選擇編程語言的靈活性。ASP.NET
可以使用腳本語言(如
JScript、VBScript、Perlscript
和
Python)以及編譯語言(如
VB、C#、C、Cobol、Smalltalk
和
Lisp)。新框架使用通用的語言運行環境
(CLR);先將您語言的源代碼編譯成
Microsoft
中間語言代碼,然後
CLR
執行這些代碼。
這個框架還提供真正的面向對象編程
(OOP),並支持真正的繼承、多態和封裝。.NET
類庫根據特定的任務(例如,使用
XML
或圖像處理)組織成可繼承的類。
除了編程語言和方法之外,當您用
ASP.NET
編程時,可以用
ODBC
來集成資料庫;ODBC
提供了一組一致的調用函數來訪問您的目標資料庫。
優勢和弱點:
ASP.NET
的優勢很明顯在於它簡潔的設計和實施。這是面向對象的編程人員的夢想:語言靈活,並支持復雜的面向對象特性。在這種意義下,它真正能夠與編程人員現有的技能進行互操作。
ASP.NET
的另一個優勢是其開發環境。例如,開發人員可以使用
WebMatrix(一個社區支持的工具)、Visual
Studio
.NET
或各種
Borland
工具(如
Delphi
和
C++
Builder)。例如,Visual
Studio
允許設置斷點、跟蹤代碼段和查看調用堆棧。總而言之,它是一個復雜的調試環境。許多其他第三方的
ASP.NET
IDE
解決方案也將必然出現。
但是ASP.NET強健性,是以損失效率為代價的。ASP.NET
在內存使用和執行時間方面耗費非常大,這大部分歸因於較長的代碼路徑。對基於
Web
的應用程序,這些局限可能是一個嚴重的問題,因為在
Web
上,您的應用程序可能擴展為每秒成千上萬的用戶。內存使用率還可能成為
Web
伺服器上的一個問題。
這幾個都提供在
HTML代碼中混合某種程序代碼、由語言引擎解釋執行程序代碼的能力。但JSP代碼被編譯成
Servlet並由Java虛擬機解釋執行,這種編譯操作僅在對JSP頁面的第一次請求時發生。在ASP
、PHP、JSP環境下,HTML代碼主要負責描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的
HTML頁面只依賴於Web伺服器,而ASP
、PHP、JSP頁面需要附加的語言引擎分析和執行程序代碼。程序代碼的執行結果被重新嵌入到HTML代碼中,然後一起發送給瀏覽器。ASP
、PHP、JSP三者都是面向Web伺服器的技術,客戶端瀏覽器不需要任何附加的軟體支持。
性能比較:
有人做過試驗,對這ASP、PHPP、JSP三種語言分別做迴圈性能測試及存取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,.Net都有相當數量的支持者,由此也可以看出各有所長。正在學習或使用動態頁面的朋友可根據他們的特點選擇一種適合自己的語言。
參考資料:www.laoqiang.net