• httpHandlers和httpModules接口介绍 (5)


    IHttpHandler工厂

    class TestHandlerFactory : IHttpHandlerFactory
     {
    public IHttpHandler GetHandler
    (HttpContext context, string requestType, string url, string pathTranslated)
    {
    
    string fname = url.Substring(url.IndexOf('/') + 1);
    while (fname.IndexOf('/') != -1)
    fname = fname.Substring(fname.IndexOf('/') + 1);
    string cname = fname.Substring(0, fname.IndexOf('.'));
    string className ="";
    className = "ClassLibrary831.CodeHandler";
    object h = null;
    try
    {
    //h = new TestHandler();
    h = Activator.CreateInstance(Type.GetType(className));
    }
    catch (Exception e)
    {
    throw new HttpException("工厂不能为类型" + cname + "创建实例。", e);
    }
    return (IHttpHandler)h;
    }
    public void ReleaseHandler(IHttpHandler handler)
    {
    }
     }(车延禄)

    配置文件

    <httpHandlers>
    <add verb="*" path
    ="default21.aspx,default22.aspx" type
    ="ClassLibrary831.TestHandlerFactory,
    ClassLibrary831"></add>
       </httpHandlers>

    这样TestHandlerFactory就会根据请求的不同页面执行不同的HttpHandler处理程序了。

    HttpHandler使用会话

    如果要在处理程序中使用Session,那必须把该HttpHandler实现IRequiresSessionState接口,,IRequiresSessionState接口是个空接口,它没有抽象方法,只是一个标记。此处就不作例子验证了

  • 相关阅读:
    Media change : please insert the disk labeled
    ubuntu 关闭和开启防火墙
    CentOS6.3上部署Ceph
    Keepalived_vrrp: ip address associated with VRID not present in received packet
    Python 错误和异常小结
    nova network-vif-plugged 事件分析1
    ansible 之条件语句 when
    ansible 判断和循环
    openvswitch dpdk
    ES6之Promise
  • 原文地址:https://www.cnblogs.com/sntetwt/p/1980396.html
Copyright © 2020-2023  润新知