仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 669|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网页编程之ASP实例:计数器程序详解

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:06:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
ASP在国内异常流行,因为国内大多使用的是盗版的Windows和盗版的SQLServer,而ASP+COM+SQLServer实际上也是一种不错的搭配,其性能也不输于PHP+MYSQL,特别是Windows系统和SQLServer都有图形界面,比APACHE和MYSQL易于维护,因此对于不重视知识产权的国家来说也是一种不错的选择。ActiveServerPager(静态服务器主页,简称ASP),经由过程读写服务器的文件,分离script言语(VBscript或Jscript)和html码能够便利地完成页面计数器功效。现盛行的ASP课本和收集上的ASP教程都谈到过ASP计数器的计划成绩,可是都过于复杂,好比没有提到如何完成计数器剧本和主页面的分别和图像计数器的完成等。上面就作者为单元制造NTweb站点的履历,举实例循规蹈矩谈谈关于ASP计数器的计划,但愿能给ASP的初学者和对ASPWEB编程有乐趣的网友一些启示。
(一)复杂的计数器
ASP内含五个内置的"ActiveServerComponents"(ActiveX服务器组件),即DatabaseAccesscomponent(数据库会见组件)、FileAccesscomponent(文件会见组件)、AdRotatorcomponent(告白轮播器组件)、BrowerCapabilitiescomponent(扫瞄器信息组件)、ContentLinkingcomponent(内容链接组件)。我们上面要计划的计数器,就是经由过程个中的FileAccesscomponent(文件会见组件)来读写服务器文件来完成。算法思绪是:在服务器端用一个文本(ASCII)文件寄存计数数值,每当页面被会见时就从文件中读出数值,显现给用户,而且使数值加1,把增添后的数值写回到文件。
写进数据到一个服务器计数文件的ASP语句和申明以下:
CounFile=Server.MapPath("用来寄存计数器值的文件名")
Server服务器会见办法MapPath(path)是将寄存计数器值的文件地点的路径转换成物理路径
SETFileObject=Server.CreateObject("Scripting.FileSystemObject")
利用办法CreateObject界说工具FileSystemObject
SETOutStream=Server.CreateTextFile(FileObject,True,False)
利用工具FileSystemObject供应办法CreateTextFile发生文本文件,个中参   数"True"暗示掩盖本来的文件,"False"暗示文件为ASCII范例
OutStream.WriteLine"要写进的数据"
OutStream.WriteLine为往文件写进一行数据
从一个服务器文件读取数据的ASP语法以下:
CounFile=Server.MapPath("用来寄存计数器值的文件名")
SETFileObject=Server.CreateObject("Scripting.FileSystemObject")
SETInStream=Server.OpenTextFile(FileObject,1,false,false)
利用工具FileSystemObject供应办法OpenTextFile发生文本文?个中参数"True"暗示掩盖本来的文件,"False"暗示文件为ASCII范例"要读取的数据"=InStream.ReadLine,个中InStream.ReadLine为从文件中读取的一行数据。
上面是一个用ASP完成页面计数器功效的计数器例子(simplecounter.asp),我在代码中具体正文了语句。你能够把以下代码粘贴到你必要计数的页面代码中。固然,你的服务器必需撑持ASP,且你已在主页地点的目次下创立了一个内容为0的文本文件simplecounter.txt。
复杂的ASP计数器simplecounter.asp代码及正文:
以下为援用的内容:
$#@60;%
CountFile=Server.MapPath("simplecounter.txt")
文件aspconter.txt是用来贮存数字的文本文件,初始内容通常为0
SetFileObject=Server.CreateObject("Scripting.FileSystemObject")
SetOut=FileObject.OpenTextFile(CountFile,1,FALSE,FALSE)
counter=Out.ReadLine
读取计数器文件中的值
Out.Close
封闭文件
以下为援用的内容:
SETFileObject=Server.CreateObject("Scripting.FileSystemObject")
SetOut=FileObject.CreateTextFile(CountFile,TRUE,FALSE)
Application.lock
办法Application.lock克制其余用户变动计数器的值
counter=counter+1
计数器的值增添1
Out.WriteLine(counter)
把新的计数器值写进文件
Application.unlock
利用办法Application.unlock后,同意其余用户变动计数器的值
以下为援用的内容:
Response.Write("您是第")
Response.Write("$#@60;fontcolor=red$#@62;")
Response.Write(counter)
把计数器的值传送到扫瞄器,以红(red)色显现给用户
以下为援用的内容:
Response.Write("$#@60;/font$#@62;")
Response.Write("位会见者")
Out.Close
封闭文件
%$#@62;
(二)与页面分别的计数器
实践使用中,主页面与计数器程序是分别的,既只需在必要计数的页面中到场一句援用代码就能够完成页面计数。我们在网上常常请求利用的收费计数器就是如许,不外它们通常为CGI做的。这里,我们只需略微修正一下后面我们用ASP做的复杂计数器,然后在页面到场一句JavaScript语句援用它,就完成了与页面分别的计数器功效。如许,不管是作为主页面的计数器仍是为某个特定页面的计数,都很便利了。明显,你必要复杂变动一下寄存计数器值的文件名和计数器asp源代码文件名就能够完成多个计数器。
与页面分别的计数器txtcounter.asp代码:
以下为援用的内容:
$#@60;%
CountFile=Server.MapPath("txtcounter.txt")
SetFileObject=Server.CreateObject("Scripting.FileSystemObject")
SetOut=FileObject.OpenTextFile(CountFile,1,FALSE,FALSE)
counter=Out.ReadLine
Out.Close
SETFileObject=Server.CreateObject("Scripting.FileSystemObject")
SetOut=FileObject.CreateTextFile(CountFile,TRUE,FALSE)
Application.lock
counter=counter+1
Out.WriteLine(counter)
Application.unlock
Response.Write"document.write("&counter&")"
为了在页面准确显现计数器的值,挪用VBScript函数Document.write
Out.Close
%$#@62;
在要计数的页面到场以下的代码:
$#@60;p$#@62;
您是第
$#@60;fontcolor=red$#@62;
$#@60;scriptlanguage="JavaScript"src="http://202.101.209.75/asptemp/counter/txtcounter.asp"$#@62;
//援用时注重ASP计数器地点的服务器及目次路径。
$#@60;/script$#@62;
$#@60;/font$#@62;
位来客
$#@60;/p$#@62;
(三)与页面分别的图像计数器
人们的寻求是永无尽头的,大概你必要一个更有本性的图形数字计数器,而不是复杂的文本数字计数器。没成绩,如今我们就来看看用ASP是如何来完成图形计数器功效的。要完成图形计数器,关头点在于怎样完成把计数器文件中的数据值变化为对应的图像暗示。由于十进制数有0,1,2,3,4,5,6,7,8,9共十个分歧的数数字,我们必要有十个对应的图像,且图像的文件名字要与显现的数字对应起来,好比0对应的数字图像的文件名字就是0.gif,1对应的就是1.gif,...(图像本人能够用Photoshop等工具制造,大概从收集高低载)。这里我们要用到VBScript函数Len(string|varname)、Mid(string,start[,length])。由Len(counter)可失掉计数器值的位数,由Mid(counter,i,1)能够失掉计数器值的第i位上的数字,我们可使用这个值来挪用响应的数字图像。用For轮回语句,我们不可贵出计数器值各个位上的数字并转化成对应的数字图像,如许,我们就可以完成文本数值到图像数字的变化。上面就是一个用ASP编写的图像计数器实例,由于年夜部分代码后面都剖析过,以是代码中只正文了部分语句。
与页面分别的图像计数器imgcounter.asp代码:
$#@60;%@language="VBScript"%$#@62;
$#@60;%
dimimages(20)
界说一数组,用来寄存显现每位数字图像的语句
以下为援用的内容:
CountFile=Server.MapPath("imgcounter.txt")
SetFileObject=Server.CreateObject("Scripting.FileSystemObject")
SetOut=FileObject.OpenTextFile(CountFile,1,FALSE,FALSE)
counter=Out.ReadLine
Out.Close
SETFileObject=Server.CreateObject("Scripting.FileSystemObject")
SetOut=FileObject.CreateTextFile(CountFile,TRUE,FALSE)
Application.lock
counter=counter+1
Out.WriteLine(counter)
Application.unlock
countlen=len(counter)
失掉计数器值的位数
以下为援用的内容:
fori=1tocountlen
images(i)="$#@60;imgsrc="&"http://202.101.209.75/asptemp/counter/images/"&"/"&mid(counter,i,1)&".gif$#@62;$#@60;/img$#@62;"
由轮回语句失掉各个位上数值对应图像的显现代码(html),并把它存在数组中,详细利用时请注重图像的实践服务器及目次路径
response.write"document.write("&images(i)&");"
挪用函数Document.write输入显现数字图像的html代码
next
Out.Close
%$#@62;
在要计数的页面到场以下的代码:
$#@60;p$#@62;
您是第
$#@60;scriptlanguage="JavaScript"src="http://202.101.209.75/asptemp/counter/imgcounter.asp"$#@62;
//援用时注重ASP计数器地点的服务器及目次路径。
$#@60;/script$#@62;
位来客
$#@60;/p$#@62;
附注:以上asp计数器均在WindowsNTServer4.0(中文)/IIS3.0下测试经由过程。以下任何一种情况都可实行ASP:
1、WindowsNTServer4.0 / IIS3.0以上
2、WindowsNTWorkStation4.0/MicrosoftPeerWebService3.0以上
3、Windows95/98/MicrosoftPersonalWebServer1.0a以上

asp,你就只能等着微软给你解决,它不乐意你就只好悲催。而且asp跑在windows服务器上,windows服务器跟linux比起来简直弱爆了!
活着的死人 该用户已被删除
沙发
 楼主| 发表于 2015-1-18 05:59:50 | 只看该作者
ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。
谁可相欹 该用户已被删除
板凳
发表于 2015-1-21 12:26:50 | 只看该作者
交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。
灵魂腐蚀 该用户已被删除
地板
发表于 2015-1-30 18:15:24 | 只看该作者
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
小魔女 该用户已被删除
5#
发表于 2015-2-6 14:50:33 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
山那边是海 该用户已被删除
6#
发表于 2015-2-16 17:23:11 | 只看该作者
先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
金色的骷髅 该用户已被删除
7#
发表于 2015-3-5 07:42:43 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
小女巫 该用户已被删除
8#
发表于 2015-3-12 01:25:08 | 只看该作者
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
若天明 该用户已被删除
9#
发表于 2015-3-19 17:32:16 | 只看该作者
下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-19 07:27

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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