• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Asp.net的应用程序对象和页面生存周期

asp 搞代码 4年前 (2022-01-03) 33次浏览 已收录 0个评论

Asp.net的应用程序对象和页面生存周期,需要的朋友可以参考一下

IIS在接到一个新的http请求后,最终会调用asp.net_isapi.dll的 ISAPI扩展(特指IIS6.0环境,iis7.0的应用程序池默认为集成方式,相对有所变化),然后传递到httpRuntime Pipe(http运行时管道),Asp.Net这时才开始运行(即HttpRunTime是Asp.Net真正的入口),HttpRunTime会为每 个asp.net应用自动创建一个HttpApplication的实例,而该实例中又包含以下属性:

注1

Application –>相当于传统意义上asp时代的application对象,通常用于定义一个asp.net应用的全局变量

Context –>HttpContext(上下文)类的实例【Asp.Net新增的】

Modules –>影响当前应用程序的HttpModule模块集合

Request –>类似于asp中的Request对象,通常用于接收一些特定的值(比如Request.Form或Request.QueryString)

Response –>类似于asp中的Response对象,通常用于向做页面输出指定内容(比如Resonse.Write)

Server –>类似于asp中的Server对象,通过它能获得一些服务端的信息(比如Server.MapPath)

Session –>类似于asp中的Session对象

User –>用于获取用户认证相关的安全信息

从上面的属性可以发现:很多其实在asp年代已在使用,只有Context,Modules,User这三个是Asp.Net新增的

HttpApplication类除了具备”注1″的几个属性外,还有自己的方法,这里特别提一下Init方法和Dispose方法,这二个方法均可重载.

它们的调用时机为:

Init方法在Application_Start之后调用,而Dispose在Application_End之前调用,另外 Application_Start在整个asp.net应用的生命周期内只激发一次(比如IIS启动或网站启动时),类似的 Application_End也只有当asp.net应用程序关闭时被调用(比如IIS停止或网站停止时)

除了Application_Start和Application_End方法,HttpApplication还提供了以下事件:

这些事件包括前面提到的可重载的Init及Dispose方法,再加上Session对应的Session_Start与Session_End方法,均可直接在Global.ascx.cs中以Application_XXX的形式使用(因为Glob来源gao($daima.com搞@代@#码网al.ascx.cs中定义的类Global本身就是继承自HttpApplication的)

代码如下:
public class Global : System.Web.HttpApplication

再来看一下相对asp而言,新增的Context,Modules,User这三个属性

Context:

Context即HttpContext类的实例,在几乎整个aspx页面生命周期中,Context上下文一直伴随着各个环节向下传递

所以我们几乎可以在web应用中的任何环节,用HttpContext.Current来引用到当前的上下文实例,从HttpContext的定义上,还可以发现Context本身的属性中,又可以得到 Application,ApplicationInstance,Profile,Response.Request…等对象的实例引用

回想一下:

代码如下:
public class Handler1 : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = “text/plain”;
            context.Response.Write(“Hello World”);
        }

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

以上就是Asp.net的应用程序对象和页面生存周期的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Asp.net的应用程序对象和页面生存周期

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址