< % Sub checkCookie() Set BrowserCap=Server.CreateObject("MSWC.BrowserType") if BrowserCap.Cookie=True then response.write "你的浏览器支持 Cookie!" else response.write "对不起,你所使用的浏览器不支持 Cookie!" end if end Sub %>
大家可以感觉到,与 ASP 相比此类 CGI 程序的可读性和易操作性都较差。那么你一定想问 ASP 是否也能直接在服务器上写文件呢?答案当然是肯定的。但是聪明的朋友可能会想到,既然 ASP 同 WEB 数据库的连接如此便捷,我们又何需再将客户信息写在文本文件中呢, ASP 的这个功能岂不是画蛇添足?的确,对于那些我们常见的留言簿、 BBS 等 WEB 应用程序而言,无论是在程序的执行效率还是易用性上,我们都不可能再用写文本文件来替代数据库,但是在某些 WEB 应用领域里写文本文件既是一种规范也是一种相对数据库而较便捷的方法。如果你对 NT 较熟悉的话,你一定知道 NT 具有非常强大的安全机制,它可以将几乎所有的服务器操作和连接的信息自动保存在一个后缀名为 .log 的文件中,其实这种技术也完全可以被运用在 WEB 上,用来记录一些的客户登陆信息。下面的这段程序正是利用 ASP 读写文本文件的特性,在一个 WEB BBS 程序中创建自动记录每个用户发言记录的功能。
'-----------写入系统log开始-------- servermap=server.MapPath("\bbs\log\") '映射系统物理路径 temp=servermap&"\"&year(date)&month(date)&"\" '获取系统物理路径和时间,并以此作为log文件存放的物理路径 if Not fs.FolderExists(temp) then fs.CreateFolder(temp) end if '检测是否存在文件夹,否则自动创建 dim syslog dim tempname tempname=date syslog=temp&tempname&".log" '文件名为e:\bbs\log\月份\月日.log li=user&"&"&Now&"&"&Request.ServerVariables("REMOTE_ADDR")&"&"&tempfile&"&"&letter&"&"&title 'log文件记录的格式为:用户名&发信时间&用户ip&文件路径&信区&信件标题 if fs.FileExists(syslog) then Set ss = fs.OpenTextFile(syslog,ForAppending,true) else set ss = fs.CreateTextFile(syslog,ForWriting,false) end if '检测log文件是否存在,如果存在则追加文件内容,反之则直接写文件 ss.WriteLine(li) ss.Close '-----------log文件写入结束--------- %> 如果你没有完全看懂上面的这段程序,就请听作者慢慢道来。 File Access 组件提供了可用来访问计算机文件系统的方法和属性。我们可以使用 File Access 组件创建 FileSystemObject 对象,以上程序的第一句就是利用 File Access 组件创建了一个名为 fs 的对象实例。在对象被创建后,你可以通过它访问文件,该对象没有属性,它唯一的意义就是创建、打开或读写文本文件。 FileSystemObject 对象有两种最常用的方法,一种用来创建文件,另一种是用来打开并读写文本文件。 CreateTextFile 方法获得你指定的文件名并创建该文件,它返回一个 TextStream 对象,你可以用该对象在文件被创建后操作该文件, CreateTextFile 方法的语法如下 : Set objTextStream=FileSystemObject.CreateTextFile(Filename,[Overwrite],[Unicode])