小魔女 发表于 2015-1-16 22:09:59

ASP编程:ASP计数器计划详解-1

ASP最大的缺点在于网络的安全性和可靠性,企业将经营数据放在开放的平台上,最大的担忧就是如何保证这些数据不被其他人破坏。计数器|计划|详解  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代码及正文:
<%
  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("<fontcolor=red>")
  Response.Write(counter)
  把计数器的值传送到扫瞄器,以红(red)色显现给用户
  Response.Write("</font>")
  Response.Write("位会见者")
  Out.Close
  封闭文件
%>

  (二)与页面分别的计数器
  实践使用中,主页面与计数器程序是分别的,既只需在必要计数的页面中到场一句援用代码就能够完成页面计数。我们在网上常常请求利用的收费计数器就是如许,不外它们通常为CGI做的。这里,我们只需略微修正一下后面我们用ASP做的复杂计数器,然后在页面到场一句JavaScript语句援用它,就完成了与页面分别的计数器功效。如许,不管是作为主页面的计数器仍是为某个特定页面的计数,都很便利了。明显,你必要复杂变动一下寄存计数器值的文件名和计数器asp源代码文件名就能够完成多个计数器。
  与页面分别的计数器txtcounter.asp代码:
<%
  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
  %>
  在要计数的页面到场以下的代码:
  <p>
  您是第
  <fontcolor=red>
  <scriptlanguage="JavaScript"src="http://202.101.209.75/asptemp/counter/txtcounter.asp";>
  //援用时注重ASP计数器地点的服务器及目次路径。
  </script>
  </font>
  位来客
  </p>ASP由于使用了COM组件所以它会变的十分强大,但是这样的强大由于WindowsNT系统最初的设计问题而会引发大量的安全问题。只要在这样的组件或是操作中一不注意,哪么外部攻击就可以取得相当高的权限而导致网站瘫痪或者数据丢失;

老尸 发表于 2015-1-18 21:28:49

尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。

深爱那片海 发表于 2015-1-25 16:37:33

接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。

飘灵儿 发表于 2015-2-3 11:12:41

如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。

变相怪杰 发表于 2015-2-8 20:29:42

不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍

不帅 发表于 2015-2-26 06:12:35

代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。

若天明 发表于 2015-3-8 12:34:11

Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)

再现理想 发表于 2015-3-16 00:41:06

学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。

活着的死人 发表于 2015-3-22 18:11:48

封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
页: [1]
查看完整版本: ASP编程:ASP计数器计划详解-1