设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3952|回复: 6
打印 上一主题 下一主题

ASP六大对象介绍

[复制链接]
跳转到指定楼层
1#
发表于 2004-8-19 00:49:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ASP六大对象介绍



Application对象



  Application对象是个应用程序级的对象,用来在所有用户间共享信息,并可以在Web应用程序运行期间持久地保持数据。

Application的属性:

  方法如下:

  Application对象没有内置的属性,但是我们可以自行创建其属性。

  <% Application("属性名")=值 %>

  其实大部分Application变量都 存放在Contents集合中,当你创建一个新的Application变量时,其实就是在Contents集合中添加了一项。下面两个脚本是等效的:

  <% Application("greeting")="hello!" %> 或 <% Application.contents("greeting")="hello!"由于Application变量存在集合里,所以如果想要全部显示,其方法我们已经多次使用,例如For Each循环。  

<%

For Each item IN Application.Contents

   Response.write("<br>"&item&Application.Contents(item))

next

%>

Application的方法:

  Application的方法只有两个方法:一个是Lock,另一个是Unlock。其中Lock方法用于保证同一时刻只能一个用户对Application操作。Unlock则用于取消Lock方法的限制。如:

<%

Application.Lock

Application("visitor_num")=Application("visitor_num")+1

Application.Unlock

%>

Application的事件:

1、Application_OnStart()

  当事件应用程序启动时触发。

2、Application_OnEnd()

  此事件应用程序结束时触发。

  这两个事件过程都是必须定义在Global.asp文件中,一般把连接数据的函数定义在这两个事件,然后放在Global.asp中。例如:

Sub Application_OnStart

    Application("tt18_ConnectionString") = "driver={SQL      

                     Server};server=jeff;uid=sa;pwd=;database=test"

End Sub

  一个数组能够被定义成Application对象,不过这个数组只能作为一个对象保存,而不能用Application(0)取出其值。可以定义一个临时数组实现这种功能。如:

<%

dim Array()

Array=Application("array")

for i = 0 to ubound(array)

  Response.write Array(i)

next i

%>

  同样要修改这个Application对象也可以定义一个临时数组,把Application对象赋给数组,然后修改这个数组的元素,最后把数组赋回Application对象。如:

<%

dim Array()

Array=Application("array")

Array(0)="jeff"

Array(1)="zhu"

Application.lock

Application("array")=Array

Application.unlock

%>

ObjectContext对象



该对象用于控制Active Server Pages的事务处理。事务处理由Microsoft Transaction Server (MTS)管理。<FONT face="Times New Rom
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2004-8-19 00:49:00 | 只看该作者
<DIV medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 0cm; PADDING-BOTTOM: 1pt; BORDER-LEFT: medium none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-bottom-alt: solid windowtext .75pt">Response对象



  Response对象用于向客户端浏览器发送数据,用户可以使用该对象将服务器的数据以HTML的格式发送到用户端的浏览器,它与Request组成了一对接收、发送数据的对象,这也是实现动态的基础。下面介绍它常用的属性和方法。



1、Buffer属性  

  该属性用于指定页面输出时是否要用到缓冲区,默认值为False。当它为True时,直到整个Active Server Page执行结束后才会将结果输出到浏览器上。如:<BR line-break"><BR line-break"> <%Response.Buffer=True%>

<html>

<Head>

<title>Buffer示例</title>

</head>

<body>

<%

  for i=1 to 500

    response.write(i & "<br>")

  next

%>

</body>

</html>

  这页执行时,整个主页的所有内容会同时显示在浏览器上,这个主页会存在缓存区中直到脚本执行结束。



2、Expires属性

  该属性用于设置浏览器缓存页面的时间长度(单位为分),必须在服务器端刷新。通过如下设置:

<%Response.Expires=0%>

  通过在ASP文件中加入这一行代码,要求每次请求是刷新页面,因为Response一收到页面就会过期。



3、Write方法

  该方法把数据发送到客户端浏览器,如:  

<%Response.write "Hello,world!"%>



4、Redirect方法

  该方法使浏览器可以重新定位到另一个URL上,这样,当客户发出Web请求时,客户端的浏览器类型已经确定,客户被重新定位到相应的页面。如:

<html>

<head>

<title>Redirect示例</title>

</head>

<body>

<form aciton="formjump.asp" method="post">

  <select name="wheretogo">

    <option selected value="fun">Fun</option>

    <option value="news">News</option>

    <option value="sample">Sample</option>

  </select>

<input type=submit name="jump" value="Jump">

</form>

</body>

</html>

  以上是提交的表单,下面是处理表单的文件formjump.asp:

<%response.buff=true%>

<html>

<head>

<title>Redirect示例</title>

</head>

<body>

<%

thisurl="<a href="http://www.tinyu.com/%22" target="_blank" ><FONT face="Times New Roman" color=#0
3#
 楼主| 发表于 2004-8-19 00:49:00 | 只看该作者
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类型的数组只能将整个数组作为一个对象,用户不能直接改变<FONT face="Times New Roman">Session</F
4#
发表于 2005-8-13 15:50:00 | 只看该作者
5#
发表于 2005-11-1 01:53:00 | 只看该作者
比书本上好多了.....但是,书本上,怎么说是...5个对象...
6#
发表于 2005-11-8 03:24:00 | 只看该作者
长得很...不过挺好的~!
7#
发表于 2010-2-18 20:30:23 | 只看该作者
谢谢分享,收藏了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-3 15:25 , Processed in 0.081375 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表