这三个东西我们在开发Asp.net措施时经常会用到,似乎很熟悉,但有时候又不太确定。本文通过一个简单的例子来直不雅观的对照一下这三个东西的使用。
HttpModule:Http模块,可以在页面措置惩罚惩罚前后、应用措施初始化、堕落等时候插抄本身的事件措置惩罚惩罚措施
HttpHandler:Http措置惩罚惩罚措施,措置惩罚惩罚页面请求
HttpHandlerFactory:用来创建Http措置惩罚惩罚措施,创建的同时可以附加本身的事件措置惩罚惩罚措施
例子很简单,就是在每个页面的头部插手一个版权声明。
一、HttpModule
这个东西我们经常用来进行统一的权限判断、日志等措置惩罚惩罚。
例子代码:
public class MyModule : IHttpModule
{
public void Init(HttpApplication application)
{
application.BeginRequest += new EventHandler(application_BeginRequest);
}
void application_BeginRequest(object sender, EventArgs e)
{
((HttpApplication)sender).Response.Write("Copyright @Gspring<br/>");
}
public void Dispose()
{
}
}
web.config中配置:
<httpModules>
<add name="test" type="HttpHandle.MyModule, HttpHandle"/>
</httpModules>
在Init要领中可以注册很多application的事件,我们的例子就是在开始请求的时候插抄本身的代码,将版权声明加到页面的头部
二、HttpHandler
这个东西经常用来插手特殊的后缀所对应的措置惩罚惩罚措施,好比可以限制.doc的文件只能给某个权限的人访谒。
Asp.Net中的Page类就是一个IHttpHandler的实现
例子代码:
public class MyHandler : IHttpHandler
{
public void ProcessRequest(HttpContext ctx)
{
ctx.Response.Write("Copyright @Gspring<br/>");
}
public bool IsReusable
{
get { return true; }
}
}
web.config中配置: