载入中
自定义HTML载入中... loading
第6章 Session和Application对象 [原创 2008-06-22 16:50:21]  删除... 
字体变小 字体变大

 
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>

 

所属版块: 科技
票数:
什么是“我顶”?
点击数:    评论数:
本文章引用通告地址(TrackBack Ping URL)为:
本文章尚未被引用。
发表评论
大 名:
(不填写则显示为匿名者)
网 址:
(您的网址,可以不填)
标 题:
内 容:
请根据下图中的字符输入验证码:
(您的评论将有可能审核后才能发表)
和讯个人门户 v1.0 | 和讯部落 | 客服中心