使用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)
读出一个COOKIES
DIM 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 SUB
SUB SESSION_START()
RESPONSE.WRITE("SESSION IS STARTING...<BR>")
SESSION.TIMEOUT = 1
END SUB
这个非常简单了。