深度剖析ASP.NET架构—HttpHandler(三)
2012-01-06 18:07
246 查看
前言
我们在上节讲了使用ISAPI是一种重要的技术,可以让我们扩展服务器的功能,有两个手段实现,一个是ISAPI扩展,一个是ISAPI过滤器,我们下面就来说说其中的这个ISAPI扩展。
阅读目录
一:HttpHandler
二:HttpHandler的实现
三:HttpHandler的运行机制
四:运行效果
五:HttpHandler它们之间的关系
一:HttpHandler
HttpHandler实现了ISAPI Extension的功能,HttpHandler它处理请求(Request)和发送响应(Response),HttpHandler是HTTP处理程序,所有的HTTP请求通过HttpHandler它来处理,但是要对指定类型的,HttpHandler功能的实现通过实现IHttpHandler接口完成。
二:HttpHandler的实现
2.1 在Intent服务管理器中把文件扩展(你想要处理的文件扩展名)映射到ASP.NET ISAPI扩展dll(aspnet_isapi)上。
![](http://pic002.cnblogs.com/images/2012/42037/2012010617464147.jpg)
2.2 编写一个类,该类实现IHttpHandler接口
![](http://pic002.cnblogs.com/images/2012/42037/2012010617543051.jpg)
2.3 在web.config中注册这个处理程序
![](http://pic002.cnblogs.com/images/2012/42037/2012010617450041.jpg)
2.4 运行效果
![](http://pic002.cnblogs.com/images/2012/42037/2012010617530013.jpg)
三:HttpHandler的运行机制
[b] [/b]我们经常上网站,看到一种很奇怪的扩展名什么.cgi,.do拉,我们也可以这么做。
新建一种文件类型,这种文件只有我自己的程序才能认识的比如(*.cgi),对于这种文件名,我们让HTTP处理程序单独来处理它。
四:HttpHandler它们之间的关系
HttpModule是每个都执行且不覆盖,而HttpHandler则不同,HttpHandler有系统默认的,也有自定义的,Http请求来了以后,先判断是否存在自定义的HttpHandler如果存在,则执行自定义的HttpHandler,不存在自定义的就执行系统默认的。是一个二选一的关系。
![](http://pic002.cnblogs.com/images/2012/42037/2012010617592630.jpg)
五:[b]HttpHandler中访问Session
[/b]5.1 实现IRequiresSessionState接口
![](http://images.cnitblog.com/blog/42037/201304/14094653-ba7fe03d4f7f4c608516095b7ebe8783.jpg)
5.2 在web.config中注册
![](http://images.cnitblog.com/blog/42037/201304/14094737-c8a024c3840645c5833672317b7b8849.jpg)
5.3 运行效果
我们在上节讲了使用ISAPI是一种重要的技术,可以让我们扩展服务器的功能,有两个手段实现,一个是ISAPI扩展,一个是ISAPI过滤器,我们下面就来说说其中的这个ISAPI扩展。
阅读目录
一:HttpHandler
二:HttpHandler的实现
三:HttpHandler的运行机制
四:运行效果
五:HttpHandler它们之间的关系
一:HttpHandler
HttpHandler实现了ISAPI Extension的功能,HttpHandler它处理请求(Request)和发送响应(Response),HttpHandler是HTTP处理程序,所有的HTTP请求通过HttpHandler它来处理,但是要对指定类型的,HttpHandler功能的实现通过实现IHttpHandler接口完成。
二:HttpHandler的实现
2.1 在Intent服务管理器中把文件扩展(你想要处理的文件扩展名)映射到ASP.NET ISAPI扩展dll(aspnet_isapi)上。
![](http://pic002.cnblogs.com/images/2012/42037/2012010617464147.jpg)
2.2 编写一个类,该类实现IHttpHandler接口
![](http://pic002.cnblogs.com/images/2012/42037/2012010617543051.jpg)
2.3 在web.config中注册这个处理程序
![](http://pic002.cnblogs.com/images/2012/42037/2012010617450041.jpg)
2.4 运行效果
![](http://pic002.cnblogs.com/images/2012/42037/2012010617530013.jpg)
三:HttpHandler的运行机制
[b] [/b]我们经常上网站,看到一种很奇怪的扩展名什么.cgi,.do拉,我们也可以这么做。
新建一种文件类型,这种文件只有我自己的程序才能认识的比如(*.cgi),对于这种文件名,我们让HTTP处理程序单独来处理它。
四:HttpHandler它们之间的关系
HttpModule是每个都执行且不覆盖,而HttpHandler则不同,HttpHandler有系统默认的,也有自定义的,Http请求来了以后,先判断是否存在自定义的HttpHandler如果存在,则执行自定义的HttpHandler,不存在自定义的就执行系统默认的。是一个二选一的关系。
![](http://pic002.cnblogs.com/images/2012/42037/2012010617592630.jpg)
五:[b]HttpHandler中访问Session
[/b]5.1 实现IRequiresSessionState接口
![](http://images.cnitblog.com/blog/42037/201304/14094653-ba7fe03d4f7f4c608516095b7ebe8783.jpg)
5.2 在web.config中注册
![](http://images.cnitblog.com/blog/42037/201304/14094737-c8a024c3840645c5833672317b7b8849.jpg)
5.3 运行效果
![](http://images.cnitblog.com/blog/42037/201304/14095355-55eddbddd6094542a754259d67739cd1.jpg)
相关文章推荐
- ASP.NET温故而知新学习系列之深度剖析ASP.NET架构—HttpHandler(三)
- 深度剖析ASP.NET架构—HttpModule(二)
- ASP.NET温故而知新学习系列之深度剖析ASP.NET架构—HttpModule(二)
- ASP.NET温故而知新学习系列之深度剖析ASP.NET架构—ASP.NET请求的处理过程(一)
- asp.net架构之请求处理过程:HttpModule,HttpHandler
- asp.net底层架构学习笔记(IIS5/6/7处理模型,HttpRuntime,HttpContext,HttpApplication,HttpModel,HttpHandler...)
- 深度剖析ASP.NET架构—ASP.NET请求的处理过程(一)
- ASP.NET温故而知新学习系列之深度剖析ASP.NET架构—ASP.NET请求的处理过程(一)
- ASP.NET网站开发(HttpHandler)
- 构建高性能ASP.NET站点 第七章 如何解决内存的问题(前篇)―托管资源优化―垃圾回收机制深度剖析
- 深入剖析微软ASP.NET Ajax中的数据绑定架构上篇之一
- ASP.NET的(HttpModule,HttpHandler)
- How To Create an ASP.NET HTTP Handler by Using Visual C# .NET
- 从底层了解ASP.NET架构(引自:http://tech.it168.com/msoft/2007-12-24/200712241034626.shtml)
- ASP.NET 2.0 HttpHandler实现生成图片验证码(转)
- ASP.NET 学习笔记_06 Httphandler
- ASP.NET的(HttpModule,HttpHandler)
- ASP.NET 2.0 HttpHandler实现生成图片验证码(示例代码下载)
- ASP.NET底层机制 (下) HttpHandler
- [原创]WCF技术剖析之一:通过一个ASP.NET程序模拟WCF基础架构