談談ASP、PHP和JSP等Web動態信息發布技術各自的概念和特點
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
目前流行的開發Web動態信息網頁的解決方法大概有以下幾種:ASP、PHP、JSP、ISAPI、CGI等,這些開發技術各有其優缺點。JSP與PHP、ASP、ISAPI、CGI比較,有相當多的優點。由于目前CGI和ISAPI技術被使用的廣泛程度遠不如前三者,在這里就不詳細探討了,而對ASP、PHP和JSP做一個理論上的比較分析。 1 ASP、PHP和JSP的概念 ASP(Active Server Pages)是微軟公司IIS中的一個組件。它提供一個服務器端的VBScript/JScript腳本運行環境,當腳本運行在服務器端時,WEB服務器完成涉及回送瀏覽器HTML頁的所有工作,并返回相應的HTML文本。ASP直接在HTML文件中嵌入服務器端腳本,使動態交互頁面的開發成為一個整體,開發與維護工作變得簡單、快捷。同時,由于它是在服務器端的腳本,一般用戶無法看到,從而有效地保證了系統的安全性及開發人員的知識產權。 PHP(Hypertext Preprocessor)是Rasmus Lerdorf推出的一種跨平臺的服務器端的嵌入式腳本語言,大量借用C、Java和Perl語言的語法,并結合PHP自身的特性,使Web開發者能夠快速地編制出動態網頁。PHP完全是免費的,可以自由下載,甚至可以不受限制地獲得源碼,從而加進自己的特色。 JSP(Java Server Pages)是基于Java的技術,也是一種開發Web后臺程序的技術,是由Sun Microsystems公司于1999年6月推出的新技術,是基于JavaServlet以及整個Java體系的Web開發技術。該技術是由Sun Microsystems公司倡導、許多公司與企業參與一起建立的一種先進、安全、開放和跨平臺的動態網頁技術標準,這種技術標準的意義在于找到了一種為應用和頁面開發人員平衡可移植性和易用性的開發方法。 2 性能與特點 ASP無需編譯、鏈接即可解釋執行,它集成于HTML中,使用常規文本編輯器就可以開發。ASP程序與瀏覽器無關,用戶端只要使用常規的可執行HTML碼的瀏覽器即可瀏覽。ASP的腳本語言(VBScript,Jscript)是在服務器上執行,客戶端的瀏覽器不需要執行這些腳本語言。ASP還可通過Ac-tiveX服務器端組件(ActiveX Server Component)來擴充功能,ActiveX Server Component可使用VB,Java,C++,COBOL等語言來實現。此外,ASP技術可以和任何腳本語言兼容。除了可使用Vbscript或Jscript語言來作為腳本語言,還可通過插件的方式,使用由第三方所提供的其他腳本語言。ASP的源程序代碼不會被傳到用戶的瀏覽器,可以保護源程序。被傳到客戶端瀏覽器的是ASP程序的執行結果。但ASP的安全性不好,漏洞比較多。另一方面,ASP程序雖然十分簡單,容易編寫,但是由于ASP使用的主要腳本語言是VBScript,功能有限。 PHP簡單易學,可以方便快捷地編寫出功能強大,可同時運行于Windows、Unix、Linu平臺的Web后臺程序,任何人在遵守GNU條約的情況下,均可免費使用并更改其源碼。PHP采用與ASP類似的邊解釋邊執行內嵌的腳本代碼以訪問后臺數據庫并與用戶交互。提供眾多的協議支持,如HTTP、IMAP、POP3、及NNTP等,使得PHP在跨平臺方面有很好的表現。PHP支持目前絕大多數的數據庫,具有許多與各類數據庫連接的函數。它與MYSQL是一對絕佳的組合,此外還可以自己編寫外圍的函數間接存取數據庫。其優點是支持的數據庫系統很多,而且可以自己定制PHP解釋器的功能,但是PHP提供的數據庫接口支持不統一,比如對Oracle、MySQL、Sybase等數據庫的訪問接口,彼此都不一樣,這是PHP的一個缺點。 JSP程序的最大特點是將網頁內容的生成和顯示進行分離。使用JSP技術,Web頁面開發人員可以使用HTML或者XML標記來設計和格式化最終頁面的樣式。使用Java代碼段來生成頁面上的動態內容。生成網頁內容的程序代碼被封裝在JSP定界符內和JavaBeans組件中,所有的腳本都在服務器端編譯運行。JSP技術封裝了許多重要的功能,如訪問和實例化JavaBeans組件,控制HTTP連接,獲取客戶端的請求信息,下載Applet等。通過開發XML標記庫(Tag Library),JSP技術可以較方便地擴展。JSP頁面的內置腳本語言是基于Java編程語言的,擁有Java編程語言“一次編寫,各處運行”的特點,而且所有的JSP程序都將被編譯成為Java類文件(擴展名為class)。JSP程序具有Java技術的所有好處,包括內存管理和安全性。 3 三者的區別 3.1 運行環境 ASP只能運行于微軟的服務器產品上。Unix平臺下也有ChiliSoft公司開發的插件來支持ASP,但是ASP本身的功能有限,必須通過ASP和COM組件的組合來擴充,Unix下的COM組件實現起來非常困難。而PHP可在Windows和Unix平臺的Web服務器上運行,還可以支持IIS和Apache等通用Web服務器,但是用戶在更換平臺時,需要做比較大的改變。JSP同PHP類似,幾乎可以運行于所有平臺。目前,幾乎所有平臺都支持Java,JSP+JavaBean可以在所有平臺下通行無阻。從一個平臺移植到另外一個平臺,JSP和JavaBean甚至不用重新編譯,因為Java字節碼都是標準的、與平臺無關的。 3.2 開發語言和性能比較 ASP使用VBScript和Jscript等腳本語言,JSP技術用Java語言作為腳本語言,Java是成熟、強大、易于擴充的編程語言,優于基于Basic的腳本語言。如:Java的可執行性優于VBScript或JScript語言,因為它們利用Java技術并且都被編譯成Java Servlets。PHP采用HTML的代碼內嵌腳本語言,該語言中混合了C、Java、Perl以及它自己獨有的語法,并主要來源于C語言,如控制流語句與C幾乎完全一樣、變量之間的運算符與C的類似、函數定義和調用與C的類似等。 3.3 運行方式和執行效率 ASP和PHP在執行時,通過服務器將腳本語言解釋成HTML語言。JSP首先是編譯成Java Servlet引擎執行。在性能比較上有人做過試驗,對這三種語言分別做循環性能測試及存取Oracle數據庫測試。無論是在循環性能測試中,還是在數據庫測試中,JSP最快。 3.4 函數支持 JSP程序使用Java語言作為腳本語言,而且最后被編譯為Java的class文件。這意味著在JSP程序中,可以使用任何可用的Java類庫。目前,Java的類庫超過了2萬個,類庫里面含有很多類,類里面又含有很多方法,這些類庫幾乎都可以在JSP程序中應用,而且Java的類庫還在不斷豐富之中。ASP技術由微軟公司把持,第三方廠家很難介入。在ASP程序中,不能夠直接調用C/C++的函數庫,一般需要封裝為ActiveX組件的形式,才能夠在ASP程序中加以應用,而ActiveX組件的開發難度是較大的。PHP有6000多個函數支持,但是這6000多個函數有很多都是針對各種數據庫系統的支持函數,而沒有一個公共的接口統一封裝起來。 3.5 應用范圍 在國內,PHP與ASP技術應用最為廣泛。但在國外,JSP已經是比較流行的一種技術,尤其是電子商務類的網站,多采用JSP。ASP的安全漏洞且不去說,PHP本身也存在很多缺點,首先,PHP缺乏規模支持。其次,缺乏多層結構支持。對于大負荷站點,解決方法只有一個:分布計算。數據庫、應用邏輯層、表示邏輯層彼此分開,而且同層也可在根據流量分開,組成二維陣列。而PHP則缺乏這種支持,且PHP提供的數據庫接口支持不統一,這就使得它不適合運用在電子商務中。ASP和JSP則沒有以上缺陷,ASP可以通過Microsoft Windows的COM/DCOM獲得ActiveX規模支持,通過DCOM和Transcation Server獲得結構支持;JSP可以通過JavaBeans和EJB獲得規模支持,通過EJB/CORBA以及眾多廠商的Application Server獲得結構支持。 3.6 性能比較 將ASP,PHP,JSP,CGI,ISAPI的性能做了一個比較,見表1。 從表1可以看出,JSP運行開銷小,可以跨平臺運行,擴展性很好。 4 結論 綜上所述,ASP、PHP和JSP三種Web應用開發技術各有所長,而JSP在對XML的支持方面、函數支持方面,相對于其他幾種技術有著明顯的優勢。JSP與XML結合非常緊密,JSP有兩種語法形式,其中的一種語法形式完全符合XML規范,使用這種語法形式的JSP程序看起來就是一個標準的XML文件。JSP程序中還可以使用Tag Library,可以自定義具有特定功能的Tag,應用于JSP程序中,因而擴展JSP的功能變得十分容易。預計在未來幾年里,國內將有愈來愈多的網站采用JSP技術。 參考文獻 1 張洪波等.JSP/HTML編程實作教程•北京:北京希望電子出版社,2001 2 丁振凡.JSP與ASP編程之若干比較.計算機時代,2001;(9) 3 侯艷鵬,董志鋒.Php性能分析及其應用.太原理工大學學報.2001;(6) 摘 要 介紹了ASP、PHP和JSP等Web動態信息發布技術各自的概念和特點,同時比較了各種發布技術的主要區別。通過分析,指出JSP技術是今后最重要的Web應用開發技術之一。
該文章在 2012/4/25 0:02:54 編輯過 |
關鍵字查詢
相關文章
正在查詢... |