">下一页 < /a>
< % End If
今天的学习又到此结束了,在这里我要再次感谢所有关心我的文章的朋友们,你们的来信给了
我很大的鼓舞,不过请大家不要再称我为“老师”,其实我也和你们一样是在不断的学习和摸索中,
有问题我们可以一起探讨,我的文章中肯定还存在很多不足或漏洞,也希望大家发现后能及时向我
提出。由于近来 ASP 已经在国内的网站中广泛运用起来,所以应朋友们的要求,在国内 ASP 高手
飞鸟的热情帮助下,我决定写一些 ASP 应用实例作为现在这篇文章的姊妹篇,这样也就可以为大家
提供一些真正实用的东西了,敬请关注。
ASP基础教程:其它的ASP常用组件
当你用 ASP 编写服务器端应用程序时,必须依靠 ActiveX 组件来强大 Web 应用程序的功能,譬如:你需要连接数据库,对数据库进行在线cāo作等等。
上两篇中作者给大家介绍了 AD Rotator、 Database Access 等组件的使用方法,今天我们接着来看看其它的一些 ASP 常用组件。
一、 Browser Capabilities 组件众所周知,并不是所有浏览器都支持现今 Internet 技术的方方面面。有一些特xìng,某些浏览器支持而另一些浏览器却不支持,如 : ActiveX 控件、影像流、动态 HTML、 Flash 以及脚本程序等。使用 ASP 的 Browser Capabilities 组件,就能够设计“智能”的 Web 页,以适合浏览器xìng能的格式呈现内容。 Browser Capabilities 组件能够创建一个 BrowserType 对象,该对象提供带有客户端网络浏览器的功能说明的用户脚本。该组件之所以能识别客户浏览器的版本等信息,主要是因为当客户浏览器向服务器发送页面请求时,会自动发送一个 User Agent HTTP 标题,该标题是一个声明浏览器及其版本的 ASCII 字符串。 Browser Capabilities 组件将 User Agent 映shè到在文件 Browscap.ini 中所注明的浏览器 , 并通过 BrowserType 对象的属xìng来识别客户浏览器。若该对象在 browscap.ini 文件中找不到与该标题匹配的项,那么将使用默认的浏览器属xìng。若该对象既未找到匹配项且 browscap.ini 文件中也未指定默认的浏览器设置,则它将每个属xìng都设为字符串 "UNKNOWN"。在默认情况下, browscap.ini 文件被存放在 WINDOWS\\\\SYSTEM\\\\INERSRV( 如果是 95/98+PWS4) 或 NT\\\\SYSTEM32\\\\INERSRV( 如果是 NT) 目录中,你可以自己编辑这个文本文件,以添加自己的属xìng或者根据最新发布的浏览器版本的更新文件来修改该文件。请看以下 checkCookie() 过程,使用 BrowserCap 对象的 Cookie 属xìng来判断客户端浏览器是否支持 Cookie,并返回信息 :
< %
Sub checkCookie()
Set BrowserCap=Server.CreateObject("MSWC.BrowserType")
if BrowserCap.Cookie=True then
response.write "你的浏览器支持 Cookie!"
else
response.write "对不起,你所使用的浏览器不支持 Cookie!"
end if
end Sub
二、 File Access 组件如果你的网龄足够大的话,你一定见过“恐龙时代”的 CGI 留言簿,那是 WEB 留言簿最早的雏形。那时候在基于 Internet 的 WEB 应用程序中连接服务器后端数据库还十分困难,因此留言簿中的历史信息并不是同如今一样存储在后端数据库中。那么这些数据究竟是保存在哪里的呢?答案就是“文本文件”, CGI 程序可以将从客户端接收的信息写进一个存放在服务器端的文本文件中,该文件可以是 HTML 文件或 TXT 等文件,这样就使得程序员们可以不通过同数据库连接就可以将客户信息保存下来,但是写此类 CGI 程序甚是烦琐,下面列出了一个此类程序的最简单的样本 :
#!/usr/local/bin/perl
# Perl Location one your server
print "Content-type: text/plain\\\\n\\\\n";
if($ENV{\\\'REQUEST_METHOD\\\'}eq"POST"){
read(STDIN,$buffer,$ENV{\\\'CONTENT_LENGTH\\\'});
}elsif($ENV{\\\'REQUEST_METHOD\\\'}eq"GET"){
$buffer=$ENV{\\\'QUERY_STIRNG\\\'};
}
@pairs=split(/&/,$buffer);
foreach $pair(@pairs){
($ncom,$value)=split(/=/,$pair);
$value=~tr/+//;
$value=~s/%([a-f A-F 0-9][a-f A-f 0-9])/pack("C",hex($1))/eg;
$FORM{$ncom}=$value;}
$file_ncom="guestbook.txt";#File ncom
#具体内容
open(FILE,">>$file_ncom")||die "打开文件错误";
print FILE "记录时间":$date \\\\n\\\\n";
print FILE "姓名":$FORM{\\\'ncom\\\'}";
print FILE "单位":$FORM{\\\'company\\\'}\\\\n";
print FILE "电话":$FORM{\\\'phone\\\'}
print FILE "地址":$FORM{\\\'address\\\'}\\\\n";
print FILE "邮编":$FORM{\\\'zip\\\'}
print FILE "邮件地址":$FORM{\\\'email\\\'}\\\\n";
print FILE "返回意见":$FORM{\\\'content\\\'}
close (FILE)
大家可以感觉到,与 ASP 相比此类 CGI 程序的可读xìng和易cāo作xìng都较差。那么你一定想问 ASP 是否也能直接在服务器上写文件呢?答案当然是肯定的。但是聪明的朋友可能会想到,既然 ASP 同 WEB 数据库的连接如此便捷,我们又何需再将客户信息写在文本文件中呢, ASP 的这个功能岂不是画蛇添足?的确,对于那些我们常见的留言簿、 BBS 等 WEB 应用程序而言,无论是在程序的执行效率还是易用xìng上,我们都不可能再用写文本文件来替代数据库,但是在某些 WEB 应用领域里写文本文件既是一种规范也是一种相对数据库而较便捷的方法。如果你对 NT 较熟悉的话,你一定知道 NT 具有非常强大的安全机制,它可以将几乎所有的服务器cāo作和连接的信息自动保存在一个后缀名为 .log 的文件中,其实这种技术也完全可以被运用在 WEB 上,用来记录一些的客户登陆信息。下面的这段程序正是利用 ASP 读写文本文件的特xìng,在一个 WEB BBS 程序中创建自动记录每个用户发言记录的功能。
< %
Set fs = CreateObject("Scripting.FileSystemObject")
ForReading = 1
\\\'以只读模式打开文件。不能对此文件进行写cāo作。
ForAppending = 8
\\\'打开文件并在文件末尾进行写cāo作。
TristateUseDefault = -2
TristateTrue = -1
TristateFalse = 0
\\\'-----------写入系统log开始--------