萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> asp.net編程 >> Asp.net 一般處理程序+擴展

Asp.net 一般處理程序+擴展

 在上一篇博客中,提到一般處理程序真的不一般。這篇博客主要是給大家解惑。由於最近在做項目的過程中,用到了很多的一般處理程序,相信你也一定用到過,但是你真的了解它嗎?

 

介紹:

 

一般處理程序的一般是相對於aspx頁面來說的,它介於請求與響應之間的處理程序。說白了就是去掉了前台appx HTML 頁面的cs部分,什麼請求都可以處理,實現IHttpHandler接口。


通過VS2012中創建一個一般處理程序將會生成兩個後綴名的文件.ashx和.ashx.cs。其中.ashx.cs對應的內容,如以下代碼:

 

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 using System; using System.Collections.Generic; using System.Linq; using System.Web;   namespace web {     /// <summary>     /// Handler 的摘要說明     /// </summary>     public class Handler : IHttpHandler     {           public void ProcessRequest(HttpContext context)         {             context.Response.ContentType = "text/plain";             context.Response.Write("Hello World");         }           public bool IsReusable         {             get             {                 return false;             }         }     } }



從上面的代碼可以看到,一般處理程序實際上就是一個實現IHttpHandler接口的處理程序類,這個處理程序被ASP.NET直接在系統配置文件映射到了ashx擴展名的請求上。這樣,我們就不需要在配置文件中進行配置了。

優點:

 

因為不必繼承Page類,所以沒有那麼多的事件要處理,消耗資源少,性能比aspx高。

實現:

 

一般處理程序可以完成的功能很多,輸出HTML,效果跟aspx+cs是一樣的,還可以用來發送非html類或無需html代碼的數據等,比如文本、XML、圖片,甚至二進制文件格式,還有最常用json數據格式等。

 

簡單的舉三個最常用的例子:

1、圖片過濾(防盜鏈)
2、圖片驗證碼

3、處理自定義後綴名請求

這個三個例子的代碼,我通過轉載的博客,為大家做一個詳細的介紹。

 

總結:

 

以往我們都是從功能的角度來學習和思考某個頁面怎樣用,隨著不斷學習的深入,我更加的認為應該從原理和本質認識和學習,從上面轉載的博客為大家解決這個問題。

copyright © 萬盛學電腦網 all rights reserved