我能得到什么?
看过《实战 HTTP 处理程序(HTTP Handler)》系列的全部文章后,您就可以
- 轻松创建您自己的自定义 HTTP 处理程序
- 让您的HTTP 处理程序与Web程序共享Session
- 让动态生成的图片直接显示在Web页面上,而不需要临时文件的中转。
- 将动态生成的PDF文件直接发送到Client端,而不需要临时文件的中转。
什么是 HTTP 处理程序?
您一定用过RDLC报表吧?如果您曾经在RDLC报表中的图表上右击,并选择“属性”的话,您就会发现RDLC报表的图表
- 是一张(动态生成的)图片
- 图片的地址有点怪,并不是“某某文件夹\某某图片文件”,而是类似于“Reserved.ReportViewerWebControl.axd?Mode=true&ReportID=e1eab20aaba...”这样的类似于向某个页面发送的Request。如下图所示

可是我们的网站上并没有名为 ReportViewerWebControl.axd 的页面呀。没错,ReportViewerWebControl.axd 并不是一个页面,它是一个 HTTP Handler--同页面一样可以接受访问请求并进行应答,但是比页面更“底层”,--意味着更灵活的HTTP处理程序。如果您想了解更为详细的关于HTTP Handler的知识,可以看黄忠成的这篇Inside ASP.NET 2.0-即时编译系统,非常的精彩。如果您跟笔者一样没耐心且不求甚解,就直接Follow me,用10分钟时间创建一个自定义的HTTP Handler。
创建一个最简单的 HTTP Handler
Step1:在VS2005中,创建一个Web应用程序。


Step2:创建一个类库,设定命名空间为“mylib.system.web”,这个命名空间可以根据您的需要设定为其它的值。
具体方法是打开“解决方案资源管理器”,在“解绝方案 HTTPHandlerDemo”上右击,选择“添加->新建项目...”,然后选择“类库”。
注意,如果您在第一步新建的是VB的Web程序,那么在“解决方案资源管理器”中可能不会显示“解绝方案 HTTPHandlerDemo”,这时您可以通过菜单“文件->添加...->新建项目...->类库”的方法来创建类库。


Step3:为新建的类库添加对“System.Web”的引用。


Step4:新建一个名为“MyHandler”的类。同样,这个类名是随便起的。

