ASPN(北京理工大學(xué)出版)項(xiàng)目八WebService、模塊_第1頁
ASPN(北京理工大學(xué)出版)項(xiàng)目八WebService、模塊_第2頁
ASPN(北京理工大學(xué)出版)項(xiàng)目八WebService、模塊_第3頁
ASPN(北京理工大學(xué)出版)項(xiàng)目八WebService、模塊_第4頁
ASPN(北京理工大學(xué)出版)項(xiàng)目八WebService、模塊_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

工程八WebService、模塊與普通處置程序義務(wù)一創(chuàng)建WebService義務(wù)二調(diào)用WebService義務(wù)三HttpHandle的運(yùn)用義務(wù)四HttpModule的運(yùn)用義務(wù)一創(chuàng)建WebService【義務(wù)要點(diǎn)】1.了解WebService2.創(chuàng)建WebService【案例1】創(chuàng)建手機(jī)歸屬地查詢的WebService,運(yùn)轉(zhuǎn)效果如圖8-1所示。當(dāng)輸入手機(jī)號(hào)后,單擊【調(diào)用】按鈕,那么前往查詢結(jié)果的XML文件,如圖8-2所示。下一頁前往義務(wù)一創(chuàng)建WebService【詳細(xì)步驟】〔1〕創(chuàng)建WebService。在建立Web效力之前,首先必需有一個(gè)手機(jī)信息數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)中存放了手機(jī)歸屬地信息,本工程中手機(jī)歸屬地信息存放在Mobile.mdb數(shù)據(jù)庫(kù)中的list表中,經(jīng)過Web效力訪問,如圖8-3所示。選擇VS2005菜單中的【文件】→【新建網(wǎng)站】命令,彈出【新建網(wǎng)站】對(duì)話框,如圖8-4所示。下一頁前往上一頁義務(wù)一創(chuàng)建WebService在【新建網(wǎng)站】對(duì)話框中,選擇【ASP.NETWeb效力】選項(xiàng),在【位置】下拉列表框中選擇【文件系統(tǒng)】選項(xiàng),【言語】下拉列表框中選擇C#言語。單擊【閱讀】按鈕,選擇存放Web效力的位置,并將Web效力的文件名修正為“Mobile.asmx〞,單擊【確定】按鈕,此時(shí)生成兩個(gè)文件“Mobile.asmx〞和在App_Code目錄下的“Mobile.cs〞,一切的ASP.NETWeb效力文件都運(yùn)用“.asmx〞為擴(kuò)展名?!?〕創(chuàng)建Web效力方法getMobile。文件中已有一個(gè)Web效力方法HelloWorld,用下面的Web效力方法getMobile交換HelloWorld方法?!?〕測(cè)試WebService。按F5鍵運(yùn)轉(zhuǎn)此效力,將顯示圖8-5所示的界面。下一頁前往上一頁義務(wù)一創(chuàng)建WebService【背景知識(shí)】WebService簡(jiǎn)介。WebService是一段位于Internet上的業(yè)務(wù)邏輯,可以經(jīng)過規(guī)范的Internet協(xié)議〔如HTTP、SOAP、WSDL或SMTP〕進(jìn)展訪問。它實(shí)現(xiàn)了一種在異構(gòu)環(huán)境中各個(gè)組織內(nèi)部及組織之間恣意數(shù)量的運(yùn)用程序,或者運(yùn)用程序組件與平臺(tái)和編程言語無關(guān)的編程模型。WebService是一門新興技術(shù),Web效力模型正在改動(dòng)傳統(tǒng)軟件的方式,同時(shí)也改動(dòng)了分布式的計(jì)算方式。Web效力實(shí)現(xiàn)的功能既可以呼應(yīng)客戶端一個(gè)簡(jiǎn)單的懇求,也可以完成一個(gè)復(fù)雜的商務(wù)流程,尤其在企業(yè)運(yùn)用方面,降低了企業(yè)之間的壁壘。Web效力發(fā)布后,其他的運(yùn)用程序和Web效力就可以經(jīng)過Web進(jìn)展查找發(fā)現(xiàn)和調(diào)用該效力。下一頁前往上一頁義務(wù)一創(chuàng)建WebServiceWeb效力作為一個(gè)通用的運(yùn)用程序接口,它具有以下幾個(gè)特征?!?〕松散耦合〔2〕完好的封裝性〔3〕運(yùn)用規(guī)范協(xié)議規(guī)范〔4〕高度可集成性〔5〕容易發(fā)布和部署前往上一頁義務(wù)二調(diào)用WebService【義務(wù)要點(diǎn)】客戶端調(diào)用WebService?!景咐?】在ASP.NET頁面上調(diào)用WebService。運(yùn)轉(zhuǎn)效果如圖8-6所示?!驹敿?xì)步驟】〔1〕翻開VS2005,新建一個(gè)ASP.NET網(wǎng)站,言語選擇“C#〞,工程稱號(hào)為“WebServiceClient〞。在默許的Default.aspx頁面中添加一個(gè)表格,在表格中添加一個(gè)文本框,用來接受用戶輸入的手機(jī)號(hào),添加一個(gè)Label,用來顯示查詢結(jié)果?!?〕建立Web效力客戶端代理?!?〕添加查詢按鈕事件代碼。下一頁前往義務(wù)二調(diào)用WebService【背景知識(shí)】〔1〕調(diào)用Web效力方法采用的協(xié)議??蛻舳丝捎肏TTP-GET、-POST或SOAP協(xié)議調(diào)用Web效力方法。-GET和HTTP-POST協(xié)議是Web網(wǎng)頁傳送參數(shù)的規(guī)范協(xié)議,運(yùn)用這兩種協(xié)議調(diào)用Web效力方法只能采用變量名/變量值對(duì)傳送參數(shù),無法傳送像DataSet、二進(jìn)制文件等數(shù)據(jù)類型,為了傳送復(fù)雜數(shù)據(jù)類型,應(yīng)采用SOAP協(xié)議。SOAP〔SimpleObjectAccessProtocol〕簡(jiǎn)單對(duì)象訪問協(xié)議,是基于XML的音訊傳送協(xié)議,由于是基于XML的,保證了不同系統(tǒng)的不同程序或組件之間,只需支持SOAP,都可以相互通訊。下一頁前往上一頁義務(wù)二調(diào)用WebService〔2〕SOAP是一個(gè)用來在分散、分布式的環(huán)境中交換信息的簡(jiǎn)單協(xié)議。由于SOAP音訊的格式是規(guī)范的,并且基于XML,所以SOAP可以用在不同的計(jì)算機(jī)體系構(gòu)造、不同的言語和不同的操作系統(tǒng)之間進(jìn)展通訊。Web效力就是運(yùn)用SOAP作為它的規(guī)范通訊協(xié)議。SOAP運(yùn)用起來比較簡(jiǎn)一方便,可以用在HTTP、SMTP或其他協(xié)議傳輸上。這就是SOAP被廣泛運(yùn)用的緣由所在。SOAP傳輸?shù)闹饕荢OAP音訊,它主要包括SOAP信封〔Envelope〕,可選的SOAP報(bào)頭〔Header〕和必需的SOAP實(shí)體〔Body〕。SOAP信封是SOAP音訊的頂級(jí)元素,是必需的,它包含兩個(gè)子元素Header和Body。SOAP報(bào)頭是可選的,它是一種用來向SOAP音訊添加額外特性的通用機(jī)制。SOAP報(bào)體Body元素中包含發(fā)送給最終目的節(jié)點(diǎn)的信息,它是必需的。SOAP音訊的最終接納者必需求正確處置Body元素。SOAP信息包的詳細(xì)構(gòu)造如圖8-10所示。前往上一頁義務(wù)三HttpHandle的運(yùn)用【義務(wù)要點(diǎn)】1.HttpHandle的概念2.運(yùn)用HttpHandle實(shí)現(xiàn)復(fù)雜操作【案例1】實(shí)現(xiàn)頁面驗(yàn)證碼,每次刷新并生成新的驗(yàn)證碼,詳細(xì)運(yùn)轉(zhuǎn)效果如圖8-12所示?!驹敿?xì)步驟】〔1〕創(chuàng)建HttpHandle處置程序。首先,啟動(dòng)VS2005,創(chuàng)建一個(gè)ASP.NET網(wǎng)站,選擇【工程】→【添加新項(xiàng)】命令,在彈出的對(duì)話框中選擇【普通處置程序】選項(xiàng),如圖8-13所示。下一頁前往義務(wù)三HttpHandle的運(yùn)用〔2〕修正處置程序代碼〔3〕在需求調(diào)用的頁面中添加調(diào)用圖像代碼,添加完成后,運(yùn)轉(zhuǎn)程序那么可以實(shí)現(xiàn)如圖8-12所示的效果?!景咐?】運(yùn)用HttpHandler實(shí)現(xiàn)對(duì)站點(diǎn)下一切圖片加水印“A教程〞。運(yùn)轉(zhuǎn)效果如圖8-14所示。下一頁前往上一頁義務(wù)三HttpHandle的運(yùn)用【詳細(xì)步驟】〔1〕創(chuàng)建HttpHandle處置程序。首先,啟動(dòng)VS2005,創(chuàng)建一個(gè)ASP.NET網(wǎng)站,選擇【工程】→【添加新項(xiàng)】命令,在彈出的對(duì)話框中選擇【類】選項(xiàng),將類的稱號(hào)修正為“WaterMark〞,如圖8-15所示。單擊【添加】按鈕,在生成的類中,修正類代碼,讓其實(shí)現(xiàn)IHttpHandler接口?!?〕修正Web.config文件?!?〕程序的部署。在IIS中部署此類程序需求留意,由于在默許情況下IIS對(duì)“.jpg〞類型的圖片不做任何處置,所以在部署時(shí),首先應(yīng)翻開網(wǎng)站屬性對(duì)話框,如圖8-16所示。下一頁前往上一頁義務(wù)三HttpHandle的運(yùn)用單擊【配置】按鈕,此時(shí)彈出【運(yùn)用程序配置】對(duì)話框,如圖8-17所示。單擊【添加】按鈕,彈出【添加/編輯運(yùn)用程序擴(kuò)展名映射】對(duì)話框,如圖8-18所示。選擇可執(zhí)行文件為“aspnet_isapi.dll〞,此文件在“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727〞目錄下。前往上一頁義務(wù)四HttpModule的運(yùn)用【義務(wù)要點(diǎn)】1.HttpModule的概念2.運(yùn)用HttpModule實(shí)現(xiàn)對(duì)懇求的過濾【案例1】運(yùn)用HttpModule實(shí)現(xiàn)對(duì)整個(gè)站點(diǎn)的訪問控制,也就是用戶必需經(jīng)過登錄頁面進(jìn)入系統(tǒng),防止用戶直接輸入U(xiǎn)RL地址訪問系統(tǒng)頁面。預(yù)備兩個(gè)或兩個(gè)以上的頁面,在沒有獲得授權(quán)之前,在地址欄輸入其他任何頁面地址都會(huì)跳轉(zhuǎn)到登錄頁面,省去了在ASP中每個(gè)頁面都需求判別會(huì)話的費(fèi)事。詳細(xì)運(yùn)轉(zhuǎn)效果如圖8-19所示。假設(shè)登錄勝利,此時(shí)將在一切頁面上顯示歡迎語“歡迎您!xxxxxx!〞,效果如圖8-20所示。下一頁前往義務(wù)四HttpModule的運(yùn)用【詳細(xì)步驟】〔1〕創(chuàng)建登錄頁面“Login.aspx〞,主要包括用戶名和密碼兩個(gè)文本框?!?〕創(chuàng)建默許主頁面“Default.aspx〞,頁面中不添加任何內(nèi)容,主要用來輸出歡迎詞?!?〕創(chuàng)建HttpModule處置程序“Validator〞。啟動(dòng)VS2005,創(chuàng)建一個(gè)ASP.NET網(wǎng)站,選擇【工程】→【添加新項(xiàng)】命令,在彈出的對(duì)話框中選擇【類】選項(xiàng),將類的稱號(hào)修正為“Validator〞,如圖8-21所示。單擊【添加】按鈕,在生成的類中,修正類代碼,讓其實(shí)現(xiàn)IHttpModule接口〔4〕注冊(cè)模塊。在Web.Config中<system.web>節(jié)點(diǎn)之間添加代碼。下一頁前往上一頁義務(wù)四HttpModule的運(yùn)用【背景知識(shí)】〔1〕HttpModule和HttpHandler程序運(yùn)轉(zhuǎn)模型。ASP.NET懇求處置過程是基于管道模型的,在模型中ASP.NET把HTTP懇求傳送給管道中的一切模塊。每個(gè)模塊都接納HTTP懇求并有完全的控制權(quán)限。模塊可以用任何自以為適宜的方式來處置懇求。一旦懇求經(jīng)過了一切HTTP模塊,就最終被HTTP處置程序處置。HTTP處置程序?qū)┣筮M(jìn)展一些處置,并且結(jié)果將再次經(jīng)過管道中的HTTP模塊。詳細(xì)的運(yùn)轉(zhuǎn)模型如圖8-22所示。下一頁前往上一頁義務(wù)四HttpModule的運(yùn)用〔2〕HttpHandler處置程序:HttpHanlder處置程序是實(shí)現(xiàn)了System.Web.IHttpHandler接口的.NET組件。任何實(shí)現(xiàn)了IHttpHandler接口的類都可以用于處置輸入的HTTP懇求。HTTP處置程序與ISAPI擴(kuò)展有些類似。HTTP處置程序和ISAPI擴(kuò)展的差別在于在URL中可以運(yùn)用HTTP處置程序的文件稱號(hào)直接調(diào)用它們,與ISAPI擴(kuò)展類似。HTTP處置程序?qū)崿F(xiàn)了以下方法。1〕ProcessRequest,這個(gè)方法實(shí)踐上是HTTP處置程序的中心。調(diào)用這個(gè)方法來處置HTTP懇求;2〕IsReusable,調(diào)用這個(gè)屬性來決議HTTP處置程序的實(shí)例能否可以用于處置一樣其他類型的懇求。HTTP處置程序可以前往True或False來闡明它們能否可以反復(fù)運(yùn)用。下一頁前往上一頁義務(wù)四HttpModule的運(yùn)用〔3〕HttpModule模塊處置程序:HTTP模塊是實(shí)現(xiàn)了System.Web.IhttpModule接口的.NET組件。這些組件經(jīng)過在某些事件中注冊(cè)本身,把本人插入ASP.NET懇求處置管道。當(dāng)這些事件發(fā)生的時(shí)候,ASP.NET調(diào)用對(duì)懇求有興趣的HTTP模塊,這樣該模塊就能處置懇求了。前往上一頁圖8-1程序運(yùn)轉(zhuǎn)效果前往圖8-2XML文件前往圖8-3手機(jī)歸屬地?cái)?shù)據(jù)庫(kù)前往圖8-4新建WebService前往圖8-5程序運(yùn)轉(zhuǎn)效果

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論