asp、php、asp.net、jsp的介紹和各自的優缺點

如今主流的網站開發語言無外乎asp、php、asp.net、jsp等。php

主流網站開發語言之ASP:ASP是微軟(Microsoft)所開發的一種後臺腳本語言,它的語法和Visual BASIC相似,能夠像SSI(Server Side Include)那樣把後臺腳本代碼內嵌到HTML頁面中。雖然ASP簡單易用,可是它自身存在着許多缺陷,最重要的就是安全性問題。目前在微軟的 .net戰略中新推出的ASP.net 借鑑了Java技術的優勢,使用C Sharp (C#) 語言做爲ASP.net的推薦語言,同時改進了之前ASP的安全性差等缺點。可是,使用ASP/ASP.net仍有必定的侷限性,由於從某種角度來講它們只能在微軟的 Windows NT/2000/XP + IIS的服務器平臺上良好運行(雖然像ChilliSoft提供了在UNIX/Linux上運行ASP的解決方案,可是目前ASP在UNIX/Linux上的應用能夠說幾乎爲0)。因此平臺的侷限性和ASP自身的安全性限制了ASP的普遍應用。
ASP在執行的時候,是由IIS調用程序引擎,解釋執行嵌在HTML中的
ASP代碼,最終將結果和原來的HTML一同送往客戶端。
java

主流網站開發語言之PHPPHP 的全名很是有趣,它是一個巢狀的縮寫名稱——「PHP: Hypertext Preprocessor」,打開縮寫仍是縮寫。PHP是一種HTML 內嵌式的語言 (就像上面講的ASP那樣)。而 PHP 獨特的語法混合了C,Java,Perl以及 PHP 式的新語法。它能夠比 CGI 或者 Perl 更快速地執行動態網頁。
PHP的源代碼徹底公開,在 Open Source 意識擡頭的今天,它更是這方面的中流砥柱。不斷地有新的函數庫加入,以及不停地更新,使得 PHP 不管在 UNIX 或是Win32 的平臺上均可以有更多新的功能。它提供豐富的函數,使得在程式設計方面有着更好的資源。PHP在4.0版後使用了全新的
Zend引擎,其在最佳化以後的效率,比較傳統 CGI 或者 ASP 等技術有了更好的表現。
平臺無關性是PHP的最大優勢,可是在優勢的背後,仍是有一些小小的缺點的。若是在PHP中不使用ODBC,而用其自帶的
數據庫函數(這樣的效率要比使用ODBC高)來鏈接數據庫的話, 使用不一樣的數據庫,PHP的函數名不能統一。這樣,使得程序的移植變得有些麻煩。不過,做爲目前應用最爲普遍的一種後臺語言,PHP的優勢仍是異常明顯的。程序員

ASP.NET:ASP.netMicrosoft.net的一部分,做爲戰略產品,不只僅是 Active Server Page (ASP) 的下一個版本;它還提供了一個統一的Web 開發模型,其中包括開發人員生成企業級 Web 應用程序所需的各類服務。ASP.NET 的語法在很大程度上與 ASP 兼容,同時它還提供一種新的編程模型和結構,可生成伸縮性和穩定性更好的應用程序,並提供更好的安全保護。能夠經過在現有 ASP 應用程序中逐漸添加 ASP.NET 功能,隨時加強 ASP 應用程序的功能。ASP.NET 是一個已編譯的、基於 .NET 的環境,能夠用任何與 .NET 兼容的語言(包括 Visual Basic .NET、C# 和 JScript .NET.)創做應用程序。另外,任何 ASP.NET 應用程序均可以使用整個 .NET Framework。開發人員能夠方便地得到這些技術的優勢,其中包括託管的公共語言運行庫環境、類型安全、繼承等等。ASP.NET 能夠無縫地與 WYSIWYG HTML 編輯器和其餘編程工具(包括 Microsoft Visual Studio .NET)一塊兒工做。這不只使得 Web開發更加方便,並且還能提供這些工具必須提供的全部優勢,包括開發人員能夠用來將服務器控件拖放到 Web 頁的 GUI 和徹底集成的調試支持。微軟爲ASP.net設計了這樣一些策略:易於寫出結構清晰的代碼、代碼易於重用和共享、可用編譯類語言編寫等等,目的是讓程序員更容易開發出Web應用,知足計算向Web轉移的戰略須要。
web

主流網站開發語言之JSP:JSP和Servlet要放在一塊兒講,是由於它們都是Sun公司J2EE(Java 2 platform Enterprise Edition)應用體系中的一部分。
Servlet的形式和前面講的CGI差很少,它是
HTML代碼和後臺程序分開的。它們的啓動原理也差很少,都是服務器接到客戶端的請求後,進行應答。不一樣的是,CGI對每一個客戶請求都打開一個進程(Process),而Servlet卻在響應第一個請求的時候被載入,一旦Servlet被載入,便處於已執行狀態。對於之後其餘用戶的請求,它並不打開進程,而是打開一個線程(Thread),將結果發送給客戶。因爲線程與線程之間能夠經過生成本身的父線程(ParentThread)來實現資源共享,這樣就減輕了服務器的負擔,因此,Java Servlet能夠用來作大規模的應用服務。
雖然在形式上JSP和ASP或PHP看上去很類似——均可以被內嵌在
HTML代碼中。可是,它的執行方式和ASP或PHP徹底不一樣。在JSP被執行的時候,JSP文件被JSP解釋器(JSPParser)轉換成Servlet代碼,而後Servlet代碼被Java編譯器編譯成 .class 字節文件,這樣就由生成的Servlet來對客戶端應答。因此,JSP能夠看作是Servlet的腳本語言(Script Language)版。
因爲JSP/Servlet都是基於Java的,因此它們也有Java語言的最大優勢——平臺無關性,也就是所謂的「一次編寫,隨處運行(WORA – Write Once, Run Anywhere)」。除了這個優勢,JSP/Servlet的效率以及安全性也是至關驚人的。所以,JSP/Servlet雖然在國內目前的應用並不普遍,可是其前途不可限量。
在調試JSP代碼時,若是程序出錯,JSP服務器會返回出錯信息,並在瀏覽器中顯示。這時,因爲JSP是先被轉換成Servlet後再運行的,因此,瀏覽器中所顯示的代碼出錯的行數並非JSP源代碼的行數,而是指轉換後的Servlet程序代碼的行數。這給調試代碼帶來必定困難。因此,在排除錯誤時,能夠採起分段排除的方法(在可能出錯的代碼先後輸出一些字符串,用字符串是否被輸出來肯定代碼段從哪裏開始出錯),逐步縮小出錯代碼段的範圍,最終肯定錯誤代碼的位置。
數據庫

主流網站開發語言之CGI:CGI就是公共網關接口 (Common Gateway Interface) 的縮寫。它是最先被用來創建動態網站的後臺技術。這種技術可使用各類語言來編寫後臺程序,例如C,C++,Java,Pascal等,可是目前在CGI中使用的最爲普遍的是Perl語言。因此,狹義上所指的CGI程序通常都是指Perl程序,通常CGI程序的後綴都是.pl或者.cgi 。
CGI程序在運行的時候,首先是客戶向服務器上的CGI程序發送一個請求,服務器接收到客戶的請求後,就會打開一個新的Process(進程)來執行CGI程序,處理客戶的請求。CGI程序最後將執行的結果(HTML頁面代碼)傳回給客戶。
因爲CGI程序每響應一個客戶就會打開一個新的進程,因此,當有多個用戶同時進行CGI請求的時候,服務器就會打開多個進程,這樣就加劇了服務器的負擔,使服務器的執行效率變得愈來愈低下。這也就是最近幾年來隨着各類新的後臺技術的誕生,CGI應用在Internet上愈來愈少的緣由。CGI方式不適合大訪問量的應用。
現在主流的Web服務器軟件主要由IIS或Apache組成。IIS支持ASP且只能運行在Windows平臺下,Apache支持PHP,CGI,JSP且可運行於多種平臺,雖然Apache是世界使用排名第一的Web服務器平臺,可是衆所周知,Windows以易用而出名,也所以佔據很多的服務器市場。
編程


咱們經常使用的開發組合:c#


IIS環境下
1.ASP+ACCESS
2.ASP+SQL SERVER
3.ASP.NET+ACCESS
4.ASP.NET+SQL SERVER
windows


APACHE環境下
5.jsp+Oracale
6.JSP+MYSQL
7.PHP+MYSQL
瀏覽器


能夠說,asp確實快過期了,在將來jsp和asp.net將會有巨大的潛力,但php憑藉其開源的特性也會佔有必定份額。

vb通常指vb6.0,是傳統的win32編程。vb.net和asp.net是基於微軟.net平臺的語言。說java好主要是由於java的j2ee部分作企業級開發很強大,並且跨平臺。c#是.net平臺上最好用的語言,如今只能運行在windows系統。 web開發方面.net和j2ee的競爭很激烈,難說之後鹿死誰手。 如今作網站大部分都是asp.net或jsp的,asp.net容易上手,比較普及,可是平臺單一,jsp雖然上手難,可是跨平臺,安全性高。


安全

下面比較一下ASP、ASP.net、JSP和PHP的優勢和缺點:ASP優勢:1. 無需編譯2. 易於生成3. 獨立於瀏覽器4. 面向對象5. 與任何ActiveX scripting 語言兼容6. 源程序碼不會外漏缺點:一、Windows自己的全部問題都會一成不變的也累加到了它的身上。安全性、穩定性、跨平臺性都會由於與NT的捆綁而顯現出來。二、ASP因爲使用了COM組件因此它會變的十分強大,可是這樣的強大因爲Windows NT系統最初的設計問題而會引起大量的安全問題。只要在這樣的組件或是操做中一不注意,哪麼外部***就能夠取得至關高的權限而致使網站癱瘓或者數據丟失。三、因爲ASP仍是一種Script語言所沒除了大量使用組件外,沒有辦法提升其工做效率。它必須面對即時編繹的時間考驗,同時咱們還不知其背後的組件會是一個什麼樣的情況。四、沒法實現跨操做系統的應用。固然這也是微軟的理由之一,只有這樣才能發揮ASP最佳的能力。但是我卻認爲正是Windows限制了ASP,ASP的概念本就是爲一個能讓系統運行於一個大的多樣化環境而設計的。五、還沒法徹底實現一些企業級的功能:徹底的集羣、負載均橫。ASP.NET優勢:1. 簡潔的設計和實施。2. 語言靈活,並支持複雜的面向對象特性。3. 開發環境。缺點:1.數據庫的鏈接複雜。JSP優勢:一、     一處編寫隨處運行。二、     系統的多臺平支持。三、     強大的的可伸縮性。四、     多樣化和功能強大的開發工具支持。缺點:一、     與ASP同樣,Java的一些優點正是它致命的問題所在。二、     缺乏系統性的資料。三、     速度超慢PHP優勢:一、     一種能快速學習、跨平臺、有良好數據庫交互能力的開發語言。二、     簡單輕便,易學易用。三、     與Apache及其它擴展庫結合緊密。四、     良好的安全性。缺點:一、     數據庫支持的極大變化。二、     不適合應用於大型電子商務站點三、     安裝複雜。四、     缺乏正規的商業支持。五、     沒法實現商品化應用的開發。

相關文章
相關標籤/搜索