专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Asp教程 » asp无组件上传:其它的ASP常用组件 »正文

asp无组件上传:其它的ASP常用组件

来源: 发布时间:星期四, 2009年2月12日 浏览:269次 评论:0


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



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



   、 Browser Capabilities
组件众所周知并不是所有浏览器都支持现今 Internet
技术方方面面些特性某些浏览器支持而另些浏览器却不支持
: ActiveX Control控件、影像流、动态 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 文件被存放在
WINDOWSSYSTEMINERSRV( 如果是 95/98+PWS4) 或 NTSYSTEM32INERSRV( 如果是 NT)
目录中你可以自己编辑这个文本文件以添加自己属性或者根据最新发布浏览器版本更新文件来修改该文件请看以下
checkCookie 过程使用 BrowserCap 对象 Cookie
属性来判断客户端浏览器是否支持 Cookie并返回信息 :



< %

Sub checkCookie

Set BrowserCap=Server.CreateObject(\"MSWC.BrowserType\")

BrowserCap.Cookie=True then

response.write \"你浏览器支持 Cookie!\"



response.write \"对不起你所使用浏览器不支持 Cookie!\"

end

end Sub

%>




   有关 Browser Capabilities
组件详细信息请参见动态网站WebSite设计十 8般武艺 --ASP 篇 (2)
   2、 File Access
组件如果你网龄足够大定见过“恐龙时代” CGI
留言簿那是 WEB 留言簿最早雏形那时候在基于 Internet WEB
应用中连接服务器后端数据库还十分困难因此留言簿中历史信息并不是同如今样存储在后端数据库中那么这些数据究竟是保存在哪里呢?答案就是“文本文件”
CGI
可以将从客户端接收信息写进个存放在服务器端文本文件中该文件可以是
HTML 文件或 TXT
等文件这样就使得员们可以不通过同数据库连接就可以将客户信息保存下来但是写此类
CGI 甚是烦琐下面列出了个此类最简单样本 :



#!/usr/local/bin/perl

# Perl Location _disibledevent=>
}

@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($1))/eg;

$FORM{$name}=$value;}

$file_name=\"guestbook.txt\";#File name

#具体内容

open(FILE,\">>$file_name\")||die \"打开文件\";

pr FILE \"记录时间\":$date nn\";

pr FILE \"姓名\":$FORM{\'name\'}\";

pr FILE \"单位\":$FORM{\'company\'}n\";

pr FILE \"电话\":$FORM{\'phone\'}

pr FILE \"地址\":$FORM{\'address\'}n\";

pr FILE \"邮编\":$FORM{\'zip\'}

pr FILE \"邮件地址\":$FORM{\'email\'}n\";

pr FILE \"返回意见\":$FORM{\'content\'}



close (FILE)



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



< %

Set fs = CreateObject(\"Scripting.FileObject\")

ForReading = 1

\'以只读模式打开文件不能对此文件进行写操作

ForAppending = 8

\'打开文件并在文件末尾进行写操作

TristateUseDefault = -2

TristateTrue = -1

TristateFalse = 0



\'-----------写入系统log开始--------

servermap=server.MapPath(\"bbslog\")

\'映射系统物理路径

temp=servermap&\"\"&year(date)&month(date)&\"\"

\'获取系统物理路径和时间并以此作为log文件存放物理路径

Not fs.FolderExists(temp) then

fs.CreateFolder(temp)

end

\'检测是否存在文件夹否则自动创建

dim syslog

dim tempname

tempname=date

syslog=temp&tempname&\".log\"

\'文件名为e:bbslog月份月日.log

li=user&\"&\"&Now&\"&\"&Request.ServerVariables(\"REMOTE_ADDR\")&\"&\"&tempfile&\"&\"&letter&\"&\"&title

\'log文件记录格式为:用户名&发信时间&用户ip&文件路径&信区&信件标题

fs.FileExists(syslog) then

Set ss = fs.OpenTextFile(syslog,ForAppending,true)



ss = fs.CreateTextFile(syslog,ForWriting,false)

end

\'检测log文件是否存在如果存在则追加文件内容反的则直接写文件

ss.WriteLine(li)

ss.Close

\'-----------log文件写入结束---------

%>



  如果你没有完全看懂上面这段就请听作者慢慢道来
File Access
组件提供了可用来访问计算机文件系统思路方法和属性我们可以使用
File Access 组件创建 FileObject 对象以上句就是利用
File Access 组件创建了个名为 fs
对象例子在对象被创建后你可以通过它访问文件该对象没有属性它唯意义就是创建、打开或读写文本文件
FileObject
对象有两种最常用思路方法种用来创建文件种是用来打开并读写文本文件
CreateTextFile 思路方法获得你指定文件名并创建该文件它返回
TextStream 对象你可以用该对象在文件被创建后操作该文件
CreateTextFile 思路方法语法如下 :
  Set objTextStream=FileObject.CreateTextFile(Filename,[Overwrite],[Unicode])

  下面作者给大家解释下 CreateTextFile 思路方法参数
  1、 Filename
包含文件路径名可以是文件全路径名包括驱动器名和目录名或者也可以只是文件名如果只包含文件名文件将被创建在站点根目录下

  2、 Overwrite 布尔量设置成 False 时可以防止 FileObject
对象在创建个新文件时删除已存在文件该参数是可选如果没有赋值系统默认为
true具有相同文件名已有文件会被删掉
  3、Unicode 可选参数布尔值指明是否以 Unicode 或ASCII
文件格式创建文件如果以 Unicode 文件格式创建文件则该值为 True;如果以
ASCII 文件格式创建文件则该值为 False如果省略此部分则假定创建
ASCII 文件





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



  和 CreateTextFile 思路方法区别 OpenTextFile
思路方法用来获得你指定文件名并打开该文件利用它所带参数我们可以对文件进行各种区别操作
CreateTextFile 思路方法 OpenTextFile 思路方法返回个 TextStream
对象使得你可以在文件被打开后操作该文件 OpenTextFile
思路方法语法如下 :
   Set
objTextStream=FileObject.OpenTextFile(Filename,[Iomode],[Create],[Format])
  参数介绍说明如下 :
  1、 Filename 必须变量同 CreateTextFile filename
  2、 Iomode 可选常量取值为下列两个常数的 ForReading 或
ForAppending如果 mode 为 1文件以只读方式打开如果为 8则文件以追加方式打开

  3、Create
可选布尔量指定如果你想打开文件不存在是做什么操作如果其值为
True当文件不存在时就自动创建个空文件如果为 False就会在文件没找到时产生个出错信息其默认值是
False建议将其设为 True以避免在打开文件时检查是否出错
   4、 Format 可选值可以选择 3种 Tristate
值分别指定文件格式 -2、 -1、和 0 分别对应于系统缺省、 unicode
和 ASCII
  在打开或创建了文本文件后就得到个 TextStream
对象该对象有个光标就好象是在字处理光标指出接下来要敲入将出现位置它同时也指出你要读取位置不能通过
CreatObject 来创建个 TextStream 对象得到 TextStream
对象思路方法是如前所述用 FileObject
对象打开个存在文本文件或者创建个新文件
   下面列出了 TextStream 对象属性和思路方法
   TextStream.AtEndOfLine
只读布尔量当光标在当前行末尾时其值为 true反的则为 false
   TextStream.AtEndOfStream
只读布尔量如果光标在流末尾时其值为 true否则为 false
   TextStream.Column
只读整数统计从行首到当前光标位置的间
   TextStream.Line
只读整数指明光标所在行在整个文件中行号
   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
文件通过它你甚至可以毫不费力远程自动更新你网站WebSite你只要把固定格式文本文件传送到远端服务器上通过
File Access 组件读取文件并自动生成全新 HTML
页面即可而不必再辛辛苦苦地个地更新 HTML
文件如果你有兴趣你完全可以用 ASP File Access
组件写个自己全自动 HTML
生成器充分享受维护网站WebSite超前轻松感
2

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: