|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
国内有些大的CRM厂商的ASP就写得不错.无论是概念还是它里面用JAVASCRIPT的能力.并不是说现在的程序员用了ASP.NET来写程序就可以说自己高档了墨客
当你用ASP编写服务器端使用程序时,必需依托ActiveX
组件来壮大Web
使用程序的功效,比如:你必要毗连数据库,对数据库举行在线操纵等等。
上两篇中作者给人人先容了ADRotator、DatabaseAccess
等组件的利用办法,明天我们接着来看看别的的一些ASP经常使用组件。
1、BrowserCapabilities
组件尽人皆知,并非一切扫瞄器都撑持当今Internet
手艺的各个方面。有一些特征,某些扫瞄器撑持而另外一些扫瞄器却不撑持,如
:ActiveX控件、影象流、静态HTML、Flash和剧本程序等。利用ASP的
BrowserCapabilities组件,就可以够计划“智能”的Web
页,以合适扫瞄器功能的格局出现内容。BrowserCapabilities
组件可以创立一个BrowserType
工具,该工具供应带有客户端收集扫瞄器的功效申明的用户剧本。该组件之以是能辨认客户扫瞄器的版本等信息,次要是由于当客户扫瞄器向服务器发送页面哀求时,会主动发送一个
UserAgentHTTP题目,该题目是一个声明扫瞄器及其版本的ASCII
字符串。BrowserCapabilities组件将UserAgent映照到在文件Browscap.ini
中所说明的扫瞄器,并经由过程BrowserType
工具的属性来辨认客户扫瞄器。若该工具在browscap.ini
文件中找不到与该题目婚配的项,那末将利用默许的扫瞄器属性。若该工具既未找到婚配项且
browscap.ini
文件中也未指定默许的扫瞄器设置,则它将每一个属性都设为字符串
"UNKNOWN"。在默许情形下,browscap.ini文件被寄存在
WINDOWSSYSTEMINERSRV(假如是95/98+PWS4)或NTSYSTEM32INERSRV(假如是NT)
目次中,你能够本人编纂这个文本文件,以增加本人的属性大概依据最新公布的扫瞄器版本的更新文件来修正该文件。请看以下
checkCookie()历程,利用BrowserCap工具的Cookie
属性来判别客户端扫瞄器是不是撑持Cookie,并前往信息:
<%
SubcheckCookie()
SetBrowserCap=Server.CreateObject("MSWC.BrowserType")
ifBrowserCap.Cookie=Truethen
response.write"你的扫瞄器撑持Cookie!"
else
response.write"对不起,你所利用的扫瞄器不撑持Cookie!"
endif
endSub
%>
有关BrowserCapabilities
组件的具体信息,请拜见静态网站计划十八般技艺--ASP篇(2)。
2、FileAccess
组件假如你的网龄充足年夜的话,你必定见过“恐龙时期”的CGI
留言簿,那是WEB留言簿最早的雏形。当时候在基于Internet的WEB
使用程序中毗连服务器后端数据库还好不容易,因而留言簿中的汗青信息并非同现在一样存储在后端数据库中。那末这些数据事实是保留在那里的呢?谜底就是“文本文件”,
CGI
程序能够将从客户端吸收的信息写进一个寄存在服务器真个文本文件中,该文件能够是
HTML文件或TXT
等文件,如许就使得程序员们能够欠亨过同数据库毗连就能够将客户信息保留上去,可是写此类
CGI程序甚是啰嗦,上面列出了一个此类程序的最复杂的样本:
#!/usr/local/bin/perl
#PerlLocationoneyourserver
print"Content-type:text/plain
";
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-fA-F0-9][a-fA-f0-9])/pack("C",hex($1))/eg;
$FORM{$name}=$value;}
$file_name="guestbook.txt";#Filename
#详细内容
open(FILE,">>$file_name")||die"翻开文件毛病";
printFILE"纪录工夫":$date
";
printFILE"姓名":$FORM{name}";
printFILE"单元":$FORM{company}
";
printFILE"德律风":$FORM{phone}
printFILE"地点":$FORM{address}
";
printFILE"邮编":$FORM{zip}
printFILE"邮件地点":$FORM{email}
";
printFILE"前往定见":$FORM{content}
close(FILE)
人人能够感到到,与ASP比拟此类CGI
程序的可读性和易操纵性都较差。那末你必定想问ASP
是不是也能间接在服务器上写文件呢?谜底固然是一定的。可是伶俐的伴侣大概会想到,既然
ASP同WEB
数据库的毗连云云便利,我们又何需再将客户信息写在文本文件中呢,
ASP
的这个功效岂不是多此一举?切实其实,关于那些我们罕见的留言簿、
BBS等WEB
使用程序而言,不管是在程序的实行效力仍是易用性上,我们都不成能再用写文本文件来替换数据库,可是在某些
WEB
使用范畴里写文本文件既是一种标准也是一种绝对数据库而较便利的办法。假如你对
NT较熟习的话,你必定晓得NT
具有十分壮大的平安机制,它能够将几近一切的服务器操纵和毗连的信息主动保留在一个后缀名为
.log的文件中,实在这类手艺也完整能够被使用在WEB
上,用来纪录一些的客户上岸信息。上面的这段程序恰是使用ASP
读写文本文件的特征,在一个WEBBBS
程序中创立主动纪录每一个用户讲话纪录的功效。
<%
Setfs=CreateObject("Scripting.FileSystemObject")
ForReading=1
以只读形式翻开文件。不克不及对此文件举行写操纵。
ForAppending=8
翻开文件并在文件开端举行写操纵。
TristateUseDefault=-2
TristateTrue=-1
TristateFalse=0
-----------写进体系log入手下手--------
servermap=server.MapPath("bslog")
映照体系物理路径
temp=servermap&""&year(date)&month(date)&""
猎取体系物理路径和工夫,并以此作为log文件寄存的物理路径
ifNotfs.FolderExists(temp)then
fs.CreateFolder(temp)
endif
检测是不是存在文件夹,不然主动创立
dimsyslo</p>ASP.NET和ASP的比较,技术上比较已经没什么可说的了.新一代在大部分程度来说当然是比旧一代好了.关键看你对所做软件的理解了.因人而定.会写的话也可能比ASP.NET写得更有效率和更方便重用 |
|