zoukankan      html  css  js  c++  java
  • 应用程序对象笔记(选自Asp.net本质论)

    HttpContext:

    针对每一次请求,ASP.NET 将创建一个处理这次请求所使用的 HttpContext 对象实例,这个对象实例将用来在 ASP.NET 服务器的处理过程中传递所有需要的参数,在请求到达 ASP.NET 服务器之后,这个对象将被创建出来,在一次请求处理之后,这个对象将被丢弃掉。

    由于在大多数的处理环节都需要用到这个对象,因此,HttpContext 类中还提供了一个名为 Current 的静态属性,以便于在处理过程中,不需要通过方法的参数而直接取得当前的上下文对象。当然,在没有请求的情况下,通过这个属性获得的结果将是 null。

    HttpApplication:

    当 HttpContext 对象创建之后,HttpRuntime 将随后创建一个用于处理请求的对象,这个对象的类型为 HttpApplication。

    在 ASP.NET 内部,HttpRuntime 管理一个定义在 System.Web 命名空间下的 HttpApplicationFactory 类的实例,HttpApplicationFactory 通过工厂模式管理 HttpApplication 对象,在 HttpApplicationFactory 内部维护了一个 HttpApplication 对象池,使得被创建的 HttpApplication 对象可以被重复使用。但是,每一个 HttpApplication 对象每一次仅仅用于处理一个请求,这样,对于 ASP.NET 程序员来说,也就不需要考虑 HttpApplication 中多个请求并发的处理问题了。

    在实际的请求处理过程中,我们还需要进行大量的工作,例如,检查当前的请求是由哪一个用户发起的,以此我们就可以针对不同的用户进行不同的处理;或者根据用户来决定是否对用户的请求进行处理,对于没有权限的用户返回一个缺少相应权限的回应等。如果我们在一个方法中来完成这些任务,显然会造成方法的过度臃肿。在 HttpApplication 中,利用 .NET 中的事件机制,通过在处理过程中依次发出的多个事件,将这个处理过程分解为多个步骤,这个处理机制通常我们称为处理管道。

  • 相关阅读:
    ASP.NET WEB API构建基于REST风格
    .net平台下深拷贝和浅拷贝
    Visual Studio 必备神器
    sql注入
    proxy
    职场人生
    JSch
    何时用继承,何时用组合
    视频码率,帧率和分辨率的联系与差别
    超过响应缓冲区限制
  • 原文地址:https://www.cnblogs.com/liaochifei/p/2082863.html
Copyright © 2011-2022 走看看