DAN疼之后上些基础知识---自定义HttpModule和httpHandler
又是DAN疼的一天!!
木事做,怎么办,自定义点东西。那就拿HttpModule和httpHandler 开刀吧!
一:自定义HttpModule
自定义HttpModule需要实现IHttpModule接口,接口里的两个方法 需要在继承类中实现,Init和Dispose方法;init方法有一个参数HttpApplication,也正是这个参数我们可以获取一些属性,或自定义一些处理程序,HttpApplication里有什么可以挖的,这个自己实现以下就可以看到;因为我做的demo,所以在init方法中注册了BeginRequest的处理程序,代码如下:
public void Init(HttpApplication application) { application.BeginRequest += new EventHandler(application_BeginRequest); } void application_BeginRequest( object sender, EventArgs e) { HttpContext context = (sender as HttpApplication).Context; context.Response.Write( "自定义配置成功" ); } |
程序写完需要在web.config中配置一下,配置很简单
<httpModules > <add name = "MyHttpModule" type = "MyHttpModule.MyHttpModule,WebApplication1" /> </httpModules> |
但是有一点要注意 type ="MyHttpModule.MyHttpModule,WebApplication1" 这个地方 参数是: 命名空间+处理类,程序集; 有时候命名空间和程序集是不同的奥
二:自定义httpHandler
同上:需要继承IHttpHandler接口,实现接口中的方法:ProcessRequest和属性:IsReusable(是否缓存的标志)
代码:
public class MyHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.Write( "<br/>Hello World" ); } public bool IsReusable { get { return false ; } } } |
同样需要在web.config中配置
<httpHandlers > <add verb = "*" type = "WebApplication1.MyHandler,WebApplication1" path = "*.aspx" /> </httpHandlers> |
具体的参数:verb--提交的方式:post,get。。。。*是全部;type:命名空间+处理程序类,程序集名称;path:要处理的文件(可以自定义类型,如:.myfoot,但是需要在iis中配置,基本的aspx 就不用了)
其实从代码就能看出来 MyHttpModule的init的方法的参数是HttpApplication,而MyHandler方法ProcessRequest的参数是HttpContext,可以断定MyHttpModule发生在MyHandler之前,所以要什么功能一定要在正确的处理程序里写。
好了,5点33了 下班了,希望高手猛拍!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?