分享
 
 
 

用ASP技术得到主页被访问次数的三种方法

王朝asp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

华中理工大学自动控制工程系 周茜 田忠和

ASP 是Microsoft Active Server Pages 的缩写,即动态服务器主页。

它是服务器端脚本编写环境,在Web服务器上解释脚本,可以组合HTML页、脚本命令和ActiveX组件来创建动态、交互式、高效率的 Web 页和基于 Web 的功能强大的服务器应用程序。ASP 可以在Microsoft 的任何 Web服务器上发布各种动态数据,而且ASP应用程序很容易开发和修改。

ASP技术之所以容易,很重要的原因是 ASP 技术充分利用各种功能强大的内嵌对象和ActiveX组件来执行任务。ActiveX组件是包含在动态链接库(.dll)或可执行文件(.exe)中的可执行某项或一组任务的代码。因为组件可以执行公用任务,所以不必自己去创建执行这些任务的代码,可以直接利用组件作为脚本和基于 Web 应用程序的基本构造块。只要知道如何访问和控制组件所提供的对象,即使是编写脚本的新手,也可以在不了解组件运作方式的情况下编写脚本。

要使用组件提供的对象,首先要创建对象的实例并将这个新的实例分配变量名。使用 ASP 的 Server.CreateObject 方法可以创建对象的实例。然后,使用脚本语言的变量分配指令为对象实例命名。创建对象实例时,必须提供实例的注册名称(PROGID)。

对于一个 Web 站点,我们通常需要记录其被访问的次数。本文针对这个问题,提出三种方法供参考。

<一>利用Page Counter 组件

Page Counter 组件可以创建 PageCounter 对象,以记录和显示 Web 页被打开的次数。每隔一定的时间,此对象将访问次数写入文本文件以便数据不会在服务器关机时丢失。Page Counter 组件使用一个内部 Central Management 对象来记录应用程序中的每一页被打开的次数。当使用 Server.CreateObject 方法在一页上创建 PageCounter 对象的实例时,此对象从 Central Management 对象中获取指定Web页的当前访问次数后,就可以使用此对象已有的方法来操作了。

语法:

参数:oVar 指定通过调用 Server.CreateObject 创建的 PageCounter 对象

的名称。

方法

Hits 显示指定的 URL 被打开的次数。

PageHit 增加访问次数。

Reset 将指定的页的访问次数设置为 0。

注意:PageCounter 对象不是内嵌对象,所以必须进行注册。当此对象被编译或注册时,页计数器向注册表添加 MSWC.PageCounter 键。该键被添加到 HKEY_CLASSES_ROOT 下且包括下列命名值。

1.File_Location 字符串,

指定记录访问次数的文件的路径名和文件名。默认的文件名为 hitcnt.cnt。此文件存放在 Windows 目录下。

2.Save_Count DWORD 型,

指明在访问次数被存储到 Hit Count Data 文件前的访问次数。注意,这是访问的总数而不是每一页的访问次数。默认值为 25。

下例使用 PageCounter 对象跟踪访问者的个数并发送特定的消息。

您是第位访问者。

<二>利用 File Access 组件

因为 Page Counter 组件并没有和IIS 一起安装,必须另行安装方可使用。若没有安装 Page Counter 组件,则可以采用File Access 组件。 File Access 组件可用来访问计算机文件系统的方法和属性。用户可以使用 File Access 组件创建 FileSystemObject 对象,该对象提供用于访问文件系统的方法、属性和集合。

以下的实例说明了如何记录被访问的次数。

欢迎您!

您是第位访问者!

利用 File Access 组件实现记录被访问次数,要注意多用户的并发操作问题。如果多个用户同时进行链接,则可能出现错误。要防止这一现象,可以采用设置标志的方法,一次只有一个用户对文件 visitors.txt 进行读写操作.以上实例中的(1)、(3)段是完成此保护功能。这时用到了Application 的内嵌对象,下一节将专门讨论这一技术。

<三>利用 Application 内嵌对象

内嵌对象的特殊性在于,它们在 ASP 页内生成且在脚本中使用它们前无须创建。可以使用 Application 对象在给定的应用程序的所有用户之间共享信息。基于 ASP 的应用程序同所有的 .asp 文件一样在一个虚拟目录及其子目录中定义。我们可以将值存储在 Application 集合中。存储在 Application 集合中的信息在整个应用程序中有效且具有应用程序作用域。这时要注意因为多个用户可以共享 Application 对象,所以必须要有 Lock 和 Unlock 方法以确保多个用户无法同时改变某一属性。

下列示例使用应用程序变量 NumVisitors 存储某特定页被访问的次数。调用 Lock 方法是为了保证只有当前客户才能访问和更改 NumVisitors。调用 Unlock 方法之后,即可允许其他用户访问 Application 对象。

您是第 位访问者!

从上面的实例中可以看出,采用 Application 内嵌对象来记录访问次数是非常方便的。但是一旦服务器关机或重启动,则 Application("NumVisitors") 的值将恢复为0,这种情况也是不允许的。这时我们可以对其进行保护。仿照Page Counter 组件创建的 PageCounter 对象的功能,定期将Application("NumVisitors") 的值存入到一个指定的文件中。例如,每次对 Application("NumVisitors") 进行操作后,都利用 File Access 组件创建的对象保存新的值,具体方法可参照<二>的有关内容。

以上三种方法都可以可靠地记录主页被访问的次数,繁易程度也是一目了然的。首选方法当然是利用Page Counter 组件,其次是利用Application 内嵌对象,辅以 File Access 组件。单独地利用 Application 内嵌对象或File Access 组件,都存在不可避免的缺点。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有