HttpHandler初探 - 页面上输出图像

ASP.NET处理底层HTTP请求有2种方式:

1)HttpModule      2) HttpHandler

今天我们来看一下HttpHandler的基本应用。

 

场景:利用HttpHandler在页面上输出一张图像。

在项目中添加HttpHandler的方法有2种:

一种是利用VS2008自带的Generic Handler模板添加扩展名为.ashx的文件。

另一种是利用WebConfig文件中的HttpHandler映射。

 

方法一(ashx模板):

首先利用VS2008自带的Generic Handler模板添加扩展名为.ashx的文件,

ashx代码如下:

using System;
using System.Web;

namespace AspNet35.Advanced
{
    
    
public class picHandler : IHttpHandler
    {

        
public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType 
= "image/jpeg";
            context.Response.WriteFile(
"../Images/Garden.jpg");
        }

        
public bool IsReusable
        {
            
get
            {
                
return false;
            }
        }
    }

}

 

然后在显示图片的页面中将<img>的源指向该ashx文件,aspx文件代码如下:

<div>
    
<img src="picHandler.ashx" />
</div>

 

 

方法二(WebConfig映射):

首先建立一个实现IHttpHandler接口的类,代码如下:

using System.Web;

public class MyPicHandler : IHttpHandler
{

    
public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType 
= "image/jpeg";
        context.Response.WriteFile(
"~/Images/Sea.jpg");
    }

    
public bool IsReusable
    {
        
get
        {
            
return false;
        }
    }

}

 

然后在WebConfig文件中映射该类,Web.config代码如下:

<system.web>
  
  
<httpHandlers>
    
    
<add verb="*" path="MyImage" type="MyPicHandler, App_Code" />
  
</httpHandlers>
</system.web>

 

最后在page页面中将<img>的源指向webconfig文件中映射的别名,既path后面的名字,page代码如下:

<div>
    
<img src="MyImage" />
</div>

 

 

 

 

posted @ 2009-06-26 12:05  Master HaKu  阅读(616)  评论(0编辑  收藏  举报