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