亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > ASP > 正文

ASP基礎教程:其它的ASP常用組件_ASP教程

2024-05-04 11:03:31
字體:
來源:轉載
供稿:網友

推薦:讓彈出窗口變得“聽話”一些
在網上沖浪時進入一些網站會出現彈出窗口。它可能是站長對你的親切問候,也可能是網站的重要通告、網站廣告之類的。但用得不好會讓人產生厭煩心理。如何才能讓彈出窗口發揮作用,而又不影響瀏覽

當你用 ASP 編寫服務器端應用程序時,必須依靠 ActiveX 組件來強大 Web 應用程序的功能,譬如:你需要連接數據庫,對數據庫進行在線操作等等。

一、 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($1))/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 FILE "郵件地址":$FORM{///'email///'}////n";
print 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.FileSystemObject")
ForReading = 1
///'以只讀模式打開文件。不能對此文件進行寫操作。
ForAppending = 8
///'打開文件并在文件末尾進行寫操作。
TristateUseDefault = -2
TristateTrue = -1
TristateFalse = 0/P>
///'-----------寫入系統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文件寫入結束---------
%>

如果你沒有完全看懂上面的這段程序,就請聽作者慢慢道來。 File Access 組件提供了可用來訪問計算機文件系統的方法和屬性。我們可以使用 File Access 組件創建 FileSystemObject 對象,以上程序的第一句就是利用 File Access 組件創建了一個名為 fs 的對象實例。在對象被創建后,你可以通過它訪問文件,該對象沒有屬性,它唯一的意義就是創建、打開或讀寫文本文件。 FileSystemObject 對象有兩種最常用的方法,一種用來創建文件,另一種是用來打開并讀寫文本文件。 CreateTextFile 方法獲得你指定的文件名并創建該文件,它返回一個 TextStream 對象,你可以用該對象在文件被創建后操作該文件, CreateTextFile 方法的語法如下:

Set objTextStream=FileSystemObject.CreateTextFile(Filename,[Overwrite],[Unicode])

下面作者給大家解釋一下 CreateTextFile 方法的參數

1、Filename 包含文件路徑名的字符串,可以是文件的全路徑名,包括驅動器名和目錄名,或者也可以只是文件名,如果只包含文件名的話,文件將被創建在站點的根目錄下。

2、Overwrite 布爾量,設置成 False 時可以防止 FileSystemObject 對象在創建一個新文件時刪除已存在的文件,該參數是可選的,如果沒有賦值系統默認為 true,具有相同文件名的已有文件會被刪掉。

3、 Unicode 可選參數。布爾值指明是否以 Unicode 或 ASCII 文件格式創建文件。如果以 Unicode 文件格式創建文件,則該值為 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 對象打開一個存在的文本文件或者創建一個新的文件。

下面列出了 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 文件,通過它你甚至可以毫不費力的遠程自動更新你的網站,你只要把固定格式的文本文件傳送到遠端的服務器上,通過 File Access 組件讀取文件,并自動生成全新 HTML 頁面即可,而不必再辛辛苦苦地一個一個地更新 HTML 文件。如果你有興趣,你完全可以用 ASP 的 File Access 組件寫一個自己的全自動 HTML 生成器,充分享受維護網站的超前輕松感。

分享:JS DIV模擬SELECT表單域
最近在做一個AJAX項目,其中用到很多滿屏層的模擬屏幕鎖定,但有個很頭痛的東西,就是下拉列表框始終會顯示在層的上面,為了解決這個問題才寫了這個JS類,個人感覺還好用,在這和大家分享下,有

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精品久久91精品| 中文字幕av一区中文字幕天堂| 欧美区在线播放| 日韩精品在线视频| 亚洲精品欧美日韩| 一本色道久久88精品综合| 亚洲国产精品国自产拍av秋霞| 亚洲高清色综合| 国产精品永久免费在线| 国产精品亚洲аv天堂网| 久久久精品影院| 久久国产精品久久精品| 国产精品第一页在线| 6080yy精品一区二区三区| 夜夜嗨av一区二区三区四区| 色噜噜狠狠狠综合曰曰曰| 欧美刺激性大交免费视频| 亚洲天堂久久av| 亚洲人成电影在线| 国产97人人超碰caoprom| 欧美影院成年免费版| 欧美性猛交xxxx乱大交3| 日本久久久久亚洲中字幕| 在线播放国产一区中文字幕剧情欧美| 国产亚洲精品成人av久久ww| 久久精视频免费在线久久完整在线看| 国产精品视频午夜| 欧美性videos高清精品| 国产一区二区在线免费| 亚洲香蕉成人av网站在线观看| 欧美色xxxx| 国产在线视频2019最新视频| 久久国产精品电影| 亚洲成人精品视频在线观看| 成人精品一区二区三区电影免费| 国产一区二区三区视频在线观看| 日韩毛片在线观看| 久热精品在线视频| 日韩免费不卡av| 欧美日韩国产黄| 国产精品久久视频| 国外日韩电影在线观看| 日韩欧美在线第一页| 亚洲国产另类久久精品| 精品久久久久久亚洲精品| 国产精品亚洲欧美导航| 久久久久日韩精品久久久男男| 91最新在线免费观看| 亚洲护士老师的毛茸茸最新章节| 亚洲成人精品视频| 中文字幕亚洲一区二区三区五十路| 久久精品91久久久久久再现| 91高潮在线观看| 久操成人在线视频| 不用播放器成人网| 日韩精品在线观看一区二区| 国产精品亚洲美女av网站| 日韩一区二区三区国产| 狠狠躁夜夜躁久久躁别揉| www.日韩.com| 欧美高跟鞋交xxxxhd| 中文字幕一区电影| 啪一啪鲁一鲁2019在线视频| 久久久女人电视剧免费播放下载| 欧美理论在线观看| 欧美电影免费观看网站| 日韩专区在线观看| 国产欧美久久一区二区| 国内精品小视频在线观看| 亚洲视频电影图片偷拍一区| 国产欧美一区二区三区久久| 国产网站欧美日韩免费精品在线观看| 国产在线观看不卡| 亚洲免费视频网站| 久久久电影免费观看完整版| 欧美老女人xx| 国产综合香蕉五月婷在线| 九九久久精品一区| 国产欧美最新羞羞视频在线观看| 国产精品99久久久久久www| 欧美精品videos性欧美| 日韩国产中文字幕| 欧美激情欧美激情在线五月| 国产精品羞羞答答| 日韩欧美黄色动漫| 91精品国产综合久久香蕉922| 一个色综合导航| 热99精品只有里视频精品| 欧美在线性视频| 插插插亚洲综合网| 91精品国产综合久久香蕉922| 久久久人成影片一区二区三区观看| 精品久久在线播放| 大伊人狠狠躁夜夜躁av一区| 亚洲精品第一国产综合精品| 欧美日韩电影在线观看| 亚洲激情在线观看视频免费| 中文字幕欧美日韩精品| 欧美午夜精品伦理| 中文亚洲视频在线| 久久久久久久香蕉网| 亚洲黄色在线观看| 日韩成人av一区| 色综合91久久精品中文字幕| 亚洲欧洲在线视频| 91在线高清视频| 亚洲色图35p| 亚洲国产日韩精品在线| 欧美日韩黄色大片| 久久精品国产电影| 亚洲iv一区二区三区| 亚洲精品女av网站| 国产一区二区动漫| 亚洲欧美福利视频| 国产精品aaaa| 欧美寡妇偷汉性猛交| 久久成人人人人精品欧| 欧美一级视频免费在线观看| 欧美性黄网官网| 国产精品高潮呻吟久久av无限| 亚洲精品97久久| 日本久久久久久久| 精品一区二区三区四区| 色婷婷综合成人| 日韩电视剧在线观看免费网站| 久久香蕉国产线看观看av| 国产精品丝袜久久久久久不卡| 国产精品久久久久9999| 91精品久久久久久久久| 国产精品视频公开费视频| 亚洲自拍偷拍在线| 日本sm极度另类视频| 精品日韩视频在线观看| 亚洲男人7777| 欧美日韩精品中文字幕| 欧美性猛交xxxx久久久| 综合国产在线观看| 久久久久国产精品免费| 91高清视频免费| 91热精品视频| 久久久国产精品视频| 亚洲美女又黄又爽在线观看| 欧美国产亚洲视频| 久久亚洲精品国产亚洲老地址| 国产午夜精品一区理论片飘花| 亚洲第一页自拍| 91免费国产视频| 国产成人一区二区| 国产精品小说在线| 中文字幕av一区二区| 成人激情视频在线播放| 亚洲欧美国产精品久久久久久久| 91影院在线免费观看视频| 国产欧美精品一区二区三区-老狼| 97成人在线视频| 国产成人中文字幕| 91香蕉嫩草神马影院在线观看| 久久久久久久久久av| 国产精品久久中文| 久久久成人的性感天堂| 中文字幕亚洲欧美日韩在线不卡| 国产视频精品久久久| 岛国精品视频在线播放| 国产精品亚洲片夜色在线|