使用ASP的SESSION对象


  Session对象,可以使不同的用户存储自己的信息,基本的形式为:Session(“name”)=变量,每当你启动该程序一次,就创建了一个SESSION对象,两个不同的进程不能共享同一个Session变量(APPLICATION就以),Session对象对开发WEB应用起到了非常重要的作用。
来我们先看一下以下的例子吧!
点击这里测试一下。
源代码如下:
login.asp:

<%@ Language=VBScript %>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>

<% 
if Request.QueryString("loginout")="TRUE" then
Session.Abandon()
end if 
%>

<FORM action="login.asp" method=POST id=form1 name=form1>
姓名:<INPUT type="text" id=txtxm name=txtxm><BR>
密码:<INPUT type="text" id=txtmm name=txtmm><BR>
<INPUT type="submit" value="提交" id=submit1 name=submit1>
</FORM>

<%
if Request.Form("txtxm")<>"" then
Session("name")=Request.Form("txtxm")
Session("pw")=Request.Form("txtmm")
end if

%>

<HR>
<a href="info.asp">显示你的资料</a>


</BODY>
</HTML>


info.asp:


<%@ Language=VBScript %>
<%
if session("name")="" then
Response.Redirect("login.asp")
end if

%>

<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>


<%
Response.Write("你的姓名:" & session("name") & "<BR>")
Response.Write("你的密码:" & session("pw") & "<BR>")
%>

<a href="login.asp?loginout=TRUE">退出</a>

</BODY>
</HTML>

  输入姓名和密码进行提交后,再按“显示你的资料”,便能进入下一页面显示你的相关资料,
  当你试图不进行提交,直接按“显示你的资料”,程序禁止你进入下一界面,其实就是通
过以下的代码进行检测
if session("name")="" then
Response.Redirect("login.asp")
end if
  其意思是:如果 session("name")为空(也就是你不进行提交),就执行
Response.Redirect("login.asp") 语句,该语句就是返回login.asp.当你进行提交时,
session("name")就赋了值,兰色代码部分就是实现把你输入的名字和密码赋给session("name")和 session("pw"),session("name")不为空,就跳过 Response.Redirect("login.asp") 语句,直接显示内容。看到下面的“退出”了吧,如果你不按退出,而直接返回到login界面,再按“显示你的资料”,你仍然可以进入下一界面,为什么呢?因为Session("name")并没有消失,要使Session("name")消失,只有两个方法:
  1.等待超时,Session预设超时(timeout)值为20分钟,你可以使用session.Timeout=60来改变他的超时值,也就是说,如果你不改变超时值,session("name")将会在最后request请求后20分钟,将会为结束(消失),当你再按“显示你的资料”时,就无法进去了。
  2.第二种方法是使用Session的Abandon()方法,该方法就是通知服务器结束Session对象,因为服务器无法判断你的BROWSER什么时候结束Session对象,所以必须通过该方法通知服务器结束session对象。本文就是使用该方法在“退出”时结束该Session对象,也就是session("name")的值就不存在了。同样,当你再按“显示你的资料”时,也就无法进去了。
最后,当你成果提交后,我们就使用以下两句语句打印Session("name")和 Session("pw"):

Response.Write("你的姓名:" & session("name") & "<BR>")
Response.Write("你的密码:" & session("pw") & "<BR>")

Session对象可以让你在同一个进程中跨页面的使用任何变量。当然,你也可以使用Session对象来存储对象,如:
set session("obj")=server.createobject("progid")
  如果你要频繁地使用创建的对象,使用以上语句就可以提高效率了。
  但值得注意的是,以上的语句随时存在超时问题(当你试图使用一个不存在的对象时,你能想象到什么样的后果吗?),所以使用session对象的时候要小心谨慎呀。
  注意:Response.Redirect("login.asp")语句必须放在程序的最前面,否则,就会提示错误。

文章评级:★★★★★☆☆☆☆ 发表者:{佚名(127.0.0.*)} 3-29 [ 0]

 分享到:
 
 
相关文章:
我是:
本站注册用户
用户名: 密码:
非本站注册用户
我来评论:

评论字数在2000字以内。评论即可得2分,评论被采用后,根据评级可得到相应的积分和智慧果。
比如:评论评级为5,可得50分和5个智慧果。

 

 
 
 
 
 
 
































 

© 版权所有  2001-2024 知识网站
Copyright (C) 2001-2024 allzhishi.com All rights reserved
联系我们 — 电话:15973023232  微信:zhishizaixian  ICP备案号:湘ICP备08003211号-4