從這一節(jié)開始我們就開始接觸一般處理程序了,一般處理程序是最高效的,執(zhí)行過程是最簡單的,但是其原理非常重要,一旦我們把一般處理程序?qū)W好了,再學(xué)WebForm就相當(dāng)相當(dāng)容易了,幾乎可以速成。
十余年專注成都網(wǎng)站制作,企業(yè)網(wǎng)站制作,個人網(wǎng)站制作服務(wù),為大家分享網(wǎng)站制作知識、方案,網(wǎng)站設(shè)計流程、步驟,成功服務(wù)上千家企業(yè)。為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計及定制高端網(wǎng)站建設(shè)服務(wù),專注于企業(yè)網(wǎng)站制作,高端網(wǎng)頁制作,對成都搬家公司等多個方面,擁有豐富設(shè)計經(jīng)驗(yàn)。
我們在Visual Studio 2010中添加一個一般處理程序時都會生成一個以ashx為擴(kuò)展名的文件,文件中的代碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <%@ WebHandler Language="C#" %> using System; using System.Web; public class First: IHttpHandler { public voidProce***equest (HttpContext context) { context.Response.ContentType = "text/plain"; context.Response.Write("Hello World"); } public bool IsReusable { get { return false; } } } |
從以上代碼我們可以發(fā)現(xiàn),一般處理程序是一個實(shí)現(xiàn)了IHttpHandler接口的類,可以在服務(wù)器端執(zhí)行,必然也可以從瀏覽器獲得數(shù)據(jù),也可以發(fā)給瀏覽器數(shù)據(jù),那么上面的代碼各自都代表什么呢?
Proce***equest (HttpContext context)方法在程序被訪問時調(diào)用,參數(shù)是請求上下文的對象,通過對象可以處理信息,context.Response.Write("Hello World")是向?yàn)g覽器輸出方法,把數(shù)據(jù)從服務(wù)器發(fā)送到瀏覽器。
那么,一般處理程序的運(yùn)行都發(fā)生了些什么事情呢?他是怎么把數(shù)據(jù)通過服務(wù)器發(fā)送給瀏覽器的呢?請看下圖:
上圖只是一個簡單的模擬用戶通過一般處理程序上網(wǎng)的過程,也許你可以似乎明白了,原來上網(wǎng)也是打開一個電腦里的東西,只是這個電腦你我們的普通家庭電腦裝備厲害一點(diǎn)而已,上圖已經(jīng)有了上網(wǎng)的大致過程,此圖要熟練的理解,只有這樣再以后開發(fā)的過程中才知道哪里出了毛病將導(dǎo)致什么問題,也能讓用戶更好的享受網(wǎng)上沖浪的樂趣,一定要做到,只要用戶第一次來你的網(wǎng)站,就讓他在你的網(wǎng)站入駐。
其實(shí),ASPX和MVC的處理過程也復(fù)雜不到哪去,只是在服務(wù)器端做了更多更復(fù)雜一點(diǎn)的東東,但是ASHX是他們的基礎(chǔ),也是重中之重,假如ASHX學(xué)好了,ASPX可以無師自通,自己隨便那一本書看就可以了,理解MVC也很容易了,所以,ASHX是一定要學(xué)好的,廢話不說了,以后將以大量篇幅介紹ASHX,敬請期待。謝謝!