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