售前電話
135-3656-7657
售前電話 : 135-3656-7657
上面討論的H'I'ML只提供單向通信能力,客戶可以點(diǎn)擊請(qǐng)求服務(wù)器提供所需的頁面,但是反過來服務(wù)器向客戶請(qǐng)求信息就難以做到。隨著Web的廣泛使用,越來越多的應(yīng)用需要客戶和服務(wù)器之間進(jìn)行交互式通信,例如電子購物、數(shù)據(jù)庫訪問、免費(fèi)軟件散發(fā)等都要求客戶填登記表、給出搜索關(guān)鍵詞、鍵入個(gè)人信息等。為此,HI'ML2.0版本引入了登記表(Form)這一重要的結(jié)構(gòu)。
登記表定義了多種類型輸入框(box),用戶可在這些框中寫入文字或作出選擇,H'I'ML用INPUT標(biāo)記進(jìn)行描述,其一般格式為:
(INPUTTYPE="···"NAME="…"VALUE="…"SIEE=…〉其中,
NAME指示變鼠名,用戶輸入該框的數(shù)據(jù)就賦值給該變量;VALUE指示該框輸人數(shù)據(jù)的缺省值;SIZE指示該框所占的列數(shù)。
登記表已定義的輸入框類型有:
.文本(TEXT)框:為輸入框的缺省類型,用戶需在此類框中鍵入字符串。
.無線電(RADIO)按鈕:單選按鈕,用戶需在所列的幾個(gè)選擇鈕中選擇一個(gè)。
.開關(guān)按鈕(CHECKBOX):多選按鈕,用戶可在所列兒個(gè)選擇按鈕中任選若干個(gè)。
· 門令(PASSWORD)框:同文本框,只是用戶鍵入字符串不顯示。
.文本域(TEXTAREA)框:同文本框,只是可包含多行文字。
.發(fā)送(SUBMIT)按鈕:點(diǎn)擊此鈕,將登記表所有信息送往服務(wù)器。
.復(fù)位(RESET)按鈕:點(diǎn)擊此鈕,登記表各框回復(fù)初態(tài)。
.隱形(HIDDEN)框:該框可顯示文字,但不能點(diǎn)擊或修改。其用途是用戶需在多個(gè)頁面中進(jìn)行登記選擇,某些選項(xiàng)已在前面的頁面中選定,在當(dāng)前頁面不允許再作變動(dòng)。
.圖形(IMAGE):用于活性地圖和其它可點(diǎn)擊圖像。用戶在地圖上點(diǎn)擊后,選定像素的座標(biāo)值賦給指定變量,登記表立即自動(dòng)返回給服務(wù)器。
如果單選或多選項(xiàng)較多,HI'ML還可提供菜單式選擇形式,此時(shí)所有選擇項(xiàng)列于標(biāo)記對(duì)(SE1ECT〉和(/SE1ECT〉之間。
登記表信息的發(fā)送有3種方式:點(diǎn)擊發(fā)送按鈕;點(diǎn)擊活性地圖;在只有一個(gè)文本框的登記表中,只要簡單地回車即可。
整個(gè)登記表的內(nèi)容列于標(biāo)記對(duì)(FORM〉和(/FORM〉之間,F(xiàn)ORM帶有2個(gè)必備參數(shù),其格式為:(FORMACTION="…''METI-10D=…〉
其中,ACTION指示發(fā)送目的地的URL,ME'IlIOD指示發(fā)送采用的方法。HTML定義了兩種發(fā)送方法:GET和POST,也就是登記表的各項(xiàng)信息如何以緊湊的文本形式表示,回送給服務(wù)器。
登記表信息送達(dá)后,服務(wù)器必須據(jù)此進(jìn)行操作和處理,例如檢查口令、核對(duì)信用卡、檢索數(shù)據(jù)、回送頁面等,這些處理和具體應(yīng)用有關(guān),并需和數(shù)據(jù)庫等交互,因此必須在服務(wù)器機(jī)器中設(shè)置后臺(tái)處理程序。由于Web服務(wù)器程序可由各單位自行開發(fā),類型各不相同,要使后臺(tái)程序在任何服務(wù)器上都能運(yùn)行,就需要定義一個(gè)服務(wù)器和登記表后臺(tái)處理程序之間的標(biāo)準(zhǔn)接口,通過這個(gè)接口,服務(wù)器將登記表信息傳遞給后臺(tái)程序,后臺(tái)程序則將處理后的輸出信息返回服務(wù)器。這-標(biāo)準(zhǔn)接口就稱之為CCI。它是WWW實(shí)現(xiàn)交互功能的主要E具e通常稱遵守CCI標(biāo)準(zhǔn)的服務(wù)器側(cè)后臺(tái)可執(zhí)行程序?yàn)镃CI程序,規(guī)定放在站點(diǎn)的cgi-bin目錄下??梢杂萌魏尉幊陶Z言書寫。
圖2.46示出CGI程序和服務(wù)器、客戶的關(guān)系及相關(guān)接口。其基本工作過程可以下述例子予以說明。設(shè)某部門建立了一個(gè)Web網(wǎng)頁的索引數(shù)據(jù)庫,可根據(jù)關(guān)鍵字或主題進(jìn)行檢索,并想提供給Web用戶使用。為此,必須編寫一個(gè)CGI程序,能對(duì)數(shù)據(jù)庫進(jìn)行操作,且經(jīng)CGI與Web服務(wù)器接口。該CGI程序的URL設(shè)為,表示該程序名為pagesearch,位于站點(diǎn)的cgi-bin目錄下。
當(dāng)Web用戶需使用該服務(wù)時(shí),服務(wù)器送出登記表,用戶填好表格后點(diǎn)擊發(fā)送按鈕,瀏覽器按(FORM〉中ACTION參數(shù)指明的URL建立TCP連接,然后調(diào)用MEIHOD參數(shù)規(guī)定的方法(通常為POST),將登記表中的各項(xiàng)信息經(jīng)HTTP傳給服務(wù)器。服務(wù)器識(shí)別這是對(duì)位于C織-bin目錄中某頁面文件的操作,就將該文件解釋為可執(zhí)行程序,啟動(dòng)該程序,并將客戶輸入的登記表信息傳給此程序,同時(shí)設(shè)置必要的環(huán)境變量,如CONTENT-LENGIB說明輸入字符串的長度。
然后,CGI程序調(diào)用庫程序?qū)斎胄畔⑦M(jìn)行語法分析,將其轉(zhuǎn)換為更易使用的形式,并據(jù)此對(duì)數(shù)據(jù)庫進(jìn)行相應(yīng)的操作。最后,CGI根據(jù)操作結(jié)果生成輸出信息,該信息可以是一個(gè)
HTML頁面,并將其返回服務(wù)器(服務(wù)器將其送交客戶。由此實(shí)現(xiàn)Web的交互過程。