JSP和ASP.NET到底誰才是未來的主宰
1. 說說JSP。(本人工作中用的最多的就是JSP)
JSP, JavaServer Pages 是Java技術的一部分,可以說是Java Platform Enterprise Edition的一部分(JAVA主要3個大技術,Java SE, Java EE, Java ME)。軟體開發者可以用JSP來動態生成HTML,XML或者其他的文件。然後把文件response給網頁使用者。這項技術,可以用Java裡的所有定義過的library來支援它的功能,所以JSP的API和普通Java EE的API一樣。
JSP裡還有很多有功能的XML tag(如:<jsp:include>,<jsp:useBean)。這些都是JAVA內建功能,不需要匯入新的外接 library。這些XML tag,可以在很多Web Server裡使用(如:Apache, Apache TomCat, WebLogic等)。
JSP在編譯後就完全和Servlet一樣了。JSP頁面在第一次被使用者訪問的時候,首先被JAVA 編譯器,編譯成Java Servlet Class。然後編譯後Servlet Class,在以後被使用者訪問時,直接在JVM裡執行,由JSP Web Container來輸出HTML給使用者。JSP這種“首次訪問-預編譯”的執行方式比傳統PHP(PHP 4和PHP以前版本),過時的ASP(所有版本的ASP),要快很多。(百度一位網友作過一個1萬次For Loop,迴圈的測試,結果發現JSP比傳統PHP,ASP快盡10被的速度就完成運算)。預編譯的執行方式後來被PHP5效仿,ASP.NET也是預編譯的。當然JSP還有一個好處,就是可以直接用純Java (無HTML),來寫一個Servlet,直接在JVM執行後,由JSP Web Container輸出HTML給使用者。只是Servlet有的時候寫一些presentation tier的東西很麻煩,因為它不能融合XML和輸出邏輯在一起。所以一般Servlet用於純Java的business logic邏輯。
JSP的tag還可以由使用者自己來創造和使用,這個和ASP.NET裡的user-defined controls差不多。
MVC, Model-View-Controller,是JSP的普遍開發架構,用來把JSP技術中的presentation, business logic, data storage三層清楚的分開。這樣使開發過程更佳清楚明瞭,便於開發,維護。常用的MVB架構有:Barracuda, Apache Struts和Spring。JSF,JavaServer Faces是一個由SUN官方開發的Framework,是模仿ASP.NET的event-driven開發模式,和ASP.NET非常相似。但SUN 並沒有讓JSF替代JSP,相反JSF的開發者少之又少,但是據說現在JSF或JSP配合RAD(AJAX)開發很流行(校內網就是這樣,而且結合 Struts)。
2. ASP(Active Server Pages), ASP.NET 兩個分別是 動態網頁開發語言,動態網頁開發語言和結構
(1) 關於ASP的淘汰
ASP, Active Server Pages已經過時了, 但因為其出現的早,96年就有了,所以現在有些中小網站還用(但,使用最多最廣的是PHP,最初於95年現世。ASP是微軟第一代動態網頁開發語言,只能在Windows系統 + MS IIS伺服器平臺下執行。
Wikipedia, Facebook, 百度等都用PHP,PHP學習的簡單度和ASP差不多;JSP稍微難點,JSP用的一般都是銀行,購物等安全性較高的網站,Google也用JSP)。但隨著開發者的各種需求,ASP以後可以被ASP.NET取代,因為微軟停止對其的一切技術維護與功能更新。ASP.NET是革新版本的ASP(注意是“革新版本”,而非“改進版本”),或者說是完全新一代的Dynamic Web Scripting。
ASP代表著傳統的dynamic web scripting,與ASP.NET沒什麼關係,學了確實也沒用。因為ASP不象CGI(Common Gateway Interface),CGI是動態網站製作的始祖,所有ASP,JSP,PHP什麼的都根據CGI演化而來,而且ASP,PHP,JSP都包含了些 CGI的東西;而ASP卻沒有被衍生出任何新技術,ASP.NET也不算基於ASP,只能說ASP.NET開發理念,library,功能完全是基於.NET的其它元件。
其實PHP,JSP,ASP明白其中一種,其它的都很容易學會了。如果非要學學傳統的dynamic web scripting,那就學學PHP吧,不比ASP難,但比ASP功能多,穩定性好,PHP5執行速度也比ASP快很多(JSP稍難因為要學點 Java)。學了PHP或JSP什麼的,對學ASP.NET有好處,而且還可以直接用PHP,JSP進行開發。去google差差英文資源,有評價PHP 最好的,有評價JSP最好的,還從沒有聽誰說過ASP最好。
ASP.NET畢竟在.NET中,所以ASP.NET還是有相當地位的。
(2). 關於ASP.NET的優勢
ASP.NET是微軟.NET Framework的一部分。伴隨.NET 1.0在2002的問世,ASP.NET也出現在動態網頁開發語言的家族中(與PHP,JSP,ColdFusion, Ruby, SHTML等並行了)。
功能上,ASP.NET比ASP有更強大的library, 更好的穩定性。 ASP.NET可以使用.NET Framework中所有元件(也就是說.NET能實現的,ASP.NET一樣能實現),功能上顯然強大於傳統功能單調的ASP。最強的技術支援Web Service, 而且有.NET的所有library做後盾。而且ASP.NET 在.NET 3.5中還有微軟專門為AJAX開發的功能--ASP.NET AJAX。
結構上,傳統的ASP把所有程式碼混為一團,簡單的用<%%>把HTML和VBScript(或JScript)分開,實現動態輸出 HTML。因為ASP.NET模仿JSP的MVC網頁結構,微軟為ASP.NET開發了自己的Code-Behind結構,將 presentation(檔案拓展名:.aspx)和business logic(檔案拓展名:.cs或.vb等)分離。同時Code-Behind模式也實現了讓ASP.NET開發者用.NET中最普通Winform的開發模式來開發網站,方便非網頁開發者製作動態網站。所以ASP.NET更容易維護,比ASP更適合於Enterprise Level 的大網站開發。
由於ASP.NET比JSP,PHP等更接近於.NET Winform的開發。如Tree View, Datagrid View(即高階Table)等高階UI,都可以直接用ASP.NET中的Web Control來實現,這比傳統的使用JavaScript + XTHML + CSS的DHTML開發方式簡單不少,也更好維護。同時ASP.NET開發這可以定義自己的User Control,製作自己特別的一種UI(如網站LOGO,版權等部分),而且此User Control可以被存為.ascx檔案,方便讓每一頁(.aspx)來使用。
執行速度上,ASP.NET模仿了JSP的預編譯機制(Pre-Compile)。使編譯好的程式碼(MSIL語言)在網頁伺服器上執行。這樣比傳統的ASP,傳統PHP(PHP4以前版本)更快,因為傳統的ASP是直接執行開發者寫的Script,相當於每執行一次,就得編譯一次那麼慢。 ASP.NET可以用VB, C#, J#等所有.NET Framework的語言開發.(但其實每種語言做的東西都一樣... 就象山東話, 東北話, 寫出來都是中文:)
不過ASP.NET對出學者可能有點難. 因為它其實在模擬desktop application development,即Winforms開發的模式, 不象傳統的JSP,PHP, ASP這樣容易明白。傳統的Dynamic Server Scripting, 象PHP 5, 這是現在最簡單的, 最有效的了。( 那個JSP也不難. 如果有錢還可以考慮下Adobe ColdFusion。)
3. 從使用率看優勢
不經過實踐考驗,僅僅看微軟和SUN的廣告或者分析家的評論是無法準確看出JSP, ASP.NET二者優勢誰大。那麼我們看看,國內外知名網站都選擇什麼技術開發。
用JSP的,最強代表就是Google(Google提供給開發者搜尋服務的API,Google提供的AJAX技術,這兩者全是Java且只有 Java,所以可以斷定Google用的就是JSP),光看Google多牛B,就知道JSP多厲害了吧。另外國際上最有名氣的“百度知道”-- Answers.com也是用JSP。Network Solutions域名註冊與查詢服務,也是用JSP。大品牌最牛的牛仔褲Levi's,包Louis Vuitton都用JSP。國內的“校內網”也是JSP。
由於ASP.NET在2002年才剛剛被微軟推出,JSP(1999)早了幾年,因此使用ASP.NET的大網站,還找不到太多。而且 ASP.NET有很多用於企業內部的管理網頁軟體開發,只在公司內部網路上,不向外部網路(Internet)上公開。Hotmail最強E-Mail系統之一,www.hotmail.com(另兩者現為yahoo mail, gamil)。ViewTrip旅行服務,旅行服務,酒店訂房,機票查詢(www.viewtrip.com)。IELTS,雅思英語測試官方網站(www.ielts.org)。微軟旗下所有技術的官方網站全是用ASP.NET的,這就不用說了。
用PHP的,與本主題無關,但因為其技術使用率在所有技術 (JSP,JSF,ASP,ASP.NET,PHP,ColdFusion,Ruby,Perl,Python,CGI,SHTML)中最高,所以也那來談。國外最權威的知識網站“維基百科”是用PHP,知道PHP很牛了吧。國外成名已久的校內網(國內校內網就是抄它的)Facebook也是PHP的。索尼 Sony,百事Pepsi, 街機遊戲公司SNK都是用PHP的。百度也是PHP的。太多了這裡PHP不一一舉出了。
相關推薦
JSP和ASP.NET到底誰才是未來的主宰
隨著計算機行業的發展,以後到底誰才是 web 網站開發的主宰者呢?1. 說說JSP。(本人工作中用的最多的就是JSP) JSP, JavaServer Pages 是Java技術的一部分,可以說是Java Platform Enterprise Edition的一部分(JA
.NET、C#和ASP.NET三才之間的區別(轉)
編程 tail 基於web 發現 我認 ava 微軟 框架 framwork 經常有同學會在.NET、C#和ASP.NET這三者之間區別不清楚,到底它們之間有什麽聯系呢?在這裏我給大家歸納如下: 1、.NET是一個平臺,一個抽象的平臺的概念。
DotNET、C#和ASP.NET三才之間的區別
關系 .net ren net all pos details div dot Reference 1. DotNET、C#和ASP.NET三才之間的區別 2. ASP.NET、.NET和C#的關系是怎樣的?DotNET、C#和ASP.NET三才之間的區別
.NET、C#和ASP.NET三才之間的區別
經常有同學會在.NET、C#和ASP.NET這三者之間區別不清楚,到底它們之間有什麼聯絡呢?在這裡我給大家歸納如下: 1、.NET是一個平臺,一個抽象的平臺的概念。 .NET平臺其本身實現的方式其實還是庫,抽象層面上來看是一個平臺。
使用angular4和asp.net core 2 web api做個練習項目(三)
style .com names 事件 ase session erb ngs dash 第一部分: http://www.cnblogs.com/cgzl/p/7755801.html 第二部分: http://www.cnblogs.com/cgzl/p/7763397
【轉載】ASP和ASP.NET根本區別
離開 事件 更強 href 都在 框架 簡單 sha 提高 ASP.NET和ASP的最大區別在於編程思維的轉換,而不僅僅在於功能的增強。ASP使用VBS/JS這樣的腳本語言混合html來編程,而那些腳本語言屬於弱類型、面向結構的編程語言,而非面向對象,這就明顯產生以下幾個問
語言學習讀書筆記PHP和asp.net編程語言哪個更有前途?
asp .NET PHP 編程 數據庫 編程語言一直是學習計算機編程門專業的熱門討論話題,而我也選擇了這個專業,入學一年了,馬上面臨著語言的選擇問題,業余我需要選擇一門編程語言作為重點研究對象,那麽問題來了:到底是選擇PHP還是ASP.NET呢?這是個需要仔細考慮的問題。關於PHP語言:P
微軟與開源幹貨對比篇_PHP和 ASP.NET在 Session實現和管理機制上差異
ima 影響 前言 很難 刪除 定性 缺點 重新編譯 state 微軟與開源幹貨對比篇_PHP和 ASP.NET在 Session實現和管理機制上差異 前言:由於開發人員要靠工具吃飯,可能和開發工具、語言、環境呆的時間比和老婆孩子親人在一起的時間還多,所以每個人或多或少對自
Asp.Net 學習筆記(IIS不同版本和Asp.Net)
work rem 相同 出發 資源 iis 其中 筆記 http 主要目的是在網上記錄一下學習筆記,如有不對,請指出 謝謝!! iis5.x: 存在問題,inet info收到動態請求後,aspnt_isapi.dll會被加載到inetinfo.e
win7下 IIS配置 和 asp.net專案部署
轉載於:http://blog.csdn.net/wangzhen199009/article/details/8225377 IIS安裝: 網上很多教程, http://ons.me/147.html 這個教程詳細準確。需要注意的的這個教程的下面這一步驟存在問題:(在“I
.NET、C#和ASP.NET、ASP.NET MVC四者之間的區別
核心 框架類 二進制 的區別 net跨平臺 for 解釋 一個 net開發 什麽是.NET? .NET是微軟公司下的一個開發平臺,.NET核心就是.NET Framwork(.NET框架)是.NET程序開發和運行的環境,在這個平臺下可以用不同的語言進行開發,因為.NET是跨
Spring.NET教程(十九)整合NHibernate和ASP.NET MVC(基礎篇)
contains sar occurs false port company param soft stat 今天帶給大家的就是期待以久的ASP.net MVC與Spring.NET和NHibernate的組合,視圖打造.NET版的SSH(Spring-Struts-Hib
asp.net web forms和asp.net mvc比較
https://www.cnblogs.com/liangxiaofeng/p/5583803.html asp.net web forms和asp.net mvc比較 ASP.NET Webforms Behind Code的好處和存在的問題 ASP.NET Webforms是一
ASP.NET Process Model之一:IIS 和 ASP.NET ISAPI
上影象我們展示了IIS 5.x如何處理一個基於ASP.NET Resource(以aspx為例)的Http Request的大體流程。首先使用者通過Browser請求一個aspx page,Brower向對於得Web Server,也就是目標主機的IIS。在上面我們提到過,IIS執行在一個稱為Inet
簡單分析下SPring MVC和Asp.net MVC的區別和異同點
.Net 檢視載入 在 ActionResult之後呼叫檢視類的Render展示檢視。而無獨有偶,Spring MVC在 Dispatcher DoDispath 最後也是呼叫Render載入檢視,看來.Net 與Java極具雷同。 &
ASP.NET Core 中文文件 第二章 指南(2)用 Visual Studio 和 ASP.NET Core MVC 建立首個 Web API
HTTP 協議不僅僅提供網頁服務。它也是一個構建公開服務和資料 API 的強大平臺。HTTP 協議是簡單、靈活、無處不在的。幾乎你能想到的任何平臺上都有 HTTP 支援,所以 HTTP 服務能夠傳送到多種客戶端, 包括瀏覽器,移動裝置和傳統的桌面應用程式。 在本教程中,你將建立一個簡單的 Web API 來
asp.net ajax 和 asp.net 2.0中的fileupload合力打造無重新整理檔案上傳控制元件
{20 bool fileOK =false;21 //獲取根檔案絕對路徑22string path = Server.MapPath("~/UpLoad/");23 //如上傳了檔案,就判斷檔案格式24 FileUpload FU = FileUplo
asp頁面和Asp.net頁面傳中文引數UrlEncode編碼以及接收解碼
在asp中加一個連結,指向asp.net網頁,但asp.net的網址是經過HttpUtility.UrlEncode轉換和HttpUtility.UrlDecode解碼的,而asp的server.urlencode卻和HttpUtility.UrlEncode的編碼方式不
c#的WebService和asp.net網站之間的json傳輸呼叫
主要內容: 1.WebService的建立 2.asp.net網站中用jquery的ajax呼叫WebService服務 3.注意的問題(重要!) (1)WebService和網站的釋出 (2)jqu
新的測試asp和asp.net測試頁面
用於測試iis是否正常安裝和asp.net是否正常註冊 asp頁面,測試iis安裝正常,新建一個test.asp頁面(vbscript動態指令碼語言): 程式碼如下即可: <%response.write("hello world,vbscript!") %>