官术网_书友最值得收藏!

1.3 動態(tài)網(wǎng)頁技術(shù)CGI/ASP/PHP/JSP

1.3.1 CGI

CGI(Common Gateway Interface,通用網(wǎng)關(guān)接口),是能在Web服務(wù)器上運行的一個程序,并由來自于瀏覽者的輸入觸發(fā)。在Web服務(wù)器上,CGI-BIN目錄是存放CGI腳本的地方。這些腳本使WWW服務(wù)器和瀏覽器能運行外部程序。CGI能夠讓瀏覽者與服務(wù)器進(jìn)行交互,比如我們曾經(jīng)遇到過在網(wǎng)絡(luò)上填表或者進(jìn)行搜索,很可能用的是CGI。

CGI應(yīng)用程序可以由大多數(shù)的編程語言編寫,如Perl(Practical Extraction and Report Language)、C\C++、Java和Visual Basic等。

CGI應(yīng)用程序可以動態(tài)產(chǎn)生網(wǎng)頁,其工作過程如下:

(1)瀏覽器通過HTML表單或超鏈接請求指上一個CGI應(yīng)用程序的URL。

(2)服務(wù)器收發(fā)到請求,執(zhí)行指定的CGI應(yīng)用程序。

(3)CGI應(yīng)用程序執(zhí)行所需要的操作,通常是基于瀏覽器輸入的內(nèi)容。

(4)CGI應(yīng)用程序把結(jié)果格式化為Web服務(wù)器和瀏覽器能夠理解的文檔(通常是HTML網(wǎng)頁)。

(5)Web服務(wù)器把結(jié)果返回到瀏覽器中。

CGI應(yīng)用程序的優(yōu)點是可以獨立運行,易于使用,但是當(dāng)大量用戶同時訪問同一網(wǎng)頁時會同時使用一個CGI應(yīng)用程序,響應(yīng)會變慢,Web服務(wù)器速度也會受到很大影響。更嚴(yán)重的是,CGI應(yīng)用程序運行在瀏覽器可以請求的服務(wù)器系統(tǒng)上,執(zhí)行時需要占用服務(wù)器CPU時間和內(nèi)存。如果有成千上萬的這種程序同時運行,則會對服務(wù)器系統(tǒng)提出極高的要求,考慮到每個對使用CGI的動態(tài)網(wǎng)頁的訪問都會在服務(wù)器上產(chǎn)生一個進(jìn)程,需要對訪問的數(shù)量慎重考慮,以防止服務(wù)器的系統(tǒng)發(fā)生崩潰。

1.3.2 ASP

ASP(Active Server Pages),活動服務(wù)器頁面,是一種由Microsoft公司開發(fā)的可以動態(tài)產(chǎn)生網(wǎng)頁內(nèi)容的技術(shù)。ASP向用戶提供動態(tài)網(wǎng)頁的功能和CGI應(yīng)用程序非常相似。它可以在HTML程序代碼中內(nèi)嵌一些腳本語言(Scripting Language),如JavaScript和VBScript。只要服務(wù)器端安裝了適當(dāng)?shù)木幾g程序引擎,服務(wù)器便可以調(diào)用此編譯程序來執(zhí)行腳本語言,然后將結(jié)果傳送到客戶端的瀏覽器上。

ASP雖然功能非常優(yōu)越,因為腳本是在服務(wù)器端運行的,所以Web服務(wù)器完成所有處理后,將標(biāo)準(zhǔn)的HTML頁面送往瀏覽器。這意味著,ASP只能在可以支持的服務(wù)器上運行,但目前只能在微軟公司的Windows NT平臺的IIS服務(wù)器上執(zhí)行,限制了ASP的應(yīng)用。

提示現(xiàn)在也有第三方插件使ASP可以在Linux上運行,但效果并不是很好。

1.3.3 PHP

PHP是一種HTML內(nèi)嵌式的語言,PHP與微軟的ASP頗有幾分相似,都是一種在服務(wù)器端執(zhí)行的嵌入HTML文檔的腳本語言,語言的風(fēng)格有點類似于C語言,現(xiàn)在被很多的網(wǎng)站編程人員廣泛運用。PHP獨特的語法混合了C、Java、Perl及PHP自創(chuàng)新的語法。它可以比CGI或者Perl更快速執(zhí)行動態(tài)網(wǎng)頁。PHP是將程序嵌入到HTML文檔中去執(zhí)行,執(zhí)行效率比完全生成HTML標(biāo)記的CGI要高許多,與同樣是嵌入HTML文檔的腳本語言JavaScript相比,PHP在服務(wù)器端執(zhí)行,充分利用了服務(wù)器的性能。PHP執(zhí)行引擎還會將用戶經(jīng)常訪問的PHP程序駐留在內(nèi)存中,其他用戶再一次訪問這個程序時就不需要重新編譯程序了,只要直接執(zhí)行內(nèi)存中的代碼就可以了,這也是PHP高效率的體現(xiàn)之一。PHP具有非常強大的功能,所有的CGI或者JavaScript的功能PHP都能實現(xiàn),而且支持幾乎所有流行的數(shù)據(jù)庫以及操作系統(tǒng)。

PHP原先是Hypertext Preprocessor(超級文本預(yù)處理語言)的縮寫,在1995年以Personal Home Page Tools(PHP Tools)開始對外發(fā)表第一個版本,到現(xiàn)在已經(jīng)發(fā)展到5.0版本,是廣泛應(yīng)用于Linux的服務(wù)端腳本語言。PHP通常在以MySQL數(shù)據(jù)庫為后臺數(shù)據(jù)庫的小型動態(tài)網(wǎng)站的開發(fā)上得到了較廣泛的應(yīng)用。

1.3.4 JSP

JSP(Java Server Page)是Sun公司推出的新一代動態(tài)網(wǎng)站開發(fā)技術(shù),使用JSP標(biāo)識或者小腳本來生成頁面上的動態(tài)內(nèi)容,完全解決了目ASP和PHP的腳本級執(zhí)行的缺點。JSP可以在Servlet和JavaBean的支持下,完成功能強大的動態(tài)網(wǎng)站程序的開發(fā)。JSP的主要技術(shù)特點包括以下內(nèi)容。

1.將內(nèi)容的生成和顯示進(jìn)行分離

使用JSP技術(shù),Web頁面開發(fā)人員可以使用HTML或者XML標(biāo)識來設(shè)計和格式化最終頁面。生成內(nèi)容的邏輯被封裝在標(biāo)識和JavaBean組件中,并且捆綁在小腳本中,所有的腳本在服務(wù)器端運行。如果核心邏輯被封裝在標(biāo)識和JavaBean中,那么其他人,如Web管理人員和頁面設(shè)計者,能夠編輯和使用JSP頁面,而不影響頁面內(nèi)容的生成。

在服務(wù)器端,JSP引擎解釋JSP標(biāo)識和小腳本,生成所請求的內(nèi)容(例如,通過訪問JavaBean組件,使用JDBC技術(shù)訪問數(shù)據(jù)庫,或者包含文件),并且將結(jié)果以HTML(或者XML)頁面的形式發(fā)送回瀏覽器。這有助于作者保護(hù)自己的代碼,同時保證任何基于HTML的Web瀏覽器的完全可用性。

2.強調(diào)可重用的組件

絕大多數(shù)JSP頁面依賴于可重用的、跨平臺的組件(JavaBean或者Enterprise JavaBean組件)來執(zhí)行應(yīng)用程序所要求的更為復(fù)雜的處理。開發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使得這些組件能為更多的使用者或者客戶團(tuán)體所使用。基于組件的方法加速了總體開發(fā)過程,優(yōu)化了程序的結(jié)構(gòu)。

3.采用標(biāo)識簡化頁面開發(fā)

JSP技術(shù)封裝了許多功能,這些功能是在易用的,與JSP相關(guān)的XML標(biāo)識中進(jìn)行動態(tài)內(nèi)容生成所需要的。標(biāo)準(zhǔn)的JSP標(biāo)識能夠訪問和實例化JavaBean組件、設(shè)置或者檢索組件屬性、實現(xiàn)頁面之間的跳轉(zhuǎn),以及執(zhí)行用其他方法更難于編碼和耗時的功能。

通過開發(fā)定制標(biāo)識庫,JSP技術(shù)是可以擴(kuò)展的。第三方開發(fā)人員和其他人員為常用功能創(chuàng)建自己的標(biāo)識庫,這使得Web頁面開發(fā)人員能夠使用如普通的頁面標(biāo)識一樣的組件來工作,執(zhí)行特定功能,簡化開發(fā)過程。

JSP技術(shù)很容易整合到多種應(yīng)用體系結(jié)構(gòu)中,以利用現(xiàn)存的工具和技巧,并且擴(kuò)展到能夠支持企業(yè)級的分布式應(yīng)用。作為采用Java技術(shù)家族的一部分,以及Java 2(企業(yè)版體系結(jié)構(gòu))的一個組成部分,JSP技術(shù)能夠支持高度復(fù)雜的基于Web的應(yīng)用。

由于JSP頁面的內(nèi)置腳本語言是基于Java編程語言的,而且所有的JSP頁面都被編譯成為Java Servlet,所以JSP頁面就具有Java技術(shù)的所有優(yōu)點,包括健壯的存儲管理和安全性。作為Java平臺的一部分,JSP擁有Java編程語言“一次編寫,各處運行”的特點。隨著越來越多的供應(yīng)商將JSP支持添加到自己的產(chǎn)品中,用戶可以使用自己所選擇的服務(wù)器和工具,更改工具或服務(wù)器并不影響當(dāng)前的應(yīng)用。

JSP同PHP類似,幾乎可以運行于所有平臺,如Windows NT、Linux、UNIX。Windows NT下的IIS通過一個插件,如JRUN或者ServletExec就能支持JSP。著名的Web服務(wù)器Apache已經(jīng)能夠支持JSP。由于Apache廣泛應(yīng)用在Windows NT、UNIX和Linux上,因而JSP有更廣泛的運行平臺。雖然現(xiàn)在Windows NT操作系統(tǒng)占了很大的市場份額,但是在服務(wù)器方面UNIX的優(yōu)勢仍然很大,而新崛起的Linux更是來勢不小。從一個平臺移植到另外一個平臺,JSP和JavaBean甚至不用重新編譯,因為Java字節(jié)碼都是標(biāo)準(zhǔn)的、與平臺無關(guān)。

從性能、開發(fā)效率、支持平臺等各角度綜合考慮,我們可以認(rèn)為JSP是未來Web程序開發(fā)的主要技術(shù)。

主站蜘蛛池模板: 平利县| 阿拉尔市| 辉县市| 成都市| 射洪县| 新沂市| 遵义县| 抚顺市| 德昌县| 张家港市| 贵定县| 新闻| 嵊泗县| 巫溪县| 岐山县| 长顺县| 衢州市| 东平县| 泰宁县| 铁力市| 河北省| 岚皋县| 监利县| 江都市| 大同县| 双江| 仁布县| 日土县| 上饶市| 山西省| 皮山县| 杭州市| 泸水县| 永修县| 江都市| 景泰县| 定安县| 衡山县| 双牌县| 唐山市| 义马市|