使用ASP的同仁们一定经常使用这些东西,因为不管什么产品的开发都离不开与用户的互动,而在ASP中,他们三个,正是互动的桥梁。
ASP.net中,他们也受到了足够的重视,但改变不是很大。
6.1 Application
Application的生命周期
Application的生命周期,并不是是从IIS5开始启动的那一刻开始,而是从客户对服务器发出第一个Request的那个时候开始的。从那时开始一个名叫HTTPApplication的Pool开始建立,这也是Application生命周期(lifetime)的开始。此时Application_OnStart的事件也发生了。直到Application_OnEnd的事件发生,才是Application生命周期的结束。
Application写的网站计数器
<%
Application.Lock()
Application("counter") = CType(Application("counter") + 1, Int32)
Application.UnLock()%>
与ASP中还是一样的。
Application 与ASP中的不同的地方
Application与ASP不同的地方在于 新多了两个事件 Application_OnRequestStart()和Application_OnRequestEnd() 这两个事件,在用户开始浏览一个aspx文件,和aspx文件运行结束时触发,也就是说,这两个事件,不是针对整个服务器来说的,而是对于单个程序来说。
6.2 Session
在ASP中,我们都知道,如果用户把浏览器上面的Cookies关掉,那么Session就不可能被传递了,ASP.net针对这个问题,提出Session的传递应该脱离Cookies。我们修改一下config.web,还记得这个文件吗?ASP.net的无安装化程序移植的精髓,都在这样的一个文件中。
修改如下地方:<sessionstate cookieless="false" /> 改为True就可以了
其他地方 Session和ASP没有什么区别。
6.3 Cookies
这里和ASP就有一些区别大家注意了。
建立一个Cookies
Dim cookie As New HttpCookie("user")Cookie.Value = "yesky.com"Response.AppendCookie(cookie)读出一个CookiesDim cookie As New HttpCookie("user")StrCookie = Cookie.Value
6.4 State
这个是一个全新的东西,它可以保存中间过程量在浏览器上面。比如,要注册一个新用户,我们往往在第一页上填写用户名,然后第二页填写联系方法,第三页填写相关的个人资料,这样三页就需要传递数据,以前通常的方法是在 <input>里面 hidden一个数据,现在通过State就好办多了。
关于State,我们不做很多的介绍,如果您感兴趣,可以参看http://www.fmexpense.com/quickstart/doc/stateoverview.aspx#sessionstate 这是它的官方说明,也比较模糊。
6.5 Global.aspx
ASP.net中,为了突出和ASP的区别,特别将Global.asp改成Global.aspx 但功能没有很大的变化。
例子:
Sub Application_Start()
Response.Write("Application is Starting...<br>")End SubSub Session_Start()
Response.Write("Session is Starting...<br>")
Session.Timeout = 1End Sub
这个非常简单了。