上图是比较经典的。我们知道Handler就是处理某种路径下某种后缀名的文件请求。
而Module就是一层一层的过滤器了,层层剥削!
你知道ASP.NET中的输出缓存(Output Cache)如何实现?
就是通过Module来实现的,Module可以控制输入和输出。每个Module实现IHttpModule接口,这个接口只有两个方法:
Dispose和Init。
核心就在于Init里,[C#]
void Init(
HttpApplication context
)
它使用了一个参数 HttpApplication ,所以它能够将你写的事件处理函数注册到很多事件上去!
而HttpApplication有N多事件。
在配置Web.Config中加入
<httpModules>
<add type="classname, assemblyname" name="modulename" />
<httpModules>
例子代码在MSDN中有的。
关键是写好Init函数。
你可以使用和HTTPApplication相关的HttpContext 和Request对象来获得一些(输入/输出的)操纵的对象,形成更强大的处理能力。