(四川機電職業技術學院 四川 攀枝花 617000)
動態網頁指的是跟靜態網頁相對的一種網頁編程技術,ASP、PHP、JSP三者都是面向Web服務器的技術,客戶端瀏覽器不需要任何附加的軟件支持,程序代碼的執行結果被重新嵌入到HTML代碼中,然后一起發送給瀏覽器。在ASP、PHP、JSP環境下,HTML代碼主要負責描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的HTML頁面只依賴于Web服務器,而ASP、PHP、JSP頁面需要附加的語言引擎分析和執行程序代碼。
ASP是由微軟開發的動態網頁技術,具體指應用于WEB服務端的開發環境,主要使用的是VBScript和JavaScript兩種腳本語言嵌入到HTML中進行服務端的編程,也可以在安裝腳本引擎的基礎上使用其他的腳本語言。ASP的主要優點為形式簡單,容易編輯、容易上手、編寫不易出錯等。
ASP技術運用瀏覽器/Web服務器/數據庫服務器三層構造。用戶功能層處理服務器和瀏覽器、服務器和數據庫服務器之間的接口問題,實現Web服務器對用戶的響應、解釋以及對數據庫服務器的訪問功能;數據處理層處理數據庫服務器與Web服務器的接口問題,實現數據庫服務器對Web服務器的訪問響應。由于所有的程序不需要在客戶瀏覽器上執行,而是在服務器端直接執行,等到程序執行結束后,服務器把結果反饋給客戶瀏覽器,所以ASP技術能夠解決客戶端的瀏覽器不可以運行已知代碼這一問題,減輕了用戶端瀏覽器的壓力,保障了交互的實時性。
PHP提供類和對象,支持構造器、提取類等。因為PHP的基本思想是面向對象,這也體現了基于Web編程需要很強的面向對象編程能力的事實。PHP是一種跨平臺的語言,幾乎可以運行在所有環境下,包括Windows,Unix,Linux的Web服務器。
PHP的使用是免費的,即它是自由運用到在眾多平臺的。PHP技術具有執行效率高、速度快、耗費較少的優勢。PHP有很多的長處,但同時也有劣勢,包括在沒有多層次結構支持的情況下,一些大型應用的需求得不到滿足;規模空間較小,只能用分布式計算來解決高負荷站點的計算問題,這樣很難開發出穩定的站點應用系統。另一方面在PHP的后臺數據庫改變時,必須對源代碼做相應的修改才能運行,增加了系統的維護時間和成本。由于PHP主要支持企業層級以下的形式,所以幾乎不可能在企業層級和大型站點使用PHP,再加上PHP不能進行編譯性質的開發工作,從而不能實現商品化的開發應用。
在JSP技術中,設計網頁和格式化最終的網頁是通過HTML或者XML標識來實現的,Web網頁開發人員使用JSP或者小腳本來生成頁面上的動態內容。生成的內容由JSP標識和JavaBeans/EJB組件封裝,并且被捆綁在小腳本中。腳本都是在服務器端運行的,由Web網頁管理者和網頁開發人員來編輯和使用JSP頁面,對腳本的內容不會造成影響。在服務器端,JSP引擎翻譯JSP標識和小腳本,形成所請求的內容(如通過訪問JavaBeans組件,使用JDBC來訪問數據庫系統),最后把結果以HTML(或XML)網頁的方式返回給瀏覽器。
JSP具有許多優點:(1)適用平臺廣。JSP可以運行在具有Java虛擬環境下的一切平臺。(2)代碼執行高效。JSP代碼只在第一次被運行時被編譯,此后每次執行均不需要再次編譯。減少了執行時間,提高了執行效率。(3)代碼可移植性好。JSP的生成以Java語言為背景,承接了Java的一切特征,所以在一種平臺的機器上運行通過的代碼,只要做相應的少許修改,便能夠很輕松地在另一種平臺的機器上運行成功。
(1)穩定性。PHP的穩定性要高于ASP,但是都不如傳統的CGI程序,CGI程序直接由操作系統控制,系統的穩定性不會受到程序差錯的干擾,JSP的穩定性也比較良好。(2)開發維護時間。PHP與ASP的開發和維護時間都比較良好,但是JSP的開發速度比較慢。在與網頁的結合能力方面,ASP與PHP都比較良好,而JSP無法內嵌HTML語法,會影響開發效果。(3)安全性。ASP曾經發生過比較嚴重的漏洞,后微軟推出了針對該漏洞的補丁,除此之外ASP使用的組件也會導致系統不安全。PHP在與眾多的商業網站的使用過程中,并沒有出現過安全問題,傳統的CGI程序是由操作系統直接管理的,因此破解難度很高,也具有一定的安全性。(4)擴展性。PHP的擴展性不如ASP的擴展性強,ASP可以通過使用JSCRIPT、PELSCRIPT或XSRIPT來擴展使用腳本語言。(5)執行性。PHP和早期的ASP都屬于解釋型,執行效率較慢,JSP與后期的ASP相同,也在執行效率上有明顯的提高。
由于IIS支持的ASP的開發商是Microsoft,因此只能運行于在Microsoft的服務器產品IIS和PWS上。Unix下也有相應插件來支撐ASP,但是需要對ASP進行與COM疊加的擴充,Unix下的COM實現也不易。ASP.NET是基于語言的編譯運行程序,這種基本庫擁有的消息機制可以讓數據接口能夠與ASP.NET進行無縫銜接,其強大的適應性使其可以運行在WEB應用軟件開發的所有平臺當中。在很大程度上,ASP.NET可以與ASP進行兼容,具有更好的伸縮性和穩定性。JSP是屬于JAVA旗下,因此也具備了Java的優勢,可以運行于所有平臺。如果在NT下IIS要能運行JSP需要增加一個類似JRUN的插件。世界排名第一的WEB服務器APACHE已經能夠支持JSP。在不同的平臺進行移植的時候,JSP和JavaBean不用再重新編譯,因為JAVA字節碼都是標準的與平臺無關的。PHP可以在Windows、Unix、Linux的WEB服務器上正常的運行,其語法也混合了多種開發語言,開發者不僅對其更容易掌握,而且還可以快速高效的編碼動態頁面。用戶在對平臺進行更換時,可以不用修改PHP代碼。當前的主流的WEB服務器軟件由IIS和APACHE組成。常用的開發組合有如下:(1)IIS環境。ASP+ACCESS、ASP+SQL SERVER、ASP.NET+ACCESS、ASP.NET+SQL SERVER。(2)APACHE環境。JSP+ORACLE、JSP+MYSQL、PHP+MYSAL。
目前在國內應用最為廣泛的是PHP和ASP。PHP本身存在的缺陷使其不適合在大型的電子商務網站中使用,而更適合小型的商業網站,JSP作為一種比較新興的技術,在國內使用得比較少,但是在國外,JSP已經是比較流行的一種技術,尤其是電子商務類的網站。JSP基于平臺和服務器的獨立性以及可擴展性可以使JSP對WEB數據庫的應用當中更具有競爭力。PHP缺乏規模、多結構以及分布計算的支持,而且對除MYSQL以外的數據庫接口不統一,導致其無法很好地使用在商務網站中。但是在對體系進行完善后,PHP與JAVA也實現了連接,使其也可以在企業級的市場中被應用,可以在某一些方面取代JSP。ASP和JSP則不存在以上問題,ASP可以通過COM/DCOM獲得Activex規模支持,通過DOOM和TRANSACTION SERVER獲得結構支持。JSP可以通過JAVA CLASS和EJB獲得規模支持,通過EJB或者CORBA獲得結構支持。
WEB后端開發語言當中,ASP、PHP以及JSP是目前動態網頁設計的三種主要的設計技術。在對ASP、PHP和JSP三種技術進行比較以后,它們都各有千秋,相互抗衡,在當前的動態網頁設計中均占有一定的市場。三者相比較,JSP應該是未來發展的趨勢,當前國外一些大型的電子商務解決方案提供商都采用JSP/SERVLET;就小型的商業網站、個人網站以及校園網站來說,主要是ASP和PHP技術來支撐。由于JSP以功能強大的Java為基礎,JSP的靈活性很強,發展前景巨大,被開發并運用于各種大型網站。