ASP六大对象介绍
天下维客,你可以修改的网络知识库
Application对象
Application对象是个应用程序级的对象,用来在所有用户间共享信息,并可以在Web应用程序运行期间持久地保持数据。
Application的属性:
方法如下:
Application对象没有内置的属性,但是我们可以自行创建其属性。
Application的方法只有两个方法:一个是Lock,另一个是Unlock。其中Lock方法用于保证同一时刻只能一个用户对Application操作。Unlock则用于取消Lock方法的限制。如:
<%
1、Application_OnStart()
当事件应用程序启动时触发。
2、Application_OnEnd()
此事件应用程序结束时触发。
这两个事件过程都是必须定义在Global.asp文件中,一般把连接数据的函数定义在这两个事件,然后放在Global.asp中。例如:
该对象用于控制Active Server Pages的事务处理。事务处理由Microsoft Transaction Server (MTS)管理。
事件
方法
Request对象
Request对象用于接受所有从浏览器发往你的服务器的请求内的所有信息。
集合
Subject
证书的主题。包含所有关于证书收据的信息。能和所有的子域后缀一起使用。
Issuer
证书的发行人。包含所有关于证书验证的信息。除了CN外,能和所有的子域后缀一起使用。
VadidFrom
证书发行的日期。使用VBScript格式。
ValidUntil
该证书不在有效的时间。
SerialNumber
包含该证书的序列号。
Certificate
包含整个证书内容的二进制流,使用ASN.1格式。
对于SubField,Subject和Issuer关键字可以具有如下的子域后缀:(比如:SubjectOU或IssuerL)
C
起源国家。
O
公司或组织名称。
OU
组织单元。
CN
用户的常规名称。
L
局部。
S
州(或省)。
T
个人或公司的标题。
GN
给定名称。
I
初始。
当文件cervbs.inc(VBScript使用)或cerjavas.inc(Jscript使用)通过使用#INCLUDE导向包含在你的Active Server Page里时,下面两个标志可以使用:
ceCertPresent
指明客户证书是否存在,其值为TRUE或FALSE。
ceUnrecongnizedIssure
指明在该链表中的最后的证书的发行者是否未知,其值为TRUE或FALSE。
ALL_HTTP
客户端发送的所有HTTP标头,他的结果都有前缀HTTP_。
ALL_RAW
客户端发送的所有HTTP标头,其结果和客户端发送时一样,没有前缀HTTP_
APPL_MD_PATH
应用程序的元数据库路径。
APPL_PHYSICAL_PATH
与应用程序元数据库路径相应的物理路径。
AUTH_PASSWORD
当使用基本验证模式时,客户在密码对话框中输入的密码。
AUTH_TYPE
这是用户访问受保护的脚本时,服务器用于检验用户的验证方法。
AUTH_USER
代验证的用户名。
CERT_COOKIE
唯一的客户证书ID号。
CERT_FLAG
客户证书标志,如有客户端证书,则bit0为0。如果客户端证书验证无效,bit1被设置为1。
CERT_ISSUER
用户证书中的发行者字段。
CERT_KEYSIZE
安全套接字层连接关键字的位数,如128。
CERT_SECRETKEYSIZE
服务器验证私人关键字的位数。如1024。
CERT_SERIALNUMBER
客户证书的序列号字段。
CERT_SERVER_ISSUER
服务器证书的发行者字段
CERT_SERVER_SUBJECT
服务器证书的主题字段。
CERT_SUBJECT
客户端证书的主题字段。
CONTENT_LENGTH
客户端发出内容的长度。
CONTENT_TYPE
客户发送的form内容或HTTP PUT的数据类型。
GATEWAY_INTERFACE
服务器使用的网关界面。
HTTPS
如果请求穿过安全通道(SSL),则返回ON。如果请求来自非安全通道,则返回OFF。
HTTPS_KEYSIZE
安全套接字层连接关键字的位数,如128。
HTTPS_SECRETKEYSIZE
服务器验证私人关键字的位数。如1024。
HTTPS_SERVER_ISSUER
服务器证书的发行者字段。
HTTPS_SERVER_SUBJECT
服务器证书的主题字段。
INSTANCE_ID
IIS实例的ID号。
INSTANCE_META_PATH
响应请求的IIS实例的元数据库路径。
LOCAL_ADDR
返回接受请求的服务器地址。
LOGON_USER
用户登录Windows NT的帐号
PATH_INFO
客户端提供的路径信息。
PATH_TRANSLATED
通过由虚拟至物理的映射后得到的路径。
QUERY_STRING
查询字符串内容。
REMOTE_ADDR
发出请求的远程主机的IP地址。
REMOTE_HOST
发出请求的远程主机名称。
REQUEST_METHOD
提出请求的方法。比如GET、HEAD、POST等等。
SCRIPT_NAME
执行脚本的名称。
INSTANCE_ID
IIS实例的ID号。
INSTANCE_META_PATH
响应请求的IIS实例的元数据库路径。
LOCAL_ADDR
返回接受请求的服务器地址。
LOGON_USER
用户登录Windows NT的帐号
PATH_INFO
客户端提供的路径信息。
PATH_TRANSLATED
通过由虚拟至物理的映射后得到的路径。
QUERY_STRING
查询字符串内容。
REMOTE_ADDR
发出请求的远程主机的IP地址。
REMOTE_HOST
发出请求的远程主机名称。
REQUEST_METHOD
提出请求的方法。比如GET、HEAD、POST等等。
SCRIPT_NAME
执行脚本的名称。
SERVER_NAME
服务器的主机名、DNS地址或IP地址。
SERVER_PORT
接受请求的服务器端口号。
SERVER_PORT_SECURE
如果接受请求的服务器端口为安全端口时,则为1,否则为0。
SERVER_PROTOCOL
服务器使用的协议的名称和版本。
SERVER_SOFTWARE
应答请求并运行网关的服务器软件的名称和版本。
URL
提供URL的基本部分。
语法 Server.HTMLEncode( string )
参数 string 指定要编码的字符串。
示例脚本 <%= Server.HTMLEncode("The paragraph tag: <P>") %>
输出 The paragraph tag: <P>
注意 以上输出将被 Web 浏览器显示为The paragraph tag: <P>如果查看一下源文件或以文本方式打开一个 Web 页,您就可以看到已编码的 HTML。
MapPath
MapPath 方法将指定的相对或虚拟路径映射到服务器上相应的物理目录上。
语法
Server.MapPath( Path )
参数
Path
指定要映射物理目录的相对或虚拟路径。若 Path 以一个正斜杠 (/) 或反斜杠 (\) 开始,则 MapPath 方法返回路径时将 Path 视为完整的虚拟路径。若 Path 不是以斜杠开始,则 MapPath 方法返回同 .asp 文件中已有的路径相对的路径。
注释
MapPath 方法不支持相对路径语法 (.) 或 (..)。例如,下列相对路径 ../MyDir/MyFile.txt 返回一个错误。
MapPath 方法不检查返回的路径是否正确或在服务器上是否存在。
因为 MapPath 方法只映射路径而不管指定的目录是否存在,所以,您可以先用 MapPath 方法映射物理目录结构的路径,然后将其传递给在服务器上创建指定目录或文件的组件。
示例
对于下列示例,文件data.txt和包含下列脚本的test.asp文件都位于目录C:\Inetpub\Wwwroot\Script下。C:\Inetpub\Wwwroot目录被设置为服务器的宿主目录。
下列示例使用服务器变量 PATH_INFO 映射当前文件的物理路径。脚本
<%= server.mappath(Request.ServerVariables("PATH_INFO"))%><BR>
输出
c:\inetpub\wwwroot\script\test.asp<BR>
由于下列示例中的路径参数不是以斜杠字符开始的,所以它们被相对映射到当前目录,此处是 C:\Inetpub\Wwwroot\Script。脚本
<%= server.mappath("data.txt")%><BR>
<%= server.mappath("script/data.txt")%><BR>
输出
c:\inetpub\wwwroot\script\data.txt<BR>
c:\inetpub\wwwroot\script\script\data.txt<BR>
接下来的两个示例使用斜杠字符指定返回的路径应被视为在服务器的完整虚拟路径。脚本
<%= server.mappath("/script/data.txt")%><BR>
<%= server.mappath("\script")%><BR>
输出
c:\inetpub\script\data.txt<BR>
c:\inetpub\script<BR>
下列示例演示如何使用正斜杠 (/) 或反斜杠 (\) 返回宿主目录的物理路径。脚本
c:\inetpub\wwwroot<BR>
c:\inetpub\wwwroot<BR>
URLEncode
URLEncode 方法将 URL 编码规则,包括转义字符,应用到指定的字符串。
语法
Server.URLEncode( string )
参数
String 指定要编码的字符串。
示例
脚本 <%Response.Write(Server.URLEncode("http://www.tinyu.com";)) %>
输出 http%3A%2F%2Fwww%2Etinyu%2Ecom
Session对象
Session其实指的就是访问者从到达某个特定主页到离开为止的那段时间。每一访问者都会单独获得一个Session。在Web应用程序中,当一个用户访问该应用时,Session类型的变量可以供这个用户在该Web应用的所有页面中共享数据;如果另一个用户也同时访问该Web应用,他也拥有自己的Session变量,但两个用户之间无法通过Session变量共享信息,而Application类型的变更则可以实现站点多个用户之间在所有页面中共享信息。
1、SessionID属性
该属性返回当前会话的唯一标志,为每一个Session分配不同的编号。
我曾在开发过程中就遇到对用户的控制问题。它要实现的功能就是,针对某个网站的一个模块,当一个会员登录后正在看此模块时,另一个人用同样的会员名登录,就不能浏览这个模块。也就是说一个会员名同时只能一个人浏览此模块。我通过用会员名(假设为UserID,唯一)和SessionID来实现了控制。当会员登录时,给这个会员一个Session记录登录状态如:Session("Status")="Logged",同时把这个会员的Session.SessionID写入数据库。当他要浏览此模块时,先判断其是否登录,若已经登录再判断它的SessionID是否与数据库记录的相同,如果不同则不能访问。这样,当另一个用户用相同的会员名登录时,那么数据库中记录的就是新的SessionID,前者访问此模块时就不能通过检查。这就实现了一个会员名同时只能一个人浏览某个模块。这个功能在一些收费网站有很有特别作用,它防止了一个会员名给多个人浏览的问题,为公司保障了利益。
2、TimeOut属性
该属性用来定义用户Session对象的时限。如果用户在规定的时间内没有刷新网页,则Session对象就会终止。一般默认为20分钟。
3、Abandon方法
该方法是Session对象的唯一方法,可以清除Session对象,用来消除用户的Session对象并释放其所占的资源。如: <% Session.Abandon %>
4、Session_OnStart和Session_OnEnd事件
和Application一样,当对象的例程每一次启动时触发Session_OnStart事件,然后运行Session_Onstart事件的处理过程。也就是说,当服务器接收到应用程序中的URL的HTTP请求时,触发此事件,并建立一个Session对象。同理,这个事件也必须定在Global.asa文件中。
当调用Session.Abandon方法时或者在TimeOut的时间内没有刷新,这会触发Session_OnEnd事件,然后执行里面的脚本。Session变量与特定的用户相联系,针对某一个用户赋值的Session变量是和其他用户的Session变量完全独立的,不会存在相互影响。
Session应用一列:
与Application一样,一个被定义为Session类型的数组只能将整个数组作为一个对象,用户不能直接改变Session数组中某个元素的值。为了创建一个Session数组,需先定义一个普通的数组,并对它的每一个元素赋初值,最后把它定义为一个Session数组。如:
Application对象是个应用程序级的对象,用来在所有用户间共享信息,并可以在Web应用程序运行期间持久地保持数据。
Application的属性:
方法如下:
Application对象没有内置的属性,但是我们可以自行创建其属性。
<% Application("属性名")=值 %> <BR> 其实大部分Application变量都 存放在Contents集合中,当你创建一个新的Application变量时,其实就是在Contents集合中添加了一项。下面两个脚本是等效的: <% Application("greeting")="hello!" %> 或 <% Application.contents("greeting")="hello!"由于Application变量存在集合里,所以如果想要全部显示,其方法我们已经多次使用,例如For Each循环。 <BR><% <BR>For Each item IN Application.Contents <BR>Response.write("<br>"&item&Application.Contents(item)) <BR>next <BR>%> <BR>Application的方法: Application的方法只有两个方法:一个是Lock,另一个是Unlock。其中Lock方法用于保证同一时刻只能一个用户对Application操作。Unlock则用于取消Lock方法的限制。如:
<%
Application.Lock <BR>Application("visitor_num")=Application("visitor_num")+1 <BR>Application.Unlock <BR>%> <BR>Application的事件: 1、Application_OnStart()
当事件应用程序启动时触发。
2、Application_OnEnd()
此事件应用程序结束时触发。
这两个事件过程都是必须定义在Global.asp文件中,一般把连接数据的函数定义在这两个事件,然后放在Global.asp中。例如:
Sub Application_OnStart <BR>Application("tt18_ConnectionString") = "driver={SQL <BR>Server};server=jeff;uid=sa;pwd=;database=test" <BR>End Sub <BR> 一个数组能够被定义成Application对象,不过这个数组只能作为一个对象保存,而不能用Application(0)取出其值。可以定义一个临时数组实现这种功能。如: <% <BR>dim Array() <BR>Array=Application("array") <BR>for i = 0 to ubound(array) <BR>Response.write Array(i) <BR>next i <BR>%> <BR> 同样要修改这个Application对象也可以定义一个临时数组,把Application对象赋给数组,然后修改这个数组的元素,最后把数组赋回Application对象。如: <% <BR>dim Array() <BR>Array=Application("array") <BR>Array(0)="jeff" <BR>Array(1)="zhu" <BR>Application.lock <BR>Application("array")=Array <BR>Application.unlock <BR>%> <BR>ObjectContext对象 该对象用于控制Active Server Pages的事务处理。事务处理由Microsoft Transaction Server (MTS)管理。
事件
ObjectContext.OnTransactionAbort <BR><BR>由放弃的事务处理事件激发,在脚本完成处理后发生。
ObjectContext.OnTransactionCommit <BR><BR>由成功的事务处理事件激发,在脚本完成处理后发生。
方法
ObjectContext.SetAbort <BR><BR>显式的放弃一次事务处理。
ObjectContext.SetComplete <BR><BR>覆盖前面任何调用ObjectContext.SetAbort方法的调用。
Request对象
Request对象用于接受所有从浏览器发往你的服务器的请求内的所有信息。
集合
Request.ClientCertificate(key[SubField]) <BR><BR>所有客户证书的信息的集合。对于Key,该集合具有如下的关键字:
Subject
证书的主题。包含所有关于证书收据的信息。能和所有的子域后缀一起使用。
Issuer
证书的发行人。包含所有关于证书验证的信息。除了CN外,能和所有的子域后缀一起使用。
VadidFrom
证书发行的日期。使用VBScript格式。
ValidUntil
该证书不在有效的时间。
SerialNumber
包含该证书的序列号。
Certificate
包含整个证书内容的二进制流,使用ASN.1格式。
对于SubField,Subject和Issuer关键字可以具有如下的子域后缀:(比如:SubjectOU或IssuerL)
C
起源国家。
O
公司或组织名称。
OU
组织单元。
CN
用户的常规名称。
L
局部。
S
州(或省)。
T
个人或公司的标题。
GN
给定名称。
I
初始。
当文件cervbs.inc(VBScript使用)或cerjavas.inc(Jscript使用)通过使用#INCLUDE导向包含在你的Active Server Page里时,下面两个标志可以使用:
ceCertPresent
指明客户证书是否存在,其值为TRUE或FALSE。
ceUnrecongnizedIssure
指明在该链表中的最后的证书的发行者是否未知,其值为TRUE或FALSE。
Request.Cookies(Cookie[(key).Attribute]) <BR><BR>Cookie的集合。允许获得浏览器的Cookie。Cookie指明返回那一个Cookie。Key用于从Cookie字典中返回具有某一关键字的Cookie值。对于Attribute,你能使用属性HasKeys来确定某一Cookie是否具有子关键字。HasKeys的值为TRUE或FALSE。
Request.Form(Parameter)[(Index).Count] <BR><BR>填写在HTML的表单中所有的数据的集合。Parameter是在HTML表单中某一元素的名称。当某一参数具有不止一个值(比如,当在<SELECT>中使用MULTIPLE属性时)时,使用Index。当某一参数具有多值时,Count指明多值个数。
Request.QueryString(Varible)[(Index).Count] <BR><BR>查询字符串的所有值的集合。Varible是在查询字符串某一变量的名称。当某一变量具有多于一个值时,使用Index。当某一参数具有多值时,Count指明值的个数。
Request.ServerVaribles(Server Environment Variable) <BR><BR>环境变量的集合。允许读取HTTP头。你可以通过使用HTTP_前缀来读取任何头信息。比如,HTTP_USER_AGENT接受客户代理HTTP头(浏览器类型)。除此外,你可以使用下表所示的变量获得任何环境信息。
ALL_HTTP
客户端发送的所有HTTP标头,他的结果都有前缀HTTP_。
ALL_RAW
客户端发送的所有HTTP标头,其结果和客户端发送时一样,没有前缀HTTP_
APPL_MD_PATH
应用程序的元数据库路径。
APPL_PHYSICAL_PATH
与应用程序元数据库路径相应的物理路径。
AUTH_PASSWORD
当使用基本验证模式时,客户在密码对话框中输入的密码。
AUTH_TYPE
这是用户访问受保护的脚本时,服务器用于检验用户的验证方法。
AUTH_USER
代验证的用户名。
CERT_COOKIE
唯一的客户证书ID号。
CERT_FLAG
客户证书标志,如有客户端证书,则bit0为0。如果客户端证书验证无效,bit1被设置为1。
CERT_ISSUER
用户证书中的发行者字段。
CERT_KEYSIZE
安全套接字层连接关键字的位数,如128。
CERT_SECRETKEYSIZE
服务器验证私人关键字的位数。如1024。
CERT_SERIALNUMBER
客户证书的序列号字段。
CERT_SERVER_ISSUER
服务器证书的发行者字段
CERT_SERVER_SUBJECT
服务器证书的主题字段。
CERT_SUBJECT
客户端证书的主题字段。
CONTENT_LENGTH
客户端发出内容的长度。
CONTENT_TYPE
客户发送的form内容或HTTP PUT的数据类型。
GATEWAY_INTERFACE
服务器使用的网关界面。
HTTPS
如果请求穿过安全通道(SSL),则返回ON。如果请求来自非安全通道,则返回OFF。
HTTPS_KEYSIZE
安全套接字层连接关键字的位数,如128。
HTTPS_SECRETKEYSIZE
服务器验证私人关键字的位数。如1024。
HTTPS_SERVER_ISSUER
服务器证书的发行者字段。
HTTPS_SERVER_SUBJECT
服务器证书的主题字段。
INSTANCE_ID
IIS实例的ID号。
INSTANCE_META_PATH
响应请求的IIS实例的元数据库路径。
LOCAL_ADDR
返回接受请求的服务器地址。
LOGON_USER
用户登录Windows NT的帐号
PATH_INFO
客户端提供的路径信息。
PATH_TRANSLATED
通过由虚拟至物理的映射后得到的路径。
QUERY_STRING
查询字符串内容。
REMOTE_ADDR
发出请求的远程主机的IP地址。
REMOTE_HOST
发出请求的远程主机名称。
REQUEST_METHOD
提出请求的方法。比如GET、HEAD、POST等等。
SCRIPT_NAME
执行脚本的名称。
INSTANCE_ID
IIS实例的ID号。
INSTANCE_META_PATH
响应请求的IIS实例的元数据库路径。
LOCAL_ADDR
返回接受请求的服务器地址。
LOGON_USER
用户登录Windows NT的帐号
PATH_INFO
客户端提供的路径信息。
PATH_TRANSLATED
通过由虚拟至物理的映射后得到的路径。
QUERY_STRING
查询字符串内容。
REMOTE_ADDR
发出请求的远程主机的IP地址。
REMOTE_HOST
发出请求的远程主机名称。
REQUEST_METHOD
提出请求的方法。比如GET、HEAD、POST等等。
SCRIPT_NAME
执行脚本的名称。
SERVER_NAME
服务器的主机名、DNS地址或IP地址。
SERVER_PORT
接受请求的服务器端口号。
SERVER_PORT_SECURE
如果接受请求的服务器端口为安全端口时,则为1,否则为0。
SERVER_PROTOCOL
服务器使用的协议的名称和版本。
SERVER_SOFTWARE
应答请求并运行网关的服务器软件的名称和版本。
URL
提供URL的基本部分。
语法 Server.HTMLEncode( string )
参数 string 指定要编码的字符串。
示例脚本 <%= Server.HTMLEncode("The paragraph tag: <P>") %>
输出 The paragraph tag: <P>
注意 以上输出将被 Web 浏览器显示为The paragraph tag: <P>如果查看一下源文件或以文本方式打开一个 Web 页,您就可以看到已编码的 HTML。
MapPath
MapPath 方法将指定的相对或虚拟路径映射到服务器上相应的物理目录上。
语法
Server.MapPath( Path )
参数
Path
指定要映射物理目录的相对或虚拟路径。若 Path 以一个正斜杠 (/) 或反斜杠 (\) 开始,则 MapPath 方法返回路径时将 Path 视为完整的虚拟路径。若 Path 不是以斜杠开始,则 MapPath 方法返回同 .asp 文件中已有的路径相对的路径。
注释
MapPath 方法不支持相对路径语法 (.) 或 (..)。例如,下列相对路径 ../MyDir/MyFile.txt 返回一个错误。
MapPath 方法不检查返回的路径是否正确或在服务器上是否存在。
因为 MapPath 方法只映射路径而不管指定的目录是否存在,所以,您可以先用 MapPath 方法映射物理目录结构的路径,然后将其传递给在服务器上创建指定目录或文件的组件。
示例
对于下列示例,文件data.txt和包含下列脚本的test.asp文件都位于目录C:\Inetpub\Wwwroot\Script下。C:\Inetpub\Wwwroot目录被设置为服务器的宿主目录。
下列示例使用服务器变量 PATH_INFO 映射当前文件的物理路径。脚本
<%= server.mappath(Request.ServerVariables("PATH_INFO"))%><BR>
输出
c:\inetpub\wwwroot\script\test.asp<BR>
由于下列示例中的路径参数不是以斜杠字符开始的,所以它们被相对映射到当前目录,此处是 C:\Inetpub\Wwwroot\Script。脚本
<%= server.mappath("data.txt")%><BR>
<%= server.mappath("script/data.txt")%><BR>
输出
c:\inetpub\wwwroot\script\data.txt<BR>
c:\inetpub\wwwroot\script\script\data.txt<BR>
接下来的两个示例使用斜杠字符指定返回的路径应被视为在服务器的完整虚拟路径。脚本
<%= server.mappath("/script/data.txt")%><BR>
<%= server.mappath("\script")%><BR>
输出
c:\inetpub\script\data.txt<BR>
c:\inetpub\script<BR>
下列示例演示如何使用正斜杠 (/) 或反斜杠 (\) 返回宿主目录的物理路径。脚本
<%= server.mappath("/")%><BR> <BR><%= server.mappath("\")%><BR> <BR><BR>输出 c:\inetpub\wwwroot<BR>
c:\inetpub\wwwroot<BR>
URLEncode
URLEncode 方法将 URL 编码规则,包括转义字符,应用到指定的字符串。
语法
Server.URLEncode( string )
参数
String 指定要编码的字符串。
示例
脚本 <%Response.Write(Server.URLEncode("http://www.tinyu.com";)) %>
输出 http%3A%2F%2Fwww%2Etinyu%2Ecom
Session对象
Session其实指的就是访问者从到达某个特定主页到离开为止的那段时间。每一访问者都会单独获得一个Session。在Web应用程序中,当一个用户访问该应用时,Session类型的变量可以供这个用户在该Web应用的所有页面中共享数据;如果另一个用户也同时访问该Web应用,他也拥有自己的Session变量,但两个用户之间无法通过Session变量共享信息,而Application类型的变更则可以实现站点多个用户之间在所有页面中共享信息。
1、SessionID属性
该属性返回当前会话的唯一标志,为每一个Session分配不同的编号。
我曾在开发过程中就遇到对用户的控制问题。它要实现的功能就是,针对某个网站的一个模块,当一个会员登录后正在看此模块时,另一个人用同样的会员名登录,就不能浏览这个模块。也就是说一个会员名同时只能一个人浏览此模块。我通过用会员名(假设为UserID,唯一)和SessionID来实现了控制。当会员登录时,给这个会员一个Session记录登录状态如:Session("Status")="Logged",同时把这个会员的Session.SessionID写入数据库。当他要浏览此模块时,先判断其是否登录,若已经登录再判断它的SessionID是否与数据库记录的相同,如果不同则不能访问。这样,当另一个用户用相同的会员名登录时,那么数据库中记录的就是新的SessionID,前者访问此模块时就不能通过检查。这就实现了一个会员名同时只能一个人浏览某个模块。这个功能在一些收费网站有很有特别作用,它防止了一个会员名给多个人浏览的问题,为公司保障了利益。
2、TimeOut属性
该属性用来定义用户Session对象的时限。如果用户在规定的时间内没有刷新网页,则Session对象就会终止。一般默认为20分钟。
3、Abandon方法
该方法是Session对象的唯一方法,可以清除Session对象,用来消除用户的Session对象并释放其所占的资源。如: <% Session.Abandon %>
4、Session_OnStart和Session_OnEnd事件
和Application一样,当对象的例程每一次启动时触发Session_OnStart事件,然后运行Session_Onstart事件的处理过程。也就是说,当服务器接收到应用程序中的URL的HTTP请求时,触发此事件,并建立一个Session对象。同理,这个事件也必须定在Global.asa文件中。
当调用Session.Abandon方法时或者在TimeOut的时间内没有刷新,这会触发Session_OnEnd事件,然后执行里面的脚本。Session变量与特定的用户相联系,针对某一个用户赋值的Session变量是和其他用户的Session变量完全独立的,不会存在相互影响。
Session应用一列:
与Application一样,一个被定义为Session类型的数组只能将整个数组作为一个对象,用户不能直接改变Session数组中某个元素的值。为了创建一个Session数组,需先定义一个普通的数组,并对它的每一个元素赋初值,最后把它定义为一个Session数组。如:
<% <BR>dim array() <BR>array=array("李","明","男") <BR>Session("info")=array <BR>Response.write Session("info")(0) &"-" <BR>Response.write Session("info")(1) &"-" <BR>Response.write Session("info")(2) &"<br>" <BR>%> <BR><hr> <BR><% <BR>array(0)="天" <BR>array(1)="宇" <BR>array(2)="男" <BR>Session("info")=array <BR>Response.write Session("info")(0) & "-" <BR>Response.write Session("info")(1) & "-" <BR>Response.write Session("info")(2) & "<br>" <BR>%> <BR><a href="http://tech.163.com/"><img src="/newimg/arc_d.gif" alt="gigi_miao" width="12" height="12" border="0" /></a>
[编辑]


