WEB开发技术 第三章
3.3 Session对象及其应用
From,吴教育
Email,wujiaoyu@21cn.com
Q Q,188128997
课程引入与回顾
? Application 对象
? Server 对象
目标
? Session 对象
3.5 Session 对象
? Session对象用于存储有关用户的信息 。
? 在整个用户会话过程中都会保留此信息 。
? 当用户在应用程序中从一个网页浏览到另
一个网页时, 存储在 Session 对象中 的变量
不会被丢弃 。
Session 对象 的优点
? Session对象包含专门用于特定用户的信息
,这些信息不能 由应用程序的其他用户共享
或访问 。
? 当用户向服务器提出其他请求时,该用户 ID
会在客户端和服务器之间进行传输。
? 当会话过期或者终止时, 服务器 会 销 毁 该
Session 对象 。
会话的启动和结束
? 会话会在下列情况下启动:
– 新用户请求 ASP 文件,且 Global.asa 文件包括
Session_OnStart 过程时。
– Session 变量中存储一个值时。
– 用户请求 ASP 文件,且 Global.asa 文件使用 <object>
标记实例化具有会话范围的对象时。
? 会话会在下列情况下结束:
– 如果用户在应用程序中未请求或者未刷新网页的
时间达到了 Timeout 属性指定的时间。此属性的
默认值为 20 分钟。
– 如果会话已经被放弃。
会话变量
? 会话变量只可由该会话的用户访问
? 应用程序的其他用户不能访问或修改会话
变量
使用会话变量
<HTML>
<HEAD>
<TITLE>使用会话变量 </TITLE>
</HEAD>
<BODY>
此网页向名为 mytime 的变量赋值
<BR>
<%
Session("mytime") = formatdatetime(now,vblongformat)
%>
<BR>
<%=Session("mytime")%>
</BODY>
</HTML>
访问会话变量
<HTML>
<HEAD>
<TITLE>使用会话变量 </TITLE>
</HEAD>
<BODY>
这是第 2 页
<BR>
<%=Session("mytime")%>
</BODY>
</HTML>
SessionID属性
<HTML>
<BODY>
<%
Response.Write(Session.SessionID)
%>
</BODY>
</HTML>
<%
Session.LCID = 1036
%>
<%
Dim due
due = 50
Response.Write("今天日期为 " &FormatDateTime(Date)
& "<BR>")
Response.Write("到期金额总计为 "
& FormatCurrency(due))
%>
LCID属性
LCID 描述
2048 美国
2057 英国
1036 法国
3079 瑞典
TimeOut属性
<%
response.write("<p>")
response.write("默认超时时间为," & Session.Timeout)
response.write("</p>")
Session.Timeout=30
response.write("<p>")
response.write("现在的超时时间为," & Session.Timeout)
response.write("</p>")
%>
TimeOut 属性用于以分钟为单位指定 Session 对象在资源
被释放之前可保持不活动状态的持续时间。
Abandon方法
Abandon 方法用于显式结束会话。
<%
Session("Name")="Graham"
Response.Write("会话变量 Name 的值 ( 放弃会话 <B>之前 </B>),
" & Session("Name") & "<BR><BR>")
Session.Abandon
Response.Write("会话变量 Name 的值(放弃会话 <B>之后 </B>), "
& Session("Name"))
%>
Global.asa 文件
? ASP 应用程序使用 Global.asa文件来维护有
关应用程序全局事件和对象的信息。
? Global.asa 文件包含一些子 程序,这些子程
序将在响应某些事件时被激活。
– Application_OnStart 事件在启动应用程序时触
发。
– Application_OnEnd 事件在用户结束应用程序
时触发。
– Session_OnStart 事件在用户启动会话时触发。
– Session_OnEnd 事件在用户结束会话时触发。
Global.asa 文件的结构
? 启动应用程序时, 将 触 发
Application_OnStart 事件 。
? 对于访问应用程序的每个用户,
都将启动单独的 Session。
? 当用户从应用程序退出时, 将
为 该 特 定 用 户 触 发
Session_OnEnd 事件 。
? 应用程序全部关闭时, 将触发
Application_OnEnd 事件 。
Global.asa 文件
Application 事件
? On_Start
? On_End
Session 事件
? On_Start
? On_End
使用 Global.asa 文件
? 可以向 global.asa 文件的子 程序添加脚本
,以完成下列任务:
– 初始化应用程序或者会话级别的变量
– 连接数据库
– 发送 Cookies
– 使用可在整个应用程序中使用的 <object>标记
创建对象的实例 。
? Global.asa 文件中不能包含任何 HTML 标
记或者 Response.Write 语句。
Session_OnStart
Sub Session_OnStart()
homePage = "/index.asp"
visitPage = Request.ServerVariables("SCRIPT_NAME")
If not(strcomp(homePage,visitPage,vbTextCompare)=0)
Then
Response.Redirect homePage
End If
End Sub
新用户访问 ASP 应用程序时,将触发 Session_OnStart
事件。
Global.asa
Session_OnEnd
<script language="vbscript" runat="server">
Sub Application_OnStart()
Application("Visitors")=0
Application("TotalVisitors")=0
End Sub
Sub Application_OnEnd()
’将 Application("TotalVisitors")的值记录在一个文本文件中或保存在数据库中
End Sub
Sub Session_OnStart()
Session.TimeOut=1
Application.Lock
Application("Visitors")=Application("Visitors")+1
Application("TotalVisitors") = Application("TotalVisitors")+1
Application.UnLock
End Sub
Sub Session_OnEnd()
Application.Lock
Application("Visitors")=Application("Visitors")-1
Application.UnLock
End Sub
</script> Global.asa
Session_OnEnd 输出
<%Response.Expires = 0%>
<HTML>
<BODY>
<p>现在有 <%=Application("visitors")%> 个在线用
户 ! </p>
<p>现 在共有 <%=Application("TotalVisitors")%>
个用户浏览过我的网站 ! </p>
</BODY>
</HTML> 应用程序页
即使刷新该网页,也不会累加
在线人数和总的访问量。如果
在另一个浏览窗口中打开此页,
才会累加在线人数和访问量。
如果当一个会话已经超时或被
放弃,则会驱动 Session_OnEnd
事件,使当前在线人数减 1。
3.6 Cookie
在客户端记录用户信
息
1、什么是 Cookies
? Cookie 是一个小的信息包,它是服务器端发
送到客户端浏览器的文本句柄,保存在客户的
硬盘上,用于维护用户上网的状态信息。
? Cookies 的两种形式:
– 临时性的, Cookie 在用户离开网站时将过期。
– 永久性的, Cookie 一直保存在客户机中,当用户
下一次访问该网站时可由 Web 服务器读取。
2,Cookies 工作机制
? Cookie 通过 HTTP 头从 Web 服务器发送
到客户端浏览器,然后又 通过 HTTP 头发
送回 Web 服务器。
? 第一次启动会话时, 服务器将使用 Set-
Cookie 头向客户端浏览器发送一个 Cookie
。
? 用户每次请求网页时,该 Cookie 都将在
Cookie 头中被发送到服务器。
? 不同网站只能读取自己的 Cookie
3、使用 Response设置 Cookies
语法
Response.Cookies (cookiename) [(key) |,attribute] = value
示例
<%
Response.Cookies ("UserName") = "John Cruise"
%>
向 Cookies 赋值 参数说明
参数 描述
Cookiename Cookies 的名称
Key 这是可选参数 。 如果使用 关键字, Cookies 则会成为 dictionary,
并要为该 关键字 设置一个值 。
Attribute 此参数用来指定 Cookie 的相关信息 。 可为下列内容,
Domain:如果指定此属性, 则只对来自指定域的请求发送
Cookies。
Expires:此属性指定 Cookies 的过期日期 。
Path:如果指定此属性, 则只有请求位于 指定路径中的网页时
才发送 Cookies。
Secure:此属性用于指定该 Cookie 是否安全 。
Haskeys:判断是否存在 Cookie关键字
Value 赋给关键字或属性的值。
Cookies 文件夹
? Cookies 存储在用户计算机的, Cookies”文件夹
中。
? 如果不存在 Cookies,则会创建。如果存在
Cookies,则会 丢弃旧值,而存储新值。
Cookies 的类型
具有单个值的 Cookie
<%
Response.Cookies ("UserName") = "John Cruise"
Response.Cookies ("UserName"),Path = "/Platinum"
Response.Cookies ("UserName"),Domain = ".Platinum.com"
Response.Cookies ("UserName"),Secure = True
%>
具有几个名称 /值对信息的 Cookie Dictionary
<%
Response.Cookies ("User") ("Name") = "John Cruise"
Response.Cookies ("User") ("Password") = "smallgun"
%>
Set-Cookie,User=Name= John+Cruise&Password=smallgun
设置 Cookie的说明
? 设置 Cookie时,如果该 Cookie不存在,则
会新生成一个,如果已存在,则覆盖原有
数据
? Response.Cookie必须用在所有 HTML元素
前面,如果想用在文件在任意地方,则必
须在文件开头加上 <%
response.buffer=true%>,
(response.redirect一样 )
4、使用 Request检索 Cookies
Request.Cookies (cookiename) [(key) |,attribute]
参数 描述
Cookiename Cookies 的名称 。
Key 这 是 可 选 参数 。 如 果要 检 索 的是 一 个 Cookie
Dictionary,则要使用 关键字 。
Attribute 此参数用来指定 Cookie 的相关信息 。
检索数据 续
? 要从 Cookie中检索信息,则必须指定该 Cookie的
名称。
<%=Request.Cookies ("User") %>
? 如果想检索一个 Cookie Dictionary的特定关键字,
则必须传递这些关键字的名称。
<%=Request.Cookies ("User") ("Name") %>
? 如果想检索 Cookies 集合中的所有 Cookies,则可
以使用 For,., Next 循环。
? HasKeys 属性用于检查 Cookie 是否有关键字 。
设置 Cookie 选项
Expires 属性
Expires 属性用于指定 Cookie 将在哪一天过期。
<%
Response.Cookies ("UserName") = "Linda Roberts"
Response.Cookies ("UserName").Expires = #Jun 30,2003#
%>
<%=Request.Cookies ("UserName") %>
检索 Cookies说明
? Request.Cookie可以出现在 HTML程序的
<body>段中的任何位置
? 如果请求一个未定义的 Cookie或关键字,
则返回空值
示例
<% response.buffer=true%>
<html>
<head>
<title>Cookie example</title>
</head>
<body>
<%
Dim varnumber
Varnumber=request.cookies(“number”)
If varnumber=“” then
Varnumber=1
Else
Varnumber=varnumber+1
Endif
Response.write,您是第” &varnumber&”次访问本站”
Response.cookies(“number”)=varnumber
Response.cookies(“number”).expires=#2008-1-1#
%>
</body>
</html>
3.7 Global.asa 文件
设置 web应用程序全局
信息
1、什么是 web应用程序
? 有没有单独的内存空间
2、什么是 Global.asa 文件
? 每一个 web 应用程序可以使用一个 Global.asa文件,
该文件用来存放 session和 application对象事件的程
序。
? Global.asa 文件包含一些子 程序,这些子程序将在
响应某些事件时被激活。
– Application_OnStart 事件在启动应用程序时触发。
– Application_OnEnd 事件在用户结束应用程序时触发。
– Session_OnStart 事件在用户启动会话时触发。
– Session_OnEnd 事件在用户结束会话时触发。
3、利用 Global.asa 文件可 完成下列
任务? 可以向 global.asa 文件的子 程序添加脚本
,以完成下列任务:
– 初始化应用程序或者会话级别的变量
– 连接数据库
– 发送 Cookies
– 使用可在整个应用程序中使用的 <object>标记
创建对象的实例 。
4,Global.asa文件注意事项
? 文件必须文本文件,文件名必须是 Global.asa,
且必须存放在应用程序的根目录下。
? 在 Global.asa中,不能写成 <%…%> 格式,而
只能写成 <script language=“vbs”
runat=“server”>--</script>这种形式。
? 在 Global.asa中,不能包含任何输出语句。
? Global.asa 文件中不能包含任何 HTML 标记
? 对一个 web应用程序来说,也可以不用这个文
件
Global.asa文件格式
<Script language=“VBScript” runat=“server”>
Sub Application_OnStart
?子程序
End Sub
Sub Application_ OnEnd
?子程序
End Sub
Sub Session_OnStart
?子程序
End Sub
Sub Session_ OnEnd
?子程序
End Sub
</Script>
Global.asa示例:
<SCRIPT language="VBScript" runat="server">
Sub Application_OnStart
Application.Lock
Application("user_online")=0
Application.Unlock
End Sub
Sub Session_OnStart
Application.Lock
Application("user_online")= Application("user_online")+1
Application.Unlock
end sub
Sub Session_OnEnd
Application.Lock
Application("user_online")= Application("user_online")-1
Application.Unlock
End Sub
</SCRIPT>
3-7-1.asp
<% Option Explicit %>
<html>
<head>
<title>显示网站在线人数 </title>
</head>
<body>
<h2 align="center">我的个人主页 </h2>
<%
Response.Write "<p align='center'>当前共有 " &
Application("user_online") & "人在线 "
%>
</body>
</html>
Global.asa示例
总结
? Session 对象
? ASP 应用程序使用一个特殊的文件来维护应
用程序全局事件和对象的信息,该文件称为
Global.asa。
? Cookie 是一个小的信息包,用于维护用户
上网的状态信息。 Cookie 可以是临时性的,
也可以是永久性的。
3.3 Session对象及其应用
From,吴教育
Email,wujiaoyu@21cn.com
Q Q,188128997
课程引入与回顾
? Application 对象
? Server 对象
目标
? Session 对象
3.5 Session 对象
? Session对象用于存储有关用户的信息 。
? 在整个用户会话过程中都会保留此信息 。
? 当用户在应用程序中从一个网页浏览到另
一个网页时, 存储在 Session 对象中 的变量
不会被丢弃 。
Session 对象 的优点
? Session对象包含专门用于特定用户的信息
,这些信息不能 由应用程序的其他用户共享
或访问 。
? 当用户向服务器提出其他请求时,该用户 ID
会在客户端和服务器之间进行传输。
? 当会话过期或者终止时, 服务器 会 销 毁 该
Session 对象 。
会话的启动和结束
? 会话会在下列情况下启动:
– 新用户请求 ASP 文件,且 Global.asa 文件包括
Session_OnStart 过程时。
– Session 变量中存储一个值时。
– 用户请求 ASP 文件,且 Global.asa 文件使用 <object>
标记实例化具有会话范围的对象时。
? 会话会在下列情况下结束:
– 如果用户在应用程序中未请求或者未刷新网页的
时间达到了 Timeout 属性指定的时间。此属性的
默认值为 20 分钟。
– 如果会话已经被放弃。
会话变量
? 会话变量只可由该会话的用户访问
? 应用程序的其他用户不能访问或修改会话
变量
使用会话变量
<HTML>
<HEAD>
<TITLE>使用会话变量 </TITLE>
</HEAD>
<BODY>
此网页向名为 mytime 的变量赋值
<BR>
<%
Session("mytime") = formatdatetime(now,vblongformat)
%>
<BR>
<%=Session("mytime")%>
</BODY>
</HTML>
访问会话变量
<HTML>
<HEAD>
<TITLE>使用会话变量 </TITLE>
</HEAD>
<BODY>
这是第 2 页
<BR>
<%=Session("mytime")%>
</BODY>
</HTML>
SessionID属性
<HTML>
<BODY>
<%
Response.Write(Session.SessionID)
%>
</BODY>
</HTML>
<%
Session.LCID = 1036
%>
<%
Dim due
due = 50
Response.Write("今天日期为 " &FormatDateTime(Date)
& "<BR>")
Response.Write("到期金额总计为 "
& FormatCurrency(due))
%>
LCID属性
LCID 描述
2048 美国
2057 英国
1036 法国
3079 瑞典
TimeOut属性
<%
response.write("<p>")
response.write("默认超时时间为," & Session.Timeout)
response.write("</p>")
Session.Timeout=30
response.write("<p>")
response.write("现在的超时时间为," & Session.Timeout)
response.write("</p>")
%>
TimeOut 属性用于以分钟为单位指定 Session 对象在资源
被释放之前可保持不活动状态的持续时间。
Abandon方法
Abandon 方法用于显式结束会话。
<%
Session("Name")="Graham"
Response.Write("会话变量 Name 的值 ( 放弃会话 <B>之前 </B>),
" & Session("Name") & "<BR><BR>")
Session.Abandon
Response.Write("会话变量 Name 的值(放弃会话 <B>之后 </B>), "
& Session("Name"))
%>
Global.asa 文件
? ASP 应用程序使用 Global.asa文件来维护有
关应用程序全局事件和对象的信息。
? Global.asa 文件包含一些子 程序,这些子程
序将在响应某些事件时被激活。
– Application_OnStart 事件在启动应用程序时触
发。
– Application_OnEnd 事件在用户结束应用程序
时触发。
– Session_OnStart 事件在用户启动会话时触发。
– Session_OnEnd 事件在用户结束会话时触发。
Global.asa 文件的结构
? 启动应用程序时, 将 触 发
Application_OnStart 事件 。
? 对于访问应用程序的每个用户,
都将启动单独的 Session。
? 当用户从应用程序退出时, 将
为 该 特 定 用 户 触 发
Session_OnEnd 事件 。
? 应用程序全部关闭时, 将触发
Application_OnEnd 事件 。
Global.asa 文件
Application 事件
? On_Start
? On_End
Session 事件
? On_Start
? On_End
使用 Global.asa 文件
? 可以向 global.asa 文件的子 程序添加脚本
,以完成下列任务:
– 初始化应用程序或者会话级别的变量
– 连接数据库
– 发送 Cookies
– 使用可在整个应用程序中使用的 <object>标记
创建对象的实例 。
? Global.asa 文件中不能包含任何 HTML 标
记或者 Response.Write 语句。
Session_OnStart
Sub Session_OnStart()
homePage = "/index.asp"
visitPage = Request.ServerVariables("SCRIPT_NAME")
If not(strcomp(homePage,visitPage,vbTextCompare)=0)
Then
Response.Redirect homePage
End If
End Sub
新用户访问 ASP 应用程序时,将触发 Session_OnStart
事件。
Global.asa
Session_OnEnd
<script language="vbscript" runat="server">
Sub Application_OnStart()
Application("Visitors")=0
Application("TotalVisitors")=0
End Sub
Sub Application_OnEnd()
’将 Application("TotalVisitors")的值记录在一个文本文件中或保存在数据库中
End Sub
Sub Session_OnStart()
Session.TimeOut=1
Application.Lock
Application("Visitors")=Application("Visitors")+1
Application("TotalVisitors") = Application("TotalVisitors")+1
Application.UnLock
End Sub
Sub Session_OnEnd()
Application.Lock
Application("Visitors")=Application("Visitors")-1
Application.UnLock
End Sub
</script> Global.asa
Session_OnEnd 输出
<%Response.Expires = 0%>
<HTML>
<BODY>
<p>现在有 <%=Application("visitors")%> 个在线用
户 ! </p>
<p>现 在共有 <%=Application("TotalVisitors")%>
个用户浏览过我的网站 ! </p>
</BODY>
</HTML> 应用程序页
即使刷新该网页,也不会累加
在线人数和总的访问量。如果
在另一个浏览窗口中打开此页,
才会累加在线人数和访问量。
如果当一个会话已经超时或被
放弃,则会驱动 Session_OnEnd
事件,使当前在线人数减 1。
3.6 Cookie
在客户端记录用户信
息
1、什么是 Cookies
? Cookie 是一个小的信息包,它是服务器端发
送到客户端浏览器的文本句柄,保存在客户的
硬盘上,用于维护用户上网的状态信息。
? Cookies 的两种形式:
– 临时性的, Cookie 在用户离开网站时将过期。
– 永久性的, Cookie 一直保存在客户机中,当用户
下一次访问该网站时可由 Web 服务器读取。
2,Cookies 工作机制
? Cookie 通过 HTTP 头从 Web 服务器发送
到客户端浏览器,然后又 通过 HTTP 头发
送回 Web 服务器。
? 第一次启动会话时, 服务器将使用 Set-
Cookie 头向客户端浏览器发送一个 Cookie
。
? 用户每次请求网页时,该 Cookie 都将在
Cookie 头中被发送到服务器。
? 不同网站只能读取自己的 Cookie
3、使用 Response设置 Cookies
语法
Response.Cookies (cookiename) [(key) |,attribute] = value
示例
<%
Response.Cookies ("UserName") = "John Cruise"
%>
向 Cookies 赋值 参数说明
参数 描述
Cookiename Cookies 的名称
Key 这是可选参数 。 如果使用 关键字, Cookies 则会成为 dictionary,
并要为该 关键字 设置一个值 。
Attribute 此参数用来指定 Cookie 的相关信息 。 可为下列内容,
Domain:如果指定此属性, 则只对来自指定域的请求发送
Cookies。
Expires:此属性指定 Cookies 的过期日期 。
Path:如果指定此属性, 则只有请求位于 指定路径中的网页时
才发送 Cookies。
Secure:此属性用于指定该 Cookie 是否安全 。
Haskeys:判断是否存在 Cookie关键字
Value 赋给关键字或属性的值。
Cookies 文件夹
? Cookies 存储在用户计算机的, Cookies”文件夹
中。
? 如果不存在 Cookies,则会创建。如果存在
Cookies,则会 丢弃旧值,而存储新值。
Cookies 的类型
具有单个值的 Cookie
<%
Response.Cookies ("UserName") = "John Cruise"
Response.Cookies ("UserName"),Path = "/Platinum"
Response.Cookies ("UserName"),Domain = ".Platinum.com"
Response.Cookies ("UserName"),Secure = True
%>
具有几个名称 /值对信息的 Cookie Dictionary
<%
Response.Cookies ("User") ("Name") = "John Cruise"
Response.Cookies ("User") ("Password") = "smallgun"
%>
Set-Cookie,User=Name= John+Cruise&Password=smallgun
设置 Cookie的说明
? 设置 Cookie时,如果该 Cookie不存在,则
会新生成一个,如果已存在,则覆盖原有
数据
? Response.Cookie必须用在所有 HTML元素
前面,如果想用在文件在任意地方,则必
须在文件开头加上 <%
response.buffer=true%>,
(response.redirect一样 )
4、使用 Request检索 Cookies
Request.Cookies (cookiename) [(key) |,attribute]
参数 描述
Cookiename Cookies 的名称 。
Key 这 是 可 选 参数 。 如 果要 检 索 的是 一 个 Cookie
Dictionary,则要使用 关键字 。
Attribute 此参数用来指定 Cookie 的相关信息 。
检索数据 续
? 要从 Cookie中检索信息,则必须指定该 Cookie的
名称。
<%=Request.Cookies ("User") %>
? 如果想检索一个 Cookie Dictionary的特定关键字,
则必须传递这些关键字的名称。
<%=Request.Cookies ("User") ("Name") %>
? 如果想检索 Cookies 集合中的所有 Cookies,则可
以使用 For,., Next 循环。
? HasKeys 属性用于检查 Cookie 是否有关键字 。
设置 Cookie 选项
Expires 属性
Expires 属性用于指定 Cookie 将在哪一天过期。
<%
Response.Cookies ("UserName") = "Linda Roberts"
Response.Cookies ("UserName").Expires = #Jun 30,2003#
%>
<%=Request.Cookies ("UserName") %>
检索 Cookies说明
? Request.Cookie可以出现在 HTML程序的
<body>段中的任何位置
? 如果请求一个未定义的 Cookie或关键字,
则返回空值
示例
<% response.buffer=true%>
<html>
<head>
<title>Cookie example</title>
</head>
<body>
<%
Dim varnumber
Varnumber=request.cookies(“number”)
If varnumber=“” then
Varnumber=1
Else
Varnumber=varnumber+1
Endif
Response.write,您是第” &varnumber&”次访问本站”
Response.cookies(“number”)=varnumber
Response.cookies(“number”).expires=#2008-1-1#
%>
</body>
</html>
3.7 Global.asa 文件
设置 web应用程序全局
信息
1、什么是 web应用程序
? 有没有单独的内存空间
2、什么是 Global.asa 文件
? 每一个 web 应用程序可以使用一个 Global.asa文件,
该文件用来存放 session和 application对象事件的程
序。
? Global.asa 文件包含一些子 程序,这些子程序将在
响应某些事件时被激活。
– Application_OnStart 事件在启动应用程序时触发。
– Application_OnEnd 事件在用户结束应用程序时触发。
– Session_OnStart 事件在用户启动会话时触发。
– Session_OnEnd 事件在用户结束会话时触发。
3、利用 Global.asa 文件可 完成下列
任务? 可以向 global.asa 文件的子 程序添加脚本
,以完成下列任务:
– 初始化应用程序或者会话级别的变量
– 连接数据库
– 发送 Cookies
– 使用可在整个应用程序中使用的 <object>标记
创建对象的实例 。
4,Global.asa文件注意事项
? 文件必须文本文件,文件名必须是 Global.asa,
且必须存放在应用程序的根目录下。
? 在 Global.asa中,不能写成 <%…%> 格式,而
只能写成 <script language=“vbs”
runat=“server”>--</script>这种形式。
? 在 Global.asa中,不能包含任何输出语句。
? Global.asa 文件中不能包含任何 HTML 标记
? 对一个 web应用程序来说,也可以不用这个文
件
Global.asa文件格式
<Script language=“VBScript” runat=“server”>
Sub Application_OnStart
?子程序
End Sub
Sub Application_ OnEnd
?子程序
End Sub
Sub Session_OnStart
?子程序
End Sub
Sub Session_ OnEnd
?子程序
End Sub
</Script>
Global.asa示例:
<SCRIPT language="VBScript" runat="server">
Sub Application_OnStart
Application.Lock
Application("user_online")=0
Application.Unlock
End Sub
Sub Session_OnStart
Application.Lock
Application("user_online")= Application("user_online")+1
Application.Unlock
end sub
Sub Session_OnEnd
Application.Lock
Application("user_online")= Application("user_online")-1
Application.Unlock
End Sub
</SCRIPT>
3-7-1.asp
<% Option Explicit %>
<html>
<head>
<title>显示网站在线人数 </title>
</head>
<body>
<h2 align="center">我的个人主页 </h2>
<%
Response.Write "<p align='center'>当前共有 " &
Application("user_online") & "人在线 "
%>
</body>
</html>
Global.asa示例
总结
? Session 对象
? ASP 应用程序使用一个特殊的文件来维护应
用程序全局事件和对象的信息,该文件称为
Global.asa。
? Cookie 是一个小的信息包,用于维护用户
上网的状态信息。 Cookie 可以是临时性的,
也可以是永久性的。