选择显示字体大小

asp教程:第十六篇 其它的asp常用组件

  当你用 asp 编写服务器端应用程序时,必须依靠 activex 组件来强大 web 应用程序的功能,譬如:你需要连接数据库,对数据库进行在线操作等等。

  上两篇中作者给大家介绍了 ad rotator、 database access 等组件的使用方法,今天我们接着来看看其它的一些 asp 常用组件。

   一、 browser capabilities 组件众所周知,并不是所有浏览器都支持现今 inte.net 技术的方方面面。有一些特性,某些浏览器支持而另一些浏览器却不支持,如 : activex 控件、影像流、动态 htmlflash 以及脚本程序等。使用 asp 的 browser capabilities 组件,就能够设计“智能”的 web 页,以适合浏览器性能的格式呈现内容。 browser capabilities 组件能够创建一个 browsertype 对象,该对象提供带有客户端网络浏览器的功能说明的用户脚本。该组件之所以能识别客户浏览器的版本等信息,主要是因为当客户浏览器向服务器发送页面请求时,会自动发送一个 user agent http 标题,该标题是一个声明浏览器及其版本的 ascii 字符串。 browser capabilities 组件将 user agent 映射到在文件 browscap.ini 中所注明的浏览器 , 并通过 browsertype 对象的属性来识别客户浏览器。若该对象在 browscap.ini 文件中找不到与该标题匹配的项,那么将使用默认的浏览器属性。若该对象既未找到匹配项且 browscap.ini 文件中也未指定默认的浏览器设置,则它将每个属性都设为字符串 "unknown"。在默认情况下, browscap.ini 文件被存放在 windows\system\inersrv( 如果是 95/98+pws4) 或 nt\system32\inersrv( 如果是 nt) 目录中,你可以自己编辑这个文本文件,以添加自己的属性或者根据最新发布的浏览器版本的更新文件来修改该文件。请看以下 checkcookie() 过程,使用 browsercap 对象的 cookie 属性来判断客户端浏览器是否支持 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
%>


   有关 browser capabilities 组件的详细信息,请参见动态网站设计十八般武艺 --asp 篇 (2)。

   二、 file access 组件如果你的网龄足够大的话,你一定见过“恐龙时代”的 cgi 留言簿,那是 web 留言簿最早的雏形。那时候在基于 inte.netweb 应用程序中连接服务器后端数据库还十分困难,因此留言簿中的历史信息并不是同如今一样存储在后端数据库中。那么这些数据究竟是保存在哪里的呢?答案就是“文本文件”, cgi 程序可以将从客户端接收的信息写进一个存放在服务器端的文本文件中,该文件可以是 html 文件或 txt 等文件,这样就使得程序员们可以不通过同数据库连接就可以将客户信息保存下来,但是写此类 cgi 程序甚是烦琐,下面列出了一个此类程序的最简单的样本 :

#!/usr/local/bin/perl
# perl location one your server
print "content-type: text/plain\n\n";
if(&#36;env{'request_method'}eq"post"){
read(stdin,&#36;buffer,&#36;env{'content_length'});
}elsif(&#36;env{'request_method'}eq"get"){
&#36;buffer=&#36;env{'query_stirng'};
}
@pairs=split(/&/,&#36;buffer);
foreach &#36;pair(@pairs){
(&#36;name,&#36;value)=split(/=/,&#36;pair);
&#36;value=~tr/+//;
&#36;value=~s/%([a-f a-f 0-9][a-f a-f 0-9])/pack("c",hex(&#36;1))/eg;
&#36;form{&#36;name}=&#36;value;}
&#36;file_name="guestbook.txt";#file name
#具体内容
open(file,">>&#36;file_name")die "打开文件错误";
print file "记录时间":&#36;date \n\n";
print file "姓名":&#36;form{'name'}";
print file "单位":&#36;form{'company'}\n";
print file "电话":&#36;form{'phone'}
print file "地址":&#36;form{'address'}\n";
print file "邮编":&#36;form{'zip'}
print file "邮件地址":&#36;form{'email'}\n";
print file "返回意见":&#36;form{'content'}
close (file)

  大家可以感觉到,与 asp 相比此类 cgi 程序的可读性和易操作性都较差。那么你一定想问 asp 是否也能直接在服务器上写文件呢?答案当然是肯定的。但是聪明的朋友可能会想到,既然 aspweb 数据库的连接如此便捷,我们又何需再将客户信息写在文本文件中呢, asp 的这个功能岂不是画蛇添足?的确,对于那些我们常见的留言簿、 bbs 等 web 应用程序而言,无论是在程序的执行效率还是易用性上,我们都不可能再用写文本文件来替代数据库,但是在某些 web 应用领域里写文本文件既是一种规范也是一种相对数据库而较便捷的方法。如果你对 nt 较熟悉的话,你一定知道 nt 具有非常强大的安全机制,它可以将几乎所有的服务器操作和连接的信息自动保存在一个后缀名为 .log 的文件中,其实这种技术也完全可以被运用在 web 上,用来记录一些的客户登陆信息。下面的这段程序正是利用 asp 读写文本文件的特性,在一个 web bbs 程序中创建自动记录每个用户发言记录的功能。

< %
set fs = createobject("scripting.filesystemobject")
forreading = 1
'以只读模式打开文件。不能对此文件进行写操作。
forappending = 8
'打开文件并在文件末尾进行写操作。
tristateusedefault = -2
tristatetrue = -1
tristatefalse = 0

'-----------写入系统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文件写入结束---------
%>


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons