當前位置:編程學習大全網 - 編程語言 - 網站常用的幾種開發語言NET,PHP,JSP,各有什麽優點缺點

網站常用的幾種開發語言NET,PHP,JSP,各有什麽優點缺點

ASP,全稱為Active Server Pages

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壹同送往客戶端。

PHP,全稱為PHP: Hypertext Preprocessor

PHP 的全名非常有趣,它是壹個巢狀的縮寫名稱——“PHP: Hypertext Preprocessor”,打開縮寫還是縮寫。PHP是壹種HTML 內嵌式的語言 (就像上面講的ASP那樣)。而 PHP 獨特的語法混合了C,Java,Perl以及 PHP 式的新語法。它可以比 CGI 或者 Perl 更快速地執行動態網頁。

PHP的源代碼完全公開,在 Open Source 意識擡頭的今天,它更是這方面的中流砥柱。不斷地有新的函數庫加入,以及不停地更新,使得 PHP 無論在 UNIX 或是 Win32 的平臺上都可以有更多新的功能。它提供豐富的函數,使得在程式設計方面有著更好的資源。目前PHP的最新版本為4.1.1 ,它可以在Win32以及UNIX/Linux等幾乎所有的平臺上良好工作。PHP在4.0版後使用了全新的Zend引擎,其在最佳化之後的效率,比較傳統 CGI 或者 ASP 等技術有了更好的表現。

平臺無關性是PHP的最大優點,但是在優點的背後,還是有壹些小小的缺點的。如果在PHP中不使用ODBC,而用其自帶的數據庫函數(這樣的效率要比使用ODBC高)來連接數據庫的話, 使用不同的數據庫,PHP的函數名不能統壹。這樣,使得程序的移植變得有些麻煩。不過,作為目前應用最為廣泛的壹種後臺語言,PHP的優點還是異常明顯的。

JSP,全稱為Java Server Pages / Servlet

JSP和Servlet要放在壹起講,是因為它們都是Sun公司的J2EE(Java 2 platform Enterprise Edition)應用體系中的壹部分。

Servlet的形式和前面講的CGI差不多,它是HTML代碼和後臺程序分開的。它們的啟動原理也差不多,都是服務器接到客戶端的請求後,進行應答。不同的是,CGI對每個客戶請求都打開壹個進程(Process),而Servlet卻在響應第壹個請求的時候被載入,壹旦Servlet被載入,便處於已執行狀態。對於以後其他用戶的請求,它並不打開進程,而是打開壹個線程(Thread),將結果發送給客戶。由於線程與線程之間可以通過生成自己的父線程(Parent Thread)來實現資源***享,這樣就減輕了服務器的負擔,所以,Java Servlet可以用來做大規模的應用服務。

雖然在形式上JSP和ASP或PHP看上去很相似——都可以被內嵌在HTML代碼中。但是,它的執行方式和ASP或PHP完全不同。在JSP被執行的時候,JSP文件被JSP解釋器(JSP Parser)轉換成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程序代碼的行數。這給調試代碼帶來壹定困難。所以,在排除錯誤時,可以采取分段排除的方法(在可能出錯的代碼前後輸出壹些字符串,用字符串是否被輸出來確定代碼段從哪裏開始出錯),逐步縮小出錯代碼段的範圍,最終確定錯誤代碼的位置。

JSP和ASP相比較:

運行速度、運行開銷、運行平臺、擴展性、安全性、函數支持、廠商支持、對XML的支持等等,ASP都不是JSP的對手。COM組件的復雜性實編程實現有壹定的難度。而JAVABeans和JAVA的結合卻是天衣無縫的。

JSP和ASP.NET相比較:

1.相對C#,JSP的腳本語言JAVA也是面向對象的、分布式的、解釋的語言。

2.與C#相似JAVA同樣去掉了難以理解的指針等概念,取而代之的是類和對象。

3. JSP有壹項全新的技術――Servlet(服務器端程序)很好的節約了服務器資源。

4.JAVABeans是針對ASP.NET的Server Control的技術。只要會JAVA, JavaBeans就很容易寫出。

5.再有就是JAVA的JDBC數據庫連接技術。

6.JSP對XML同樣有十分廣泛的支持。

1) 面向對象性:

ASP+將C#作為壹種面向對象語言,在很多方面來看,C#將成為微軟的與Java相似的語言。

C#另壹個有趣的地方是所有對象都自動變成為COM對象。如果C#能取得很大的市場份額,那麽它將給ASP+帶來類似於Java的功能,並且具備更快的性能,因為它可以和Windows環境緊密集成。

C# 是ASP+開發中壹個最重要的功能,微軟會將C#發展成為Java的強勁對手。這也是他們.Net框架的壹個重要組成部分。我認為C#是微軟在編程市場上擊敗對手的主要工具。我期待著微軟能在這個產品後面傾註全力,這樣,C#可以成為許多程序員的又壹種選擇。C#產生的結果是將進壹步加固微軟和Sun產品的戰線。這對用戶是有利的,他們可以選擇兩者之壹來開發新的應用。

2) 數據庫連接:

ASP另壹個亮點是它使用ADO對象,ODBC, OLE-DB和事務處理管理器。因此ASP Web數據庫應用開發特別簡單。ASP+發展了更多的功能,因為有了ADO+!ADO+帶來了更強大更快速的功能。JSP和JDBC目前在易用性和性能上同ASP/ADO相比已有些落後,當新版本ASP+/ADO+出現後這樣的差別會更明顯。我個人希望SUN應盡快能花大力氣來追趕ASP+/ADO+的組合。

3) 大型站點應用:

ASP+將對大型站點(web farms)有更好的支持。事實上,微軟在這方面付出了巨大的努力。 ASP+可以讓妳考慮到多服務器(multiple servers)的場合,當妳需要更強大的功能時,僅僅只需要增加壹臺服務器。整個.Net框架已經充分地提供了這個方法。ASP+提供了外部會話狀態(external session state)來提供內置式web farm的支持。另外,由於請求的各組件相互間經過了充分的優化,所以速度很快。

於是ASP+現在可以在大型項目方面與JSP壹樣具有等同的能力。 而ASP+還有價格方面的優勢,因為所有的組件將是服務器操作系統的壹部分。對於JSP,妳需要購買昂貴的應用服務器群來達到同樣的目的。

4) ASP+還提供更多的其它方面的新特性,例如:

*內置的對象緩存和頁面結果緩存。

*內置的XML支持,可用於XML數據集的簡單處理。

*服務器控制提供了更充分的交互式控制。

ASP+確實對ASP進行了較大的發展。

  • 上一篇:好看的校園言情小說
  • 下一篇:請簡單敘述最主要的雲計算技術
  • copyright 2024編程學習大全網