回覆列表
  • 1 # 小紅的甜心

    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進行了較大的發展。

  • 中秋節和大豐收的關聯?
  • 手機和相機拍夜景“一塌糊塗”,該如何補救?