Sessions事件

发表于:2007-06-30来源:作者:点击数: 标签:
Sessions事件 和其他对象不同的是,Session对象中有事件(Event)。一共两种:Session_OnStart事件,当一个Session开始时被触发。还有Session_OnEnd事件,当一个Session结束时被触发。在一个脚本中你可以和其中一个并且只能和其中一个事件关联。 在事件触发

Sessions事件

和其他对象不同的是,Session对象中有事件(Event)。一共两种:Session_OnStart事件,当一个Session开始时被触发。还有Session_OnEnd事件,当一个Session结束时被触发。在一个脚本中你可以和其中一个并且只能和其中一个事件关联。

在事件触发时下面这些脚本的语句被执行。这两个脚本位于特定的文件Global.asa。这个文件位于你的网站应用的根目录。它包括了一些通用程序段和你的网站应用。Global.asa文件有如下结构:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

SUB Application_OnStart

END SUB

</SCRIPT>

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

SUB Application_OnEnd

END SUB

</SCRIPT>

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

SUB Session_OnStart

END SUB

</SCRIPT>

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

SUB Session_OnEnd

END SUB

</SCRIPT>

注意

下一章提供更加详细的关于Global.asa文件的内容

Global.asa包括四个脚本。这里面有一个是根据Session_OnStart触发,另一个是根据Session_OnEnd触发(下一章介绍剩下的另外两个脚本)

请注意Global.asa使用了微软的HTML拓展<SCRIPT>标记语法来限制脚本,这也就是说,你必须用<SCRIPT>标记来引用这两个事件而不能用<%和%>符号引用。例子中Global.asa使用的是VBScript,但是你也可以使用其他脚本语言

在Global.asa中不能有任何输出语句,无论是HTML的语法还是Response.Write()方法都是不行的,Global.asa是任何情况下也不能进行显示的。

你只需要在Global.asa中添加一些你希望执行的脚本,那么只要Session一创建,这些脚本就会自动执行,例如下例:

<SCRIPT LANGUAGE=VBScipt RUNAT=Server>

SUB Session_OnStart

Session(“Username”)=“Unknow”

Session(“Userpassword”)=“Unknow”

END SUB

</SCRIPT>

这个脚本将”Unkonw”值赋给了Username和UserPassword变量。这个例子将在任何一个Session 创建的时候就执行。

Session_Onstart脚本可以用于很多种目的。例如,你希望访问者必须浏览某一个主页,下面的例子就在用户进程开始时进行了这种引导,那么这里面使用Response.redirect方法。下面是这个例子:

<Script Language=VBScript RUNAT=Server>

SUB Session_OnStart

MyHomepage=“/homepage.asp”

RequestPage=Request.ServerVariables(“SCRIPT_NAME”)

IF NOT (STRCOMP(MyHomePage,RequestPage,vbTextCompare)=0) THEN

Response.Redirect MyHomePage

END IF

END SUB

</SCRIPT>

在这个脚本中,用户请求和主页路径进行比较,如果不是一样的,用户就被自动引导到该主页。

下面的例子将Session_OnStart和Session_OnEnd都进行了使用:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

SUB Session_OnStart

Response.AppendToLog Session.SessionID&” Starting”

END SUB

</SCRIPT>

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

SUB Session_Onend

Response.AppendToLog Session.SessionID&” Ending”

END SUB

</SCRIPT>

这个例子中,当用户的Session开始时,日志文件中记录了该用户的Session和Starting信息;当用户的Session结束时,日志文件就记录了该用户的Session结束的信息。这样,你就可以作很多种判断统计,例如说每个人的停留时间、站上现在有多少人等等。这样对于站点设计和定位就很有助益。

原文转自:http://www.ltesting.net