asp.net和jsp的比較

來源:互聯網
上載者:User

JSP(Java Server Pages)是由SunMicrosystems公司倡導、許多公司參與一起建立的一種動態網頁技術標準。JSP技術有點類似ASP技術,它是在傳統的網頁HTML檔案(*.htm,*.html)中插入Java程式段(Scriptlet)和JSP標記(tag),從而形成JSP檔案(*.jsp)。用JSP開發的Web應用是跨平台的,既能在Linux下運行,也能在其他動作系統上運行。

 

ASP 是一項微軟公司的技術,是一種使嵌入網頁中的指令碼可由網際網路伺服器執行的伺服器端指令碼技術。指 Active Server Pages(動態伺服器頁面),運行於 IIS
之中的程式。

 

兩者自身的特點:JSP:

1 將內容的產生和顯示進行分離

使用JSP技術,Web頁面開發人員可以使用HTML或者XML標識來設計和格式化最終頁面.使用JSP標識或者小指令碼來產生頁面上的動態內容.產生內容的邏輯被封裝在標識和JavaBeans群組件中,並且捆綁在小指令碼中,所有的指令碼在伺服器端執行.如果核心邏輯被封裝在標識和Beans中,那麼其它人,如Web管理員和頁面設計者,能夠編輯和使用JSP頁面,而不影響內容的產生.在伺服器端,JSP引擎解釋JSP標識,產生所請求的內容(例如,通過存取JavaBeans群組件,使用JDBC技術存取資料庫),並且將結果以HTML(或者XML)頁面的形式發送回瀏覽器.這有助於作者保護自己的代碼,而又保證任何基於HTML的Web瀏覽器的完全可用性.

 

2 強調可重用的群組件

絕大多數JSP頁面依賴於可重用且跨平台的組件(如:JavaBeans或者Enterprise JavaBeans)來執行應用程式所要求的更為複雜的處理.開發人員能夠共用和交換執行普通操作的組件,或者使得這些組件為更多的使用者或者使用者團體所使用.基於組件的方法加速了總體開發過程,並且使得各種群組織在他們現有的技能和最佳化結果的開發努力中得到平衡.

 

3 採用標識簡化頁面開發

 

Web頁面開發人員不會都是熟悉指令碼語言的程式設計人員.JavaServer Page技術封裝了許多功能,這些功能是在易用的,與JSP相關的XML標識中進行動態內容產生所需要的.標準的JSP標識能夠存取和執行個體化
JavaBeans組件,設定或者檢索群組件屬性,下載Applet,以及執行用其它方法更難於編碼和耗時的功能.

 

由於JSP頁面的內建指令碼語言是基於Java程式設計語言的,而且所有的JSP頁面都被編譯成為Java
Servlet,JSP頁面就具有Java技術的所有好處,包括健壯的儲存管理和安全性.

 

作為Java平台的一部分,JSP擁有Java程式設計語言"一次編寫,各處執行"的特點.隨著越來越多的供貨商將JSP支援加入到他們的產品中,您可以使用自己所選擇的伺服器和工具,修改工具或伺服器並不影響目前的應用.

 

ASP.NET

1.增強效能.ASP.NET
是在伺服器上啟動並執行編譯好的公用語言運行庫代碼.與被解釋的前輩不同,ASP.NET
可利用早期繫結,Just-In-Time 編譯,本機最佳化和盒外快取服務.這相當於在編寫程式碼之前便顯著提高了效能.

2.世界級的工具支援.ASP.NETFramework
補充了 Visual Studio 整合式開發環境中的大量工具箱和設計器.WYSIWYG
編輯,拖放伺服器控制項和自動部署只是這個強大的工具所提供功能中的少數幾種.

3.簡易性和可管理性.ASP.NET
使執行常見任務變得容易,從簡單的表單提交和用戶端驗證到部署和網站配置.另外,公用語言運行庫利用Managed 程式碼服務(如自動引用計數和記憶體回收)簡化了開發.ASP.NET
採用基於文本的分層配置系統,簡化了將設定應用於伺服器環境和 Web
應用程式.由於配置資訊是以純文字形式儲存的,因此可以在沒有本地管理工具協助的情況下應用新設定.此"零本地管理"哲學也擴充到了
ASP.NET Framework 應用程式的部署.即使是在部署或替換啟動並執行編譯代碼時.

4.可縮放性和可用性.ASP.NET
在設計時考慮了可縮放性,增加了專門用於在聚集環境和多處理器環境中提高效能的功能.另外,進程受到 ASP.NET
運行庫的密切監視和管理,以便當進程行為不正常(泄漏,死結)時,可就地建立新進程,以協助保持應用程式始終可用於處理請求.

5.自訂性和擴充性.ASP.NET
隨附了一個設計周到的結構,它使開發人員可以在適當的層級"插入"代碼.實際上,可以用自己編寫的自訂群組件擴充或替換
ASP.NET 運行庫的任何子組件.實現自訂身分識別驗證或狀態服務一直沒有變得更容易.

應用範圍

ASP是Microsoft開發的動態網頁語言,也繼承了微軟產品的一貫傳統,只能執行於微軟的伺服器產品,IIS(InternetInformation
Server) (windows NT)和PWS(Personal Web Server)(windows 98)上.Unix下也有ChiliSoft的組件來支援ASP,但是ASP本身的功能有限,必須通過ASP+COM的群組合來擴充,Unix下的COM實現起來非常困難.

  

JSP同PHP3類似,幾乎可以執行於所有平台.如WinNT,Linux,Unix.在NT下IIS通過一個外加伺服器,例如JRUN或者ServletExec,就能支援JSP.知名的Web伺服器Apache已經能夠支援JSP.由於Apache廣泛應用在NT,Unix和Linux上,因此JSP有更廣泛的執行平台.雖然現在NT作業系統佔了很大的市場份額,但是在伺服器方面Unix的優勢仍然很大,而新崛起的Linux更是來勢不小.從一個平台移植到另外一個平台,JSP和JavaBean甚至不用重新編譯,因為Java位元組碼都是標準的與平台無關的.

 

ASP.NET 基於公用語言運行庫,因此 Web
應用程式開發人員可以利用整個平台的威力和靈活性..NET Framework
類庫,訊息處理和資料訪問解決方案都可從 Web
無縫訪問.ASP.NET 也與語言無關,所以可以選擇最適合應用程式的語言,或跨多種語言分割應用程式.另外,公用語言運行庫的互動性保證在遷移到
ASP.NET 時保留基於 COM 的開發中的現有投資.

 

 

兩者的比較:

JSP(Java Server Page)與ASP(ActiveServer Page)兩者都是常用的動態網頁技術,也都是可以嵌入HTML中的程式,但兩者是有著本質的不同,主要從以下幾個方面對其進行比較:

1.Web伺服器的支援:大多數通用的 Web伺服器如:Apache、Netscape和MicrosoftIIS都支援JSP頁面,只有微軟本身的Microsoft
IIS和Personal Web Server可以支援ASP。

2.平台的支援:JSP具有平台獨立性,只要是一般的Java程式可以啟動並執行平台,都支援JSP程式。Windows平台可以很好的支援ASP,但ASP對於基於Win32逐漸模型的依賴,使得它難於移植到其它平台上。

3.組件模型:JSP是建立在可重用的、跨平台的組件(如:JavaBeans、Enterprises JavaBeans和使用者定製的標籤庫等組件)之上的,而ASP使用的是基於Win32的COM組件模型。

4.指令碼語言:JSP可以使用Java程式設計語言或JavaScript作為指令碼語言,而ASP使用VBScript或Jscript作為指令碼語言。

5.安全性:JSP使用Java安全模型,而ASP使用Windows NT的安全結構。

6.與Access資料庫的串連:JSP使用JDBC建立與Access資料庫的串連,而ASP對Access資料庫使用DataActive
Objects。

7.使用者定製的標籤:JSP可以使用使用者定製標籤庫進行擴充,而ASP中沒有使用者定製標籤庫,ASP是不能擴充的。

總結:

每種語言都有他存在的合理性,java不一定適應每一個地方,VB也不是沒有用處,如果一種語言完全不如另一種語言好,那麼這種語言將不複存在,所以,我們需要做的是找出他們的異同,在不同的情況下學習和使用不同的語言。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.