• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ASP.NET本质论阅读----Http请求处理程序

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

概要:  处理程序 HttpHandler

     处理程序接口:IHttpHandler和IHttpAsyncHandler

补充:  HttpRuntime将请求交给HttpApplication,HttpApplication不直接处理,而交给HttpHandler处理?

      因为请求具有多样性,将请求映射到给HttpHandlerFactory工厂处理

      

       Asp.net会根据请求类型调用匹配的HttpHandlerFactory的GetHandler()方法获取一个IHttpHandler实例,由这个实例来处理请求。

       1.  处理程序工厂,实现接口IHttpHandlerFactory

public interface IHttpHandlerFactory
{
    IHttpHandler  GetHandler(
                HttpContext context
                ,String requestType
                ,string     url
                ,string pathTranslated);
    void ReleaseHandler(IHttpHandler handler);
}
public interface IHttpAsyncHandler :IHttpHandler
{
    IAsyncResult BeginProcessRequest(HttpContext context
                            ,AsyncCallback cb
                            ,Object extraData);
    void EndProcessRequest(IAsyncResult result);
    void ProcessRequest(HttpContext context);
    void IsReusable{get;}
}

IsReusable表示处理程序对象,是否可以被缓存起来

重用HttpHandler:http://www.cnblogs.com/fish-li/archive/2012/01/29/2331477.html

HttpHandler的主要作用是context.Response.Write()响应一类特定的请求,如ashx

  2.  注册处理程序(add,remove ,clear)

  <system.web>

    <httpHandlers>

      <add   verb="GET"   ---//请求的类型,GET,POST

          path="*.vc"  ---//匹配请求的URL

          type="MyHandler.ValidateCodeHandler, MyHandler.dll"   ----处理工厂(处理程序)类型的名称 />

     </httpHandlers>

  </system.web>

    系统的配置文件默认映射处理程序 路径:Microsoft.Net/Framework/v4.0/Config

  3.  一般处理程序

  type="System.Web.UI.SimpleHandlerFactory"   ashx

  4.  MVC处理程序

  请求--路由到Controller---分配到相应的Action 处理----处理后的数据结果Modal---传递到View

  

    MVC 请求处理过程

    1.网站应用程序接收第一次请求-----在Global.asax中,将Route对象添加到RouteTable对象中

    2.实施路由--------UrlRouteModules使用第一个匹配的Route对象创建RouteData参数对象,然后,创建RequestContext对象

    3.创建MVC路由处理对象-------MVCRouteHandler对象创建一个MvcHandler类的对象实例

    4.创建控制器-------MvcHandler对象通过IControllerFactory对象,一般使用DefaultControllerFactory这个实现类创建控制器的对象实例

    5.执行控制器-----------MvcHandler调用控制器的Excute方法

    6.调用Action----------Controller检查被调用的Action方法,执行Action方法

    7.处理返回结果----------Action方法接收用户的输入参数,处理后得到准备显示的数据,返回一个ViewResult类型输出

  5.禁止的处理程序

    配置 type="System.Web.HttpForbiddenHandler"  Validate="True"  path="*.cs"

    实例:禁止访问Excel、

    <add path="*.xls" verb="*"  type="System.Web.HttpForbiddenHandler"  Validate="True"  />


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap