
6.1 Session对象及使用
6.2 Application对象及使用
本章主要介绍Session和Application对象。第5章介绍的Request对象与Response对象用来实现服务器端与客户端浏览器数据的交互,本章将介绍的Session对象与Application对象则被用来在服务器端的用户之间或ASP文件之间传递数据。通过本章的学习,读者应该掌握以下内容:
&O1548; Session对象及使用
&O1548; Application对象及使用
&O1548; 应用程序与Global文件
6.1 Session对象及使用
在网站首页客户客户输入了自己的用户名和密码,用什么来记住用户名呢?
到目前为止,我们利用已学知识可以使用下一两种方法。
方法一:利用Request对象的Querystring方法一页一页传递过去。这种方法的缺点是太麻烦。
方法二:利用Cookies保存用户名。
本节再来学习一种更简洁的方法,就是利用Session对象。
6.1.1 Session对象简介
任何存储在用户Session中的信息可以在用户调用下一个页面时取得。也就是说,客户在该网站的任何一个页面都可以存取Session信息,如图6-1所示。
Session对象常被用在:
(1)存储用户的首选项;
(2)保存用户的身份标记,实现用户的身份认证和用户权限管理等。
Session对象有下面两个属性。
(1)SessionID:存储用户的SessionID。
(2)Timeout:Session的有效期时长。
Session对象只有一个方法。
Abandon:清除Session对象。
Session对象有两个事件,且必须和6.3节要介绍的Global.asa结合使用。
(1)Session_OnStart:一个Session对象开始前,触发该事件。
(2)Session_OnEnd:一个Session对象结束时,触发该事件。
6.1.2 利用Session存储信息
语法:
Session ("Session名字") =变量或字符串信息
例6-1 Session的使用方法。
<%Option Explicit%>
<html>
<head>
<title>Session使用方法</title>
</head>
<body>
<%
Dim user_name,age
user_name=“李飞”
'这里为了简单,直接赋值了
age=16
Session ("user_name") =user_name '给Session赋值,即自动创建
Session ("age") =age
response.write "<a href='6-2.asp'>单击显示用户信息</a>" '链接到例6-2
%>
</body>
</html>
例6-2 显示Session信息。
<%Option Explicit%>
<html>
<head>
<title>Session使用方法</title>
</head>
<body>
<%
Dim user_name
user_name=Session("user_name") '将Session值赋给变量
response.write user_name&"您好,欢迎学习ASP程序设计<br>"
response.write "您的年龄是"&Session("Age") '直接使用Session值
%>
</body>
</html>
例6-3 使用Session编写计数器程序。
<html>
<head>
<title>使用session变量计数</title>
</head>
<body>
<P>使用Session变量计数<hr>
<%
Session("counter")=Session("counter")+1 '创建Session,并给Session赋值
%>
<font size=7 face=隶书 color=blue>
您是第<%=Session("counter")%>次来访!</font>
</body>
</html>
6.1.3 利用Session存储数组信息
例6-4 利用Session存储数组信息。
<%Option Explicit%>
<html>
<head>
<title>利用Session存储数组信息</title>
</head>
<body>
<%
dim user_name(5) '重新定义数组
user_name(0)="李美"
user_name(1)="张枫"
Session("arry_user_name")=user_name '传入数组到Session对象
Response.Write "<a href='6-5.asp'>单击显示数组信息</a>"
%>
</body>
</html>
例6-5 显示Session数组信息。
<%Option Explicit%>
<html>
<head>
<title>显示Session数组信息</title>
</head>
<body>
<%
Dim user_name
'注意声明方法,不能加括号
user_name=Session("arry_user_name") '返回Session数组元素
Response.Write user_name(0)&"您好,欢迎您进入ASP世界!<br>"
Response.Write user_name(1)&"您好,欢迎您走进ASP领域!<br>"
%>
</body>
</html>
6.1.4 Session对象的属性
Session对象共有4种属性,分别是SessionID、TimeOut、LCID和CodePage。
(1)SessionID属性
语法:
Session.SessionID
可以使用以下两种方法来访问SessionID的值:
① <%=SessionID%>
② <%Response.Write(Session.SessionID)%>
例6-6 SessionID的使用。
<html>
<head>
<title>SessionID的使用</title>
</head>
<body>
<%
session("name1")="张三"
%>
<br>你的自动编号为:<%=SessionID%>
</body>
</html>
(2)Timeout属性
Session对象的Timeout属性用来设置“过期时间”,方法是:
① 在ASP的注册表中修改系统默认值;
② 用Session对象的Timeout属性可以修改来更改。不过,请注意用该属性更改的有效期长度不能低于默认值。
语法:
Session.Timeout=MaxTime
例如:
<% Session. Timeout=40
'将有效期改为40分钟 %>
6.1.5 Session对象的方法
Session对象到期会自动清除,也就是说,Session对象的生命周期起始于浏览器第一次与服务器联机时,终止于浏览器结束联机时,或浏览器超过20分钟不再向服务器端提出请求或刷新Web页面时。
语法:
Session.Abandon
例6-7 利用Session方法输出,不使用Abandon方法。
<html>
<head>
<title>sessionID</title>
</head>
<body>
<%
Session("user_name")="aa"
Session("age")=5
response.write "您的名字是:
"&session("user_name")&" <br>"
response.write "您的年龄是:" &session("age")
%>
</body>
</html>
例6-8 利用Session方法输出,并使用Abandon方法。
<html>
<head>
<title>使用abandon方法
</title>
</head>
<body>
<%
Session.Abandon
Response.write "您的名字是:"
&session("user_name")&"<br>"
response.write "您的年龄是:"&session("age")
%>
</body>
</html>
6.2 Application对象及使用
在访问ASP网页时,Session对象记载的只是特定客户的信息,与此相反的是,Application对象可以记载所有客户信息,就好比公共场所一样。
也就是说,不同的客户访问不同的Session对象,但许多客户可以同时访问公共Application对象。
6.2.1 Application对象简介
ASP应用程序中,如果同时访问的用户很多,就可能会出现很多用户同时修改一个Application变量的值的情况。可以利用Application对象的两个方法:Lock和Unlock来解决。
(1)Lock:锁定Application对象。
(2)Unlock:解除锁定。
Application对象有两个事件,必须和6.3节要讲的Global.asa结合使用。
(1)Application_OnStart:
Application开始前,调用该程序。
(2)Application_OnEnd:
Application结束后,调用该程序。
6.2.2 利用Application存储信息
Application的使用和Session很相似,可以把变量或字符串等信息很容易地保存在Application中。
语法:
Application("Application名字")=变量或字符串信息
例如:
<%
Application.Lock '锁定Application对象,以防止其他用户更改
Application("user_name")=user_name '将user_name变量存入Application
Application("factory")="现代汽车公司" '将字符串信息存入Application
Application.UnLock '解除锁定,以允许别人更改
%>
例6-9 使用Application创建聊天室。
<html>
<head>
<title>使用Application,创建聊天室</title>
</head>
<body>
<font face=方正舒体 color=blue>
<h2 align=center>使用Application,创建聊天室</h2></font>
<form action="" method="post" name="form1">
<font size=6 face=方正姚体 color=blue>
请留言:<input type="text" name="mywords" size="20"></font>
<input type="submit" value="确定">
</form>
<%
mywords=request.form("mywords") '将每个聊天人说的话赋给一个变量
Application.lock '锁住Application,不允许别的用户修改
application("chat_content")=application("chat_content")&"<br>"&mywords '每个用户都将自己的话加入到Application对象中
response.write application("chat_content")
'输出每个人说的话
application.unlock '解开Application,以允许别的用户继续修改
%>
</body>
</html>
例6-10 使用Application变量,编写计数器程序。
<html>
<head>
<title>使用Application变量,编写计数器程序</title>
</head>
<body>
<font size=5 face=楷体color=red>使用Application变量,编写计数器程序<p>
<%
counter=application("counter")+1
application("counter")=counter
%>
<FONT size=6>欢迎,您是第<%=counter%>位来访者</FONT>
</body>
</html>
6.2.3 利用Application存储数组信息
例6-11 利用Session存储数组信息。
<html>
<head>
<title>利用Application存储数组信息</title>
</head>
<body>
<Palign="center">利用Application存储数组信息<hr>
<%Dimuser_name(3)
'创建一维数组,并直接给其赋值
user_name(0)="李平"
user_name(1)="张枫"
user_name(2)="李良"
user_name(3)="李辰"
Application.lock
Application("姓名")=user_name '将user_name存入Application变量中
Application.unlock
%>
<table border=1 color=blue><tr><td colspan=2>姓名
<!返回Application的数组元素>
<%name=application("姓名")%>
<tr><td>1.<td><%=(name(0))%>
<tr><td>2.<td><%=(name(1))%>
<tr><td>3.<td><%=(name(2))%>
<tr><td>4.<td><%=(name(3))%>
</table>
</body>
</html>
: 科技

