1.6 其它的ASP常用组件

2016-02-19 13:35 8 1 收藏

每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐1.6 其它的ASP常用组件,赶紧看过来吧!

【 tulaoshi.com - Web开发 】

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

     上两篇中作者给大家介绍了 AD Rotator、 Database Access 等组件的使用方法,今天我们接着来看看其它的一些 ASP 常用组件。

      一、 Browser Capabilities 组件众所周知,并不是所有浏览器都支持现今 Internet 技术的方方面面。有一些特性,某些浏览器支持而另一些浏览器却不支持,如 : ActiveX 控件、影像流、动态 HTML、 Flash 以及脚本程序等。使用 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
%

       二、 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){
($name,$value)=split(/=/,$pair);
$value=~tr/+//;
$value=~s/%([a-f A-F 0-9][a-f A-f 0-9])/pack("C",hex({GetProperty(Content)}))/eg;
$FORM{$name}=$value;}
$file_name="guestbook.txt";#File name
#具体内容
open(FILE,"$file_name")||die "打开文件错误";
print FILE "记录时间":$date \n\n";
print FILE "姓名":$FORM{'name'}";
print FILE "单位":$FORM{'company'}\n";
print FILE "电话":$FORM{'phone'}
print FILE "地址":$FORM{'address'}\n";
print FILE "邮编":$FORM{'zip'}
print FI

则该值为 True;如果以 ASCII 文件格式创建文件,则该值为 False。如果省略此部分,则假定创建 ASCII 文件。

      在前面的程序中我们用 set ss=fs.CreateTextFile(syslog,ForWriting,false) 来在 log 文件不存在的情况下创建文件并对文件进行写操作,这里的ForWriting表示写文件。

       与 CreateTextFile 方法不同, OpenTextFile 方法用来获得你指定的文件名并打开该文件,利用它所带的参数我们可以对文件进行各种不同的操作,和 CreateTextFile 方法一样, OpenTextFile 方法返回一个 TextStream 对象,使得你可以在文件被打开后操作该文件。 OpenTextFile 方法的语法如下 :

   Set objTextStream=FileSystemObject.OpenTextFile(Filename,[IOmode],[Create],[Format])

参数说明如下 :

1、 Filename 必须的变量,同 CreateTextFile 的 filename

2、 IOmode 可选的常量,取值为下列两个常数之一 ForReading 或 ForAppending,如果 mode 为 1,文件以只读方式打开,如果为 8,则文件以追加的方式打开。

3、 Create 可选的布尔量,指定如果你想打开的文件不存在是做什么操作,如果其值为 True,当文件不存在时就自动创建一个空的文件。如果为 False,就会在文件没找到时产生一个出错信息,其默认值是 False,建议将其设为 True,以避免在打开文件时检查是否出错。

4、 Format 可选值,可以选择三种 Tristate 值分别指定文件的格式, -2、 -1、和 0 分别对应于系统缺省、 unicode 和 ASCII。

      在打开或创建了文本文件后,就得到一个 TextStream 对象,该对象有一个光标,就好象是在字处理程序中的光标一样,指出接下来要敲入的字符将出现的位置,它同时也指出你要读取的字符的位置。不能通过 CreatObject 来创建一个 TextStream 对象,得到 TextStream 对象的唯一方法是如前所述的用 FileSystemObject 对象打开一个存在的文本文件或者创建一个新的文件。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

      下面列出了 TextStream 对象的属性和方法

   TextStream.AtEndOfLine 只读布尔量,当光标在当前行的末尾时,其值为 true,反之则为 false

   TextStream.AtEndOfStream 只读布尔量,如果光标在流的末尾时,其值为 true,否则为 false

   TextStream.Column 只读的整数,统计从行首到当前光标位置之间的字符数

   TextStream.Line 只读的整数,指明光标所在行在整个文件中的行号

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

   TextStream.close() 关闭流以及对应的文本文件

   TextStream.read(Num) 指定从光标的当前位置开始从文本文件中读取一定数目的字符

   TextStream.readall() 将整个流读入一个字符串中

   TextStream.readline() 将一整行的字符读入一个字符串中

   TextStream.write(text) 将一个字符串写入流中

   TextStream.writeline() 将一个文本串写入流中

   TextStream.skip(Num) 在流中,将光标的位置移动一定数目的字符串长度

   TextStream.skiplines() 在流中,将光标移动一定数目的行数

   TextStream.writeblank 将一定数目的空行写入流中

   lines(num)

     相信大家现在已经可以感觉到 ASP File Access 组件的强大功能了,其实它远不仅仅可以写一些 log 文件,通过它你甚至可以毫不费力的远程自动更新你的网站,你只要把固定格式的文本文件传送到远端的服务器上,通过 File Access 组件读取文件,并自动生成全新 HTML 页面即可,而不必再辛辛苦苦地一个一个地更新 HTML 文件。如果你有兴趣,你完全可以用 ASP 的 File Access 组件写一个自己的全自动 HTML 生成器,充分享受维护网站的超前轻松感。

来源:http://www.tulaoshi.com/n/20160219/1604705.html

延伸阅读
标签: Web开发
打开VB,新建AX DLL,工程名为Str,类名count,输入如下代码: 代码如下: Public Function add(ByVal a As Double, ByVal b As Double, ByVal c As Integer, ByVal d As Integer) As Double d = CInt(d) If c = ...
标签: ASP
  本文的内容是使用ASP的ActiveX Server Components(组件)。 一、 Browser Capabilities Component(浏览器能力组件): 我们知道,不同的浏览器也许支持不同的功能,如有些浏览器支持框架,有些不支持。利用这个组件,可以检查浏览器的能力,使你的网页争对不同的浏览器显示不同的页面(如对不支持Frame的浏览器显示不...
标签: ASP
  <% sub Jmail(email) Dim JMail,SendMail Set JMail=Server.CreateObject("JMail.SMTPMail") JMail.Logging=True JMail.Charset="gb2312" JMail.ContentType = "text/html" JMail.ServerAddress=SMTPServer JMail.Sender=SystemEmail JMail.Subject=topic JMail.Body=mailbody JMail.AddRecipient email JMail.Priority...
标签: ASP
  动手写个小组件(组件入门) 这篇文章主要是为想将自己的ASP水平提高的人写的! 把ASP代码变成组件,开发者不仅是加快了ASP的速度,而且也能保护自己的代码.这篇文章写出来,也是为了给想开发组件网友上一堂入门课! 下面,我们会来编写一个非常简单的组件,重点是知道怎样开发DLL组件,而不是其复杂的代码!这些都要靠你们自己以后的努...
标签: Web开发
代码如下: function HTMLEncode(fString) if not isnull(fString) then fString = replace(fString, "", "") fString = replace(fString, "", "") fString = Replace(fString, CHR(32), " ") fString = Replace(fString, CHR(9),...