版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7章
創(chuàng)建Web服務(wù)器程序本章要點(diǎn)7.1Internet概述7.2Web服務(wù)器程序簡(jiǎn)介7.3ISAPI編程7.4CGI編程7.5ISAPIDLL和CGI之間的相互轉(zhuǎn)化第7章創(chuàng)建Web服務(wù)器程序本章要點(diǎn)本章要點(diǎn) 在Internet概述的基礎(chǔ)上,對(duì)Web服務(wù)器程序進(jìn)行闡述。
結(jié)合實(shí)例說明了ISAPI編程。
結(jié)合實(shí)例說明了CGI編程。
返回本章首頁(yè)本章要點(diǎn) 在Internet概述的基礎(chǔ)上,對(duì)Web服務(wù)器7.1Internet概述7.1.1術(shù)語(yǔ)與標(biāo)準(zhǔn)7.1.2統(tǒng)一資源定位器7.1.3超文本標(biāo)記語(yǔ)言7.1.4HTTP服務(wù)器活動(dòng)返回本章首頁(yè)7.1Internet概述7.1.1術(shù)語(yǔ)與標(biāo)準(zhǔn)返回本7.1.1術(shù)語(yǔ)與標(biāo)準(zhǔn)與Web服務(wù)器應(yīng)用程序相關(guān)的幾個(gè)重要RFC標(biāo)準(zhǔn)包括:
RFC822:ARPAlnternet文本報(bào)文標(biāo)準(zhǔn),描述了報(bào)文頭標(biāo)的結(jié)構(gòu)和內(nèi)容。
RFC152l:MIME第一部分,描述封裝和傳遞多種格式和多段Internet信息的方法。
RFCl945:超文本傳輸協(xié)議(HTTP協(xié)議),描述了多媒體文檔的傳輸協(xié)議。返回本節(jié)7.1.1術(shù)語(yǔ)與標(biāo)準(zhǔn)與Web服務(wù)器應(yīng)用程序相關(guān)的幾個(gè)重要7.1.2統(tǒng)一資源定位器 URL對(duì)網(wǎng)絡(luò)資源的位置提供了一種抽象的識(shí)別方法,并用這種方法給資源定位。這里的資源是指Internet上可以被訪問的任何對(duì)象,包括文件、文檔、圖像、聲音等等,以及與Internet相連的任何形式的數(shù)據(jù)。URL是一個(gè)字符串,它的一般格式如下:協(xié)議://主機(jī)名/腳本文件名/路徑信息?查詢條件。返回本節(jié)7.1.2統(tǒng)一資源定位器 URL對(duì)網(wǎng)絡(luò)資7.1.3超文本標(biāo)記語(yǔ)言HTML文檔通過標(biāo)記(Tag)和屬性(Attribute)對(duì)超文本的語(yǔ)義進(jìn)行描述。HTML雖然本質(zhì)上并不是編程語(yǔ)言,但它卻是在開發(fā)HTML文檔時(shí)必須遵守的一套嚴(yán)格而且簡(jiǎn)明易懂的語(yǔ)法規(guī)則。也就是說,如果一個(gè)文檔是基于HTML標(biāo)準(zhǔn)的,則可以解釋某些標(biāo)記的含義。返回本節(jié)7.1.3超文本標(biāo)記語(yǔ)言HTML文檔7.1.4HTTP服務(wù)器活動(dòng)Web瀏覽器和Web服務(wù)器之間通過HTTP協(xié)議進(jìn)行通信。HTTP請(qǐng)求分為兩種類型,一種是GET請(qǐng)求,另一種是POST請(qǐng)求。Web服務(wù)器接收到客戶請(qǐng)求之后,將根據(jù)配置信息執(zhí)行一定數(shù)量的活動(dòng)。當(dāng)Web服務(wù)器應(yīng)用程序完成客戶請(qǐng)求之后。必須構(gòu)造一個(gè)HTML頁(yè)面或其他MIME內(nèi)容,并傳輸給客戶。返回本節(jié)7.1.4HTTP服務(wù)器活動(dòng)Web瀏覽器和Web服務(wù)器之7.2Web服務(wù)器程序簡(jiǎn)介 7.2.1Web服務(wù)器程序的種類7.2.2Web服務(wù)器應(yīng)用程序的邏輯結(jié)構(gòu)7.2.3調(diào)試服務(wù)器程序返回本章首頁(yè)7.2Web服務(wù)器程序簡(jiǎn)介 7.2.1Web服務(wù)器程7.2.1Web服務(wù)器程序的種類Delphi6中可以創(chuàng)建的Web服務(wù)器程序包括:
CGI程序、Win-CGI程序和ISAPI(MicrosoftServerDLL)、NSAPI(NetscapeServerDLL)。返回本節(jié)7.2.1Web服務(wù)器程序的種類Delphi6中可以創(chuàng)7.2.2Web服務(wù)器應(yīng)用程序的邏輯結(jié) WebServerWebApplicationWebModule(Dispatcher)WebRequestWebResponseActionItemContentRroducerContentRroducerContentRroducerActionItem圖7-1Web服務(wù)器程序的邏輯結(jié)構(gòu)返回本節(jié)7.2.2Web服務(wù)器應(yīng)用程序的邏輯結(jié) WebModu7.2.3調(diào)試服務(wù)器程序 不同類型的Web服務(wù)器程序,需要在支持相應(yīng)的服務(wù)器程序的服務(wù)器上進(jìn)行。調(diào)試ISAPI或NSAPI類型的程序,則要求在支持這種服務(wù)器程序的服務(wù)器上進(jìn)行。可以在服務(wù)器中編寫一定的代碼,作為用戶請(qǐng)求直接調(diào)用這些服務(wù)器程序生成的DLL;而調(diào)試CGI和WinCGI類型的服務(wù)器程序就比較困難一些,需要在服務(wù)器上執(zhí)行這些程序,并且需要編寫代碼作為用戶請(qǐng)求的信息。返回本節(jié)7.2.3調(diào)試服務(wù)器程序 不同類型的Web服務(wù)器程序,需7.3ISAPI編程 7.3.1返回靜態(tài)頁(yè)面 7.3.2返回動(dòng)態(tài)頁(yè)面 7.3.3接收用戶輸入的ISAPIDLL7.3.4一個(gè)完整的Web數(shù)據(jù)庫(kù)應(yīng)用程序返回本章首頁(yè)7.3ISAPI編程 7.3.1返回靜態(tài)頁(yè)面 返回本7.3.1返回靜態(tài)頁(yè)面 其步驟(具體制作如圖7-2~7-10所示):1.新建項(xiàng)目2.程序框架3.創(chuàng)建ActionItem4.為ActionItem編寫代碼5.設(shè)置服務(wù)器6.編譯ISAPI動(dòng)態(tài)鏈接庫(kù)程序7.調(diào)試ISAPI動(dòng)態(tài)鏈接庫(kù)7.3.1返回靜態(tài)頁(yè)面 其步驟(具體制作如圖7-2~7-圖7-2選擇WebServerApplication圖7-2選擇WebServerApplication圖7-3選擇生成Web服務(wù)器程序的類型圖7-3選擇生成Web服務(wù)器程序的類型圖7-4ISAPI動(dòng)態(tài)鏈接庫(kù)的框架圖7-4ISAPI動(dòng)態(tài)鏈接庫(kù)的框架圖7-5ActionEditor對(duì)話框圖7-5ActionEditor對(duì)話框圖7-6使用對(duì)象監(jiān)視器為ActionItem設(shè)置屬性圖7-6使用對(duì)象監(jiān)視器為ActionItem設(shè)置屬性圖7-7選擇存放ISAPI動(dòng)態(tài)鏈接庫(kù)的目錄圖7-7選擇存放ISAPI動(dòng)態(tài)鏈接庫(kù)的目錄圖7-8設(shè)置scripts目錄為可執(zhí)行的圖7-8設(shè)置scripts目錄為可執(zhí)行的圖7-9設(shè)置編譯后的文件后綴名為dll圖7-9設(shè)置編譯后的文件后綴名為dll圖7-10瀏覽器中顯示由ISAPI動(dòng)態(tài)鏈接庫(kù)生成的靜態(tài)HTML頁(yè)面返回本節(jié)圖7-10瀏覽器中顯示由ISAPI動(dòng)態(tài)鏈接庫(kù)生成的靜態(tài)H7.3.2返回動(dòng)態(tài)頁(yè)面 其具體的步驟如下:(1)在projectl項(xiàng)目文件中選擇WebModule部件,激活A(yù)ctionEditor對(duì)話框。(2)在ActionEditor對(duì)話框新添加一個(gè)ActionItem。(3)將第二個(gè)ActionItem命名為Dynamicdll,PathInfo屬性設(shè)置為DateTime。(4)為新建的ActionItem的OnAction事件編寫代碼。7.3.2返回動(dòng)態(tài)頁(yè)面 其具體的步驟如下:圖7-11瀏覽器中顯示由ISAPI動(dòng)態(tài)鏈接庫(kù)生成的動(dòng)態(tài)HTML頁(yè)面返回本節(jié)圖7-11瀏覽器中顯示由ISAPI動(dòng)態(tài)鏈接庫(kù)生成的動(dòng)態(tài)H7.3.3接收用戶輸入的ISAPIDLL1.OnAction事件的參數(shù)(主要屬性如表7-1)2.創(chuàng)建用戶輸入的HTML頁(yè)面(創(chuàng)建好的HTML頁(yè)面如圖7-12所示)3.添加PageProducer控件(具體含義如表7-2)4.為項(xiàng)目文件新建一個(gè)ActionItem5.調(diào)試程序(如圖7-13~7-15所示)7.3.3接收用戶輸入的ISAPIDLL1.OnAct表7-1TwebReques對(duì)象的主要屬性屬性屬性的作用Query由GET方法請(qǐng)求獲得全部參數(shù)組成的字符串QueryFields一個(gè)經(jīng)過分解的查詢字段Content由POST方法請(qǐng)求獲得全部參數(shù)組成的字符串ContentFields一個(gè)經(jīng)過分解的Content字段表7-1TwebReques對(duì)象的主要屬性屬性屬性的作用圖7-12創(chuàng)建好的用戶輸入界面圖7-12創(chuàng)建好的用戶輸入界面表7-2MethodType方法的參數(shù)值及其含義參數(shù)值具體含義MtGet采用GET方法接收用戶請(qǐng)求MtPost采用POST方法接收用戶請(qǐng)求MtPut用Content的值代替URL屬性確定的資源的用戶請(qǐng)求MtHead要求獲得有關(guān)HTTP服務(wù)器響應(yīng)信息種類的請(qǐng)求MtAny任何其他形式的用戶請(qǐng)求表7-2MethodType方法的參數(shù)值及其含義參數(shù)值具圖7-13在用戶輸入界面中輸入數(shù)據(jù)圖7-13在用戶輸入界面中輸入數(shù)據(jù)圖7-14使用GET方式得到的服務(wù)器響應(yīng)信息圖7-14使用GET方式得到的服務(wù)器響應(yīng)信息圖7-15使用POST方式得到的服務(wù)器響應(yīng)信息返回本節(jié)圖7-15使用POST方式得到的服務(wù)器響應(yīng)信息返回本節(jié)7.3.4一個(gè)完整的Web數(shù)據(jù)庫(kù)應(yīng)用程 1.將數(shù)據(jù)表作為服務(wù)器程序的響應(yīng)信息(如圖7-16所示)2.增加查詢功能(Query控件和QueryTableProducer控件的屬性設(shè)置如表7-3所示)7.3.4一個(gè)完整的Web數(shù)據(jù)庫(kù)應(yīng)用程 1.將數(shù)據(jù)表作為圖7-16作為服務(wù)器響應(yīng)信息輸出的數(shù)據(jù)表圖7-16作為服務(wù)器響應(yīng)信息輸出的數(shù)據(jù)表表7-3控件的屬性設(shè)置控
件屬性設(shè)置Query1DatabaseName:DBDEMOSQueryTableProducer1Query:Query1
RowAttributes.Align:haCenter
TableAttributes.Border:1返回本節(jié)表7-3控件的屬性設(shè)置控件屬性設(shè)置Query1Da7.4CGI編程 7.4.1一個(gè)時(shí)間顯示程序7.4.2命令行處理7.4.3CGI環(huán)境變量7.4.4CGI數(shù)據(jù)庫(kù)編程返回本章首頁(yè)7.4CGI編程 7.4.1一個(gè)時(shí)間顯示程序返回本章7.4.1一個(gè)時(shí)間顯示程序 單擊“Project”主菜單下的“RemovefromProject”選項(xiàng),將unit單元從項(xiàng)目文件中移走,然后按下Ctrl+F12鍵,選擇項(xiàng)目文件,使它在代碼編輯器中顯示出來。在它的Program保留字后加入一個(gè){¥APPTYPECONSOLE}編輯器指令,將它轉(zhuǎn)換成控制臺(tái)應(yīng)用程序,最后刪除大部分項(xiàng)目源代碼,如果直接在Delphi環(huán)境中運(yùn)行該程序,則它會(huì)打開一個(gè)終端窗口,并輸出writeln語(yǔ)句的內(nèi)容,如圖7-19所示。7.4.1一個(gè)時(shí)間顯示程序 單擊“Pr圖7-19在Delphi環(huán)境中執(zhí)行的結(jié)果返回本節(jié)圖7-19在Delphi環(huán)境中執(zhí)行的結(jié)果返回本節(jié)7.4.2命令行處理 CGI應(yīng)用程序接收用戶輸入的方法有兩種:(1)使用它的命令行參數(shù)識(shí)別頁(yè)面(激活應(yīng)用程序)的URL,而URL通常在應(yīng)用程序名后面包括附加的參數(shù)。(2)系統(tǒng)使用一系列環(huán)境變量向CGI應(yīng)用程序進(jìn)一步傳遞信息。在Win_CGI中,同樣通過INI文件來傳遞,而沒有使用環(huán)境變量。返回本節(jié)7.4.2命令行處理 CGI應(yīng)用程序接收用戶輸入的方法有7.4.3CGI環(huán)境變量表7-4CGI環(huán)境變量環(huán)境變量含義SERVER_NAMEWeb服務(wù)器主機(jī)名SERVER_PROTOCOLHTTP請(qǐng)求的協(xié)議SERVER_SOFTWAREWeb服務(wù)器軟件的名稱和版本GATEWAY_INTERFACECGI支持的版本REQUEST_METHOD請(qǐng)求使用的對(duì)象方法,可以是GET或者POST7.4.3CGI環(huán)境變量表7-4CGI環(huán)境變量環(huán)境變DOCUMENT_ROOT目錄主機(jī)文檔或者Web服務(wù)器PATH_TRANSLATES與服務(wù)器有關(guān)的物理路徑HTTP_PEFERER激活CGI應(yīng)用程序的文檔URLSCRIPT_NAME被執(zhí)行的CGI應(yīng)用程序相關(guān)的路徑(基于服務(wù)器地址)PATH_INFO向CGI應(yīng)用程序傳遞的路徑,位置在應(yīng)用程序名和查詢字符串之間QUERY_STRING向程序傳遞的查詢,當(dāng)請(qǐng)求對(duì)象的方法是GET時(shí),該字符串用問號(hào)追加到URL中返回本節(jié)DOCUMENT_ROOT目錄主機(jī)文檔或者Web服務(wù)器PAT7.4.4CGI數(shù)據(jù)庫(kù)編程 (1)依次單擊“File”→“New”→“Other”選項(xiàng),然后在Business頁(yè)面中選擇DBWebApplicationWizard,如圖7-24所示。單擊“OK”按鈕,則出現(xiàn)選擇Web數(shù)據(jù)庫(kù)應(yīng)用程序類型對(duì)話框,如圖7-25所示。(2)單擊“Next”按鈕,將出現(xiàn)選擇數(shù)據(jù)表對(duì)話框,如圖7-26所示。選擇好數(shù)據(jù)表后,單擊“Next”按鈕,將出現(xiàn)選擇要顯示的字段對(duì)話框,如圖7-27所示。7.4.4CGI數(shù)據(jù)庫(kù)編程 (1)依次單擊“File”→選擇完需要顯示的字段后,單擊“Next”按鈕,則出現(xiàn)設(shè)置Web頁(yè)面對(duì)話框,如圖7-28所示。(3)所有的設(shè)置都完成后,則出現(xiàn)確認(rèn)對(duì)話框,如圖7-29所示。單擊“Finish”按鈕,就完成了創(chuàng)建一個(gè)Web項(xiàng)目文件的工作。向?qū)槲覀兩闪薟ebModule1模塊,其中加入了三個(gè)控件如圖7-30所示。編譯并運(yùn)行該程序,則在瀏覽器中顯示的結(jié)果如圖7-31所示。選擇完需要顯示的字段后,單擊“Next”按圖7-24利用DBWebApplicationWizard向?qū)?chuàng)建項(xiàng)目文件圖7-24利用DBWebApplicationWi圖7-25選擇Web數(shù)據(jù)庫(kù)應(yīng)用程序類型
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 滑雪俱樂部山坡租賃合同
- 音樂節(jié)墻體壁畫施工合同
- 地下安全設(shè)施全站儀租賃協(xié)議
- 綠色建筑土建施工合同范本
- 食品加工合同樣本
- 舞蹈室內(nèi)部改造合同工程
- 住房公積金購(gòu)置二手房合同范例
- 鐵路維護(hù)工人施工協(xié)議
- 燃?xì)夤艿浪娫O(shè)施施工合同
- 建筑門窗工程施工合同及安全協(xié)議
- 中華人民共和國(guó)精神衛(wèi)生法課件
- 2004式警車外觀制式涂裝規(guī)范
- 長(zhǎng)距離輸氣管線工藝設(shè)計(jì)方案
- 《銷售管理實(shí)務(wù)》ppt課件匯總(完整版)
- 房屋無(wú)償使用協(xié)議書(8篇)
- 中央銀行理論與實(shí)務(wù)期末復(fù)習(xí)題
- 國(guó)家開放大學(xué)電大本科《國(guó)際私法》案例題題庫(kù)及答案(b試卷號(hào):1020)
- 喜慶中國(guó)節(jié)春節(jié)習(xí)俗文化PPT模板
- 測(cè)井儀器設(shè)計(jì)規(guī)范--電子設(shè)計(jì)
- 用特征方程求數(shù)列的通項(xiàng)
- 素材庫(kù)管理系統(tǒng)架構(gòu)(共13頁(yè))
評(píng)論
0/150
提交評(píng)論