打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
自定义处理程序

每当创建一个新的.aspx文件,实际上是创建一个心得page派生类,作为一个请求的终点,即处理程序。

为了在管道中起到处理程序的作用,一个类必须实现IHttpHandler接口。

   public interface IHttpHandler

{

void ProcessRequest(HttpContext ctx);

bool IsReusable{get;}

}

page类实现该接口,而且在它的processRequest方法的实现中,通过生成页面中包含的所有控件来填充响应缓冲区。创建一个心得.aspx文件时,唯一关心的是页面上创建控件,而页面又是由page基类在合适的时候生成的。

    假设我们要创建一个接受get请求的简单的计算器处理程序,它用一个附属的查询字符串提供参数和操作,如下:

http://localhost/test/test.idc?a=3&b=4&op=add

为了实现该自定义处理程序,应该按照一下步骤执行:

1.创建一个新类(calcHandler类),用于实现IHttpHandler接口。

public class calcHandler:IHttpHandler
{
 public calcHandler()
 {
  //
  // TODO: 在此处添加构造函数逻辑
  //
 }
    public void ProcessRequest(HttpContext cx)
    {
        int a = int.Parse(cx.Request["a"]);
        int b = int.Parse(cx.Request["b"]);
        switch (cx.Request["op"])
        {
            case "add":
                cx.Response.Write(a + b);
                break;
            case "sub":
                cx.Response.Write(a - b);
                break;
            case "mul":
                cx.Response.Write(a * b);
                break;
            default:
                cx.Response.Write("operator is erroe");
                break;
        }
    }

        public bool IsReusable
        {
            get

            {
                return true;
            }
        }
    }

2.使asp.net意识到,希望calcHandler类作为向应用程序发出的以test.idc为终点的任何get请求的终点,为此,需要在配置文件的httpHandlers元素中增加一个配置项,如下:

<system.web>

  <httpHandlers>
   <add verb="GET" path="test.idc" type="calcHandler,calcHandler"/>
  </httpHandlers>

</system.web>

3.让iis知道,把一个给定扩展的请求映射到asp.net工作者进程。

  点击iis中网站的属性/主目录,点配置,在映射选项卡下add/edit给定映射。如图:

 

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
IHttpHandler接口 - HeroBeast - 博客园
点一点学ASP.NET之基础概念——HttpHandler
ASP.NET 请求处理流程 - 肖品 - 博客园
了解ASP.NET页面对象模型
ASP.NET 自定义httpmodule于httphandler介绍
IIS7中Integrated和classic的区别
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服