Asp.net 一般處理常式+擴充

來源:互聯網
上載者:User

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

 

 

一般處理常式的一般是相對於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、處理自訂尾碼名請求

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

 

 

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.