日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

httphandlers 与 httpmodules

發布時間:2025/3/21 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 httphandlers 与 httpmodules 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
HttpHandlers 和 HttpModules 通過擴展原始的頁面框架,提供了用于處理請求和響應的兩種途徑。HttpHanders的主要目的是處理對某種特定文件或者在URL中對某個文件路徑的請求,而HttpModule則主要被用于在最開始的階段處理一個請求以及在最后階段處理一個響應。

?

??? HttpHandlers是指實現了IHttpHandler接口的類。它們在ProcessRequest()方法中獲得對當前HttpContext對象的引用,并能依靠HttpContext對象的屬性來執行代碼。典型的例子是,HttpHandler分析來自Request屬性(對象)的數據并通過Response屬性(對象)發送回某些東西。HttpHandler同時實現了一個IsReusable屬性,它告訴Asp.net是否類的同一個實例能夠用于處理并發(subsequent)的請求

?

第一步:首先新建一個類庫項目:

using System;
using System.Web;

public class Handler : IHttpHandler
{

??? public void ProcessRequest(HttpContext context)
??? {
??????? context.Response.Write("aaa");
??? }

??? public bool IsReusable
??? {
??????? get
??????? {
??????????? return false;
??????? }
??? }

}

第二步:在web項目中引用此dll

第三步:在Web.Config中進行配置,type參數為:命名空間名.類名,程序集名

<httpHandlers>
??????? <add verb="*" path="*.aspx" type="Handler,ClassLibrary1" />
</httpHandlers>

?

好了,現在你不論訪問哪一個aspx文件,返回的都是aaa了!

?

??? HttpModules通過添加事件處理器到應用程序的事件,從而代碼可以同應用程序進行交互。這些類都必須實現IHttpModule接口。Init()方法為我們提供了對一個應用程序的引用,在那個方法中我們可以綁定事件處理器到應用程序的事件上。事件處理器通過實現基本的事件處理器標記式來同應用程序進行交互。HttpModule也實現了一個Dispose()方法,它被用于在應用程序結束時執行必需的清理工作。

?

第一步:首先新建一個類庫項目:

namespace ClassLibrary1
{
??? class Class2:IHttpModule
??? {
??????? public void Dispose()
??????? {
??????????? //throw new Exception("The method or operation is not implemented.");
??????? }

??????? public void Init(HttpApplication context)
??????? {
??????????? context.Context.Cache["a"] = "a";
??????? }

??? }
}

第二步:在Web應用程序中添加此引用

第三步:在Web.Config中進行配置,name隨便起,type格式為:命名空間名.類名

<httpModules>
???<add name="a" type="ClassLibrary1.Class2"/>
??</httpModules>

第四步:在web應用程序中驗證
if (Cache["a"] != null)
{
??? Response.Write(Cache["a"].ToString());
}
else
{
??? Response.Write("no");
}

可以看到,打印的是a

?

其實,HttpModule是在HttpHandler之前就響應的,所以可以影響后者。

轉載于:https://www.cnblogs.com/hanwater/archive/2010/04/02/1702820.html

總結

以上是生活随笔為你收集整理的httphandlers 与 httpmodules的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。