日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
描述三個C#對象的使用

本文介紹HttpModule,HttpHandler,HttpHandlerFactory簡單使用,這三個C#對象的使用我們在開發(fā)ASP.NET程序時經(jīng)常會用到,似乎很熟悉,但有時候又不太確定。本文通過一個簡單的例子來直觀的比較一下這三個C#對象的使用。
◆HttpModule:Http模塊,可以在頁面處理前后、應(yīng)用程序初始化、出錯等時候加入自己的事件處理程序
◆HttpHandler:Http處理程序,處理頁面請求
◆HttpHandlerFactory:用來創(chuàng)建Http處理程序,創(chuàng)建的同時可以附加自己的事件處理程序
例子很簡單,就是在每個頁面的頭部加入一個版權(quán)聲明。

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供凌云企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、做網(wǎng)站、H5網(wǎng)站設(shè)計、小程序制作等業(yè)務(wù)。10年已為凌云眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。

一、HttpModule

這個對象我們經(jīng)常用來進行統(tǒng)一的權(quán)限判斷、日志等處理。
例子代碼:

 
 
 
  1. publicclassMyModule:IHttpModule  
  2. {  
  3. publicvoidInit(HttpApplicationapplication)  
  4. {  
  5. application.BeginRequest+=newEventHandler(application_BeginRequest);  
  6. }  
  7.  
  8. voidapplication_BeginRequest(objectsender,EventArgse)  
  9. {  
  10. ((HttpApplication)sender).Response.Write("Copyright@Gspring
    ");  
  11. }  
  12.  
  13. publicvoidDispose()  
  14. {  
  15. }  

在Init方法中可以注冊很多application的事件,我們的例子就是在開始請求的時候加入自己的代碼,將版權(quán)聲明加到頁面的頭部

二、HttpHandler

這個對象經(jīng)常用來加入特殊的后綴所對應(yīng)的處理程序,比如可以限制.doc的文件只能給某個權(quán)限的人訪問。
Asp.Net中的Page類就是一個IHttpHandler的實現(xiàn)
例子代碼:

 
 
 
  1. publicclassMyHandler:IHttpHandler  
  2. {  
  3. publicvoidProcessRequest(HttpContextctx)  
  4. {  
  5. ctx.Response.Write("Copyright@Gspring
    ");  
  6. }  
  7. publicboolIsReusable  
  8. {  
  9. get{returntrue;}  
  10. }  
  11. }  

這個對象主要就是ProcessRequest方法,在這個方法中輸出版權(quán)信息,但同時也有一個問題:原來的頁面不會被處理,也就是說頁面中只有版權(quán)聲明了。那么所有的aspx頁面都不能正常運行了

三、HttpHandlerFactory

這個對象也可以用來加入特殊的后綴所對應(yīng)的處理程序,它的功能比HttpHandler要更加強大,在系統(tǒng)的web.config中就是通過注冊HttpHandlerFactory來實現(xiàn)aspx頁面的訪問的。

HttpHandlerFactory是HttpHandler的工廠,通過它來生成不同的HttpHandler對象。

 
 
 
  1. publicclassMyHandlerFactory:IHttpHandlerFactory  
  2. {  
  3. publicIHttpHandlerGetHandler(HttpContextcontext,stringrequestType,
    stringurl,stringpathTranslated)  
  4. {  
  5. PageHandlerFactoryfactory=(PageHandlerFactory)Activator.
    CreateInstance(typeof(PageHandlerFactory),true);  
  6. IHttpHandlerhandler=factory.GetHandler
    (context,requestType,url,pathTranslated);  
  7.  
  8. //執(zhí)行一些其它操作  
  9. Execute(handler);  
  10.  
  11. returnhandler;  
  12. }  
  13.  
  14. privatevoidExecute(IHttpHandlerhandler)  
  15. {  
  16. if(handlerisPage)  
  17. {  
  18. //可以直接對Page對象進行操作  
  19. ((Page)handler).PreLoad+=newEventHandler(MyHandlerFactory_PreLoad);  
  20. }  
  21. }  
  22.  
  23. voidMyHandlerFactory_PreLoad(objectsender,EventArgse)  
  24. {  
  25. ((Page)sender).Response.Write("Copyright@Gspring
    ");  
  26. }  
  27.  
  28. publicvoidReleaseHandler(IHttpHandlerhandler)  
  29. {  
  30. }  

以上介紹三個C#對象的使用。

【編輯推薦】

  1. 分析C#不安全代碼
  2. 淺析C#調(diào)用ImageAnimator
  3. C#連接Access、SQL Server數(shù)據(jù)庫
  4. 淺談C#固定的和活動的變量
  5. 介紹C#中的值類型

分享文章:描述三個C#對象的使用
網(wǎng)頁網(wǎng)址:http://m.5511xx.com/article/djodepo.html