ASP.net,php,jsp三者都提供在?HTML代碼中混合某種程序代碼、由語(yǔ)言引擎解釋執(zhí)行程序代碼的能力。但JSP代碼被編譯成?Servlet并由Java虛擬機(jī)解釋執(zhí)行,這種編譯操作僅在對(duì)JSP頁(yè)面的第一次請(qǐng)求時(shí)發(fā)生。在ASP.net、PHP、JSP環(huán)境下,HTML代碼主要負(fù)責(zé)描述信息的顯示樣式,而程序代碼則用來(lái)描述處理邏輯。普通的?HTML頁(yè)面只依賴于Web服務(wù)器,而ASP?、PHP、JSP頁(yè)面需要附加的語(yǔ)言引擎分析和執(zhí)行程序代碼。程序代碼的執(zhí)行結(jié)果被重新嵌入到HTML代碼中,然后一起發(fā)送給瀏覽器。ASP?、PHP、JSP三者都是面向Web服務(wù)器的技術(shù),客戶端瀏覽器不需要任何附加的軟件支持。
應(yīng)用范圍
.NET是 Microsoft XML Web services 平臺(tái)。XML Web services 允許應(yīng)用程序通過(guò) Internet 進(jìn)行通訊和共享數(shù)據(jù),而不管所采用的是哪種操作系統(tǒng)、設(shè)備或編程語(yǔ)言。Microsoft .NET 平臺(tái)提供創(chuàng)建 XML Web services 并將這些服務(wù)集成在一起之所需。
.NET是 Microsoft XML Web services 平臺(tái)。XML Web services 允許應(yīng)用程序通過(guò) Internet 進(jìn)行通訊和共享數(shù)據(jù),而不管所采用的是哪種操作系統(tǒng)、設(shè)備或編程語(yǔ)言。Microsoft .NET 平臺(tái)提供創(chuàng)建 XML Web services 并將這些服務(wù)集成在一起之所需。對(duì)個(gè)人用戶的好處是無(wú)縫的、吸引人的體驗(yàn)。
對(duì)個(gè)人用戶的好處是無(wú)縫的、吸引人的體驗(yàn)。ASP是Microsoft開(kāi)發(fā)的動(dòng)態(tài)網(wǎng)頁(yè)語(yǔ)言,也繼承了微軟產(chǎn)品的一貫傳統(tǒng)——只能運(yùn)行于微軟的服務(wù).
ASP Net的主要優(yōu)點(diǎn) ?
目前在國(guó)內(nèi)的網(wǎng)站系統(tǒng)有很多。
個(gè)人更加偏向于.net + sql server開(kāi)發(fā)的網(wǎng)站程序。那么.net的優(yōu)勢(shì)在哪里呢?因?yàn)殚_(kāi)發(fā)的語(yǔ)言很多不能一一進(jìn)行比較。下面我主要談一談.net的強(qiáng)大功能。
?ASP.NET的優(yōu)點(diǎn)主要是以下幾個(gè)方面? ??
1)可管理性: ASP.NET 使用基于文本的、分級(jí)的配置系統(tǒng),簡(jiǎn)化了將設(shè)置應(yīng)用于服務(wù)器環(huán)境和 Web 應(yīng)用程序的工作。因?yàn)榕渲眯畔⑹谴鎯?chǔ)為純文本的,因此可以在沒(méi)有本地管理工具的幫助下應(yīng)用新的設(shè)置。配置文件的任何變化都可以自動(dòng)檢測(cè)到并應(yīng)用于應(yīng)用程序。?
2)安全: ASP.NET 為 Web 應(yīng)用程序提供了默認(rèn)的授權(quán)和身份驗(yàn)證方案。開(kāi)發(fā)人員可以根據(jù)應(yīng)用程序的需要很容易地添加、刪除或替換這些方案。
3)易于部署: 通過(guò)簡(jiǎn)單地將必要的文件復(fù)制到服務(wù)器上,ASP.NET 應(yīng)用程序即可以部署到該服務(wù)器上。不需要重新啟動(dòng)服務(wù)器,甚至在部署或替換運(yùn)行的已編譯代碼時(shí)也不需要重新啟動(dòng)。?
4)增強(qiáng)的性能: ASP.NET 是運(yùn)行在服務(wù)器上的已編譯代碼。與傳統(tǒng)的 Active Server Pages (ASP) 不同,ASP.NET 能利用早期綁定、實(shí)時(shí) (JIT) 編譯、本機(jī)優(yōu)化和全新的緩存服務(wù)來(lái)提高性能。?
5)靈活的輸出緩存: 根據(jù)應(yīng)用程序的需要,ASP.NET 可以緩存頁(yè)數(shù)據(jù)、頁(yè)的一部分或整個(gè)頁(yè)。緩存的項(xiàng)目可以依賴于緩存中的文件或其他項(xiàng)目,或者可以根據(jù)過(guò)期策略進(jìn)行刷新。?
6)國(guó)際化: ASP.NET 在內(nèi)部使用 Unicode 以表示請(qǐng)求和響應(yīng)數(shù)據(jù)??梢詾槊颗_(tái)計(jì)算機(jī)、每個(gè)目錄和每頁(yè)配置國(guó)際化設(shè)置。?
7)移動(dòng)設(shè)備支持: ASP.NET 支持任何設(shè)備上的任何瀏覽器。開(kāi)發(fā)人員使用與用于傳統(tǒng)的桌面瀏覽器相同的編程技術(shù)來(lái)處理新的移動(dòng)設(shè)備。?
8)擴(kuò)展性和可用性: ASP.NET 被設(shè)計(jì)成可擴(kuò)展的、具有特別專有的功能來(lái)提高群集的、多處理器環(huán)境的性能。此外,Internet 信息服務(wù) (IIS) 和 ASP.NET 運(yùn)行時(shí)密切監(jiān)視和管理進(jìn)程,以便在一個(gè)進(jìn)程出現(xiàn)異常時(shí),可在該位置創(chuàng)建新的進(jìn)程使應(yīng)用程序繼續(xù)處理請(qǐng)求。?
9)跟蹤和調(diào)試: ASP.NET 提供了跟蹤服務(wù),該服務(wù)可在應(yīng)用程序級(jí)別和頁(yè)面級(jí)別調(diào)試過(guò)程中啟用??梢赃x擇查看頁(yè)面的信息,或者使用應(yīng)用程序級(jí)別的跟蹤查看工具查看信息。在開(kāi)發(fā)和應(yīng)用程序處于生產(chǎn)狀態(tài)時(shí),ASP.NET 支持使用 .NET Framework 調(diào)試工具進(jìn)行本地和遠(yuǎn)程調(diào)試。當(dāng)應(yīng)用程序處于生產(chǎn)狀態(tài)時(shí),跟蹤語(yǔ)句能夠留在產(chǎn)品代碼中而不會(huì)影響性能。?
10)與 .NET Framework 集成: 因?yàn)?ASP.NET 是 .NET Framework 的一部分,整個(gè)平臺(tái)的功能和靈活性對(duì) Web 應(yīng)用程序都是可用的。也可從 Web 上流暢地訪問(wèn) .NET 類庫(kù)以及消息和數(shù)據(jù)訪問(wèn)解決方案。ASP.NET 是獨(dú)立于語(yǔ)言之外的,所以開(kāi)發(fā)人員能選擇最適于應(yīng)用程序的語(yǔ)言。另外,公共語(yǔ)言運(yùn)行庫(kù)的互用性還保存了基于 COM 開(kāi)發(fā)的現(xiàn)有投資。?
11)與現(xiàn)有 ASP 應(yīng)用程序的兼容性: ASP 和 ASP.NET 可并行運(yùn)行在 IIS Web 服務(wù)器上而互不沖突;不會(huì)發(fā)生因安裝 ASP.NET 而導(dǎo)致現(xiàn)有 ASP 應(yīng)用程序崩潰的可能。ASP.NET 僅處理具有 .aspx 文件擴(kuò)展名的文件。具有 .asp 文件擴(kuò)展名的文件繼續(xù)由 ASP 引擎來(lái)處理。然而,應(yīng)該注意的是會(huì)話狀態(tài)和應(yīng)用程序狀態(tài)并不在 ASP 和 ASP.NET 頁(yè)面之間共享。
可能asp.net并不是一門(mén)最容易做網(wǎng)站的語(yǔ)言,但是對(duì)于電子商務(wù)網(wǎng)站而言是很需要.net的這些優(yōu)勢(shì)的。ccxcn.com的網(wǎng)站就是ASP.net做的!
JSP同PHP3類似,幾乎可以運(yùn)行于所有平臺(tái)。如Win?NT,Linux,Unix.?NT下IIS通過(guò)一個(gè)插件,例如JRUN或者ServletExec,就能支持JSP。著名的Web服務(wù)器Apache已經(jīng)能夠支持JSP。由于Apache廣泛應(yīng)用在NT、Unix和Linux上,因此JSP有更廣泛的運(yùn)行平臺(tái)。雖然現(xiàn)在NT操作系統(tǒng)占了很大的市場(chǎng)份額,但是在服務(wù)器方面Unix的優(yōu)勢(shì)仍然很大,而新崛起的Linux更是來(lái)勢(shì)不小。從一個(gè)平臺(tái)移植到另外一個(gè)平臺(tái),JSP和JavaBean甚至不用重新編譯,因?yàn)镴ava字節(jié)碼都是標(biāo)準(zhǔn)的與平臺(tái)無(wú)關(guān)的。
性能比較
有人做過(guò)試驗(yàn),對(duì)這三種語(yǔ)言分別做循環(huán)性能測(cè)試及存取Oracle數(shù)據(jù)庫(kù)測(cè)試。
在循環(huán)性能測(cè)試中,JSP只用了令人吃驚的四秒鐘就結(jié)束了20000*20000的循環(huán)。而ASP、PHP測(cè)試的是2000*2000循環(huán)(少一個(gè)數(shù)量級(jí)),卻分別用了63秒和84秒。(參考PHPLIB)。
數(shù)據(jù)庫(kù)測(cè)試中,三者分別對(duì)?Oracle?8?進(jìn)行?1000?次?Insert,Update,Select和Delete:?JSP?需要?13?秒,PHP?需要?69?秒,ASP則?需要?73?秒。?前景分析? 目前在國(guó)內(nèi)PHP與ASP應(yīng)用最為廣泛。而JSP由于是一種較新的技術(shù),國(guó)內(nèi)采用的較少。但在國(guó)外,JSP已經(jīng)是比較流行的一種技術(shù),尤其是電子商務(wù)類的網(wǎng)站,多采用JSP。
采用PHP的網(wǎng)站如新浪網(wǎng)(sina)、中國(guó)人(Chinaren)等,但由于PHP本身存在的一些缺點(diǎn),使得它不適合應(yīng)用于大型電子商務(wù)站點(diǎn),而更適合一些小型的商業(yè)站點(diǎn)。
首先,PHP缺乏規(guī)模支持。其次,缺乏多層結(jié)構(gòu)支持。對(duì)于大負(fù)荷站點(diǎn),解決方法只有一個(gè):分布計(jì)算。數(shù)據(jù)庫(kù)、應(yīng)用邏輯層、表示邏輯層彼此分開(kāi),而且同層也可以根據(jù)流量分開(kāi),組成二維陣列。而PHP則缺乏這種支持。還有上面提到過(guò)的一點(diǎn),PHP提供的數(shù)據(jù)庫(kù)接口支持不統(tǒng)一,這就使得它不適合運(yùn)用在電子商務(wù)中。
ASP和JSP則沒(méi)有以上缺陷,ASP可以通過(guò)Microsoft?Windowsd的COM/DCOM獲得ActiveX規(guī)模支持,通過(guò)DCOM和Transcation?Server獲得結(jié)構(gòu)支持;JSP可以通過(guò)SUN?Java的Java?Class和EJB獲得規(guī)模支持,通過(guò)EJB/CORBA以及眾多廠商的Application?Server獲得結(jié)構(gòu)支持。
三者中,JSP應(yīng)該是未來(lái)發(fā)展的趨勢(shì)。世界上一些大的電子商務(wù)解決方案提供商都采用JSP/Servlet。比較出名的如IBM的E-business,它的核心是采用JSP/Servlet的Web?Sphere;西方另外一個(gè)非常著名的電子商務(wù)軟件提供商,Intershop,它原來(lái)的產(chǎn)品Intershop1,2,?3,?4占據(jù)了主要的電子商務(wù)軟件份額。
它們都是通過(guò)CGI來(lái)提供支持的。但去年10月后它推出了Enfinity,一個(gè)采用JSP/Servlet的電子商務(wù)Application?Server,而且聲言不再開(kāi)發(fā)傳統(tǒng)軟件。
總之,ASP,PHP,JSP三者都有相當(dāng)數(shù)量的支持者,由此也可以看出三者各有所長(zhǎng)。正在學(xué)習(xí)或使用動(dòng)態(tài)頁(yè)面的朋友可根據(jù)三者的特點(diǎn)選擇一種適合自己的語(yǔ)言。
本文作者來(lái)自北京網(wǎng)站建設(shè)公司-傳誠(chéng)信,轉(zhuǎn)載請(qǐng)注明出處:北京傳誠(chéng)信(jzztb.org.cn)