百科解釋
目錄·概述·ASP的工作原理·ASP的運(yùn)行環(huán)境·ASP的意涵與特性·ASP常用內(nèi)置函數(shù)·ASP中Application和Session對(duì)象 1. Advanced Speech Processing -- 高級(jí)語音處理 2. Analog Signal Processor -- 模擬信號(hào)處理器 3. Application Service Provider -- 應(yīng)用服務(wù)供應(yīng)商 它是集眾多社會(huì)資源和知識(shí)資源于一體,為企業(yè)提供在線業(yè)務(wù)的應(yīng)用服務(wù)和管理服務(wù)的商業(yè)機(jī)構(gòu)。 4. Active Server Pages -- 動(dòng)態(tài)服務(wù)器主頁(yè) 概述ASP是Active Server Page的縮寫,意為“活動(dòng)服務(wù)器網(wǎng)頁(yè)”。ASP是微軟公司開發(fā)的代替CGI腳本程序的一種應(yīng)用,它可以與數(shù)據(jù)庫(kù)和其它程序進(jìn)行交互,是一種簡(jiǎn)單、方便的編程工具。ASP的網(wǎng)頁(yè)文件的格式是.asp,現(xiàn)在常用于各種動(dòng)態(tài)網(wǎng)站中。 ASP是一種服務(wù)器端腳本編寫環(huán)境,可以用來創(chuàng)建和運(yùn)行動(dòng)態(tài)網(wǎng)頁(yè)或Web應(yīng)用程序。ASP網(wǎng)頁(yè)可以包含HTML標(biāo)記、普通文本、腳本命令以及COM組件等。利用ASP可以向網(wǎng)頁(yè)中添加交互式內(nèi)容(如在線表單),也可以創(chuàng)建使用HTML網(wǎng)頁(yè)作為用戶界面的web應(yīng)用程序。 與HTML相比,ASP網(wǎng)頁(yè)具有以下特點(diǎn): (1)利用ASP可以實(shí)現(xiàn)突破靜態(tài)網(wǎng)頁(yè)的一些功能限制,實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)技術(shù); (2)ASP文件是包含在HTML代碼所組成的文件中的,易于修改和測(cè)試; (3)服務(wù)器上的ASP解釋程序會(huì)在服務(wù)器端制定ASP程序,并將結(jié)果以HTML格式傳送到客戶端瀏覽器上,因此使用各種瀏覽器都可以正常瀏覽ASP所產(chǎn)生的網(wǎng)頁(yè); (4)ASP提供了一些內(nèi)置對(duì)象,使用這些對(duì)象可以使服務(wù)器端腳本功能更強(qiáng)。例如可以從web瀏覽器中獲取用戶通過HTML表單提交的信息,并在腳本中對(duì)這些信息進(jìn)行處理,然后向web瀏覽器發(fā)送信息; (5)ASP可以使用服務(wù)器端ActiveX組件來執(zhí)行各種各樣的任務(wù),例如存取數(shù)據(jù)庫(kù)、發(fā)現(xiàn)和那個(gè)Email或訪問文件系統(tǒng)等。 (6)由于服務(wù)器是將ASP程序執(zhí)行的結(jié)果以HTML格式傳回客戶端瀏覽器,因此使用者不會(huì)看到ASP所編寫的原始程序代碼,可防止ASP程序代碼被竊取。 ASP的工作原理 當(dāng)在Web站點(diǎn)中融入ASP功能后,將發(fā)生以下事情: 1、用戶向?yàn)g覽器地址欄輸入網(wǎng)址,默認(rèn)頁(yè)面的擴(kuò)展名是.asp。 2、瀏覽器向服務(wù)器發(fā)出請(qǐng)求。 3、服務(wù)器引擎開始運(yùn)行ASP程序。 4、ASP文件按照從上到下的順序開始處理,執(zhí)行腳本命令,執(zhí)行HTML頁(yè)面內(nèi)容。 5、頁(yè)面信息發(fā)送到瀏覽器。 ASP的運(yùn)行環(huán)境 asp需要運(yùn)行在PWS或IIS下。PWS或IIS服務(wù)在windows98或windows2000的光盤上附帶著,可以通過“添加/刪除程序”中的“添加/刪除windows組件”來安裝。 一般asp需與access數(shù)據(jù)庫(kù)或SQL Server數(shù)據(jù)庫(kù)結(jié)合使用,編出功能強(qiáng)大的程序。 能夠運(yùn)行ASP的web服務(wù)器軟件 Windows2000默認(rèn)安裝的是IIS5.0(internet information server),而windows xp默認(rèn)安裝的是IIS5.1,windows 2003默認(rèn)安裝的IIS6.0。 PWS(personal web server)運(yùn)行在windows98環(huán)境下的簡(jiǎn)單個(gè)人網(wǎng)頁(yè)服務(wù)器。 ASP的意涵與特性ASP( Application Service Provider,應(yīng)用軟體租賃服務(wù)提供者 )即是指「透過網(wǎng)路以租賃方式提供應(yīng)用軟體服務(wù)的業(yè)者」,即是指業(yè)者以應(yīng)用軟體為主體,透過網(wǎng)路一對(duì)多地傳遞服務(wù),這種以服務(wù)為主的交易模式促使企業(yè)可藉由租賃的方式,以更符合成本效益的方式擁有軟體的使用權(quán),并且亦能因?yàn)闃I(yè)者集中式的管理而大幅降低企業(yè)維護(hù)的成本. 基本上,ASP即具有「軟體服務(wù)化,服務(wù)網(wǎng)路化」,「資訊委外服務(wù)與網(wǎng)路結(jié)合」與「產(chǎn)品通路化,通路產(chǎn)品化」等三大特性,其甚至可以被視為是ISP(Internet Service Provider)與ITS(Information Technology Service)的結(jié)合. ASP的英文是Application Service Provider,中文的標(biāo)準(zhǔn)翻譯就是“應(yīng)用服務(wù)提 供商”,是指為商業(yè)或者個(gè)人客戶提供管理應(yīng)用解決方案的公司或者企業(yè)。最近 ASP被媒體炒做十分火熱,不是IT行業(yè)的人面對(duì)一堆技術(shù)名詞專業(yè)術(shù)語很難弄清楚ASP的內(nèi)容,本文試圖用淺顯的語言來為廣大的讀者揭開ASP神秘的面紗,對(duì)于IT行業(yè)的大熱門ASP領(lǐng)域有一些基本的認(rèn)識(shí)。 1. ASP是什么東西? 簡(jiǎn)單地講,ASP就是為客戶提供服務(wù)的服務(wù)商,它和會(huì)計(jì)事物所、婚姻介紹所沒有什么本質(zhì)方面的區(qū)別。不同的是ASP主要是通過INTERNET(國(guó)際互聯(lián)網(wǎng)絡(luò))作為主要工作和業(yè)務(wù)工具,采用一對(duì)多的方式,向企業(yè)、公司提供標(biāo)準(zhǔn)化的應(yīng)用軟件以及相關(guān)的技術(shù)咨詢、管理租賃的服務(wù),ASP的概念最早是1998年由美國(guó)人提出來的。目前被全球各大IT廠商看好并被認(rèn)為是可以推動(dòng)網(wǎng)絡(luò)經(jīng)濟(jì)發(fā)展的,有穩(wěn)固基礎(chǔ)的第三種網(wǎng)絡(luò)商業(yè)模式。 和傳統(tǒng)的外包服務(wù)(Outsourcing)相比,ASP的主要區(qū)別在于:ASP是一對(duì)多的經(jīng)營(yíng)模式,提供的服務(wù)有兼容性和可協(xié)調(diào)性,并且ASP的收費(fèi)方式一般是按月收費(fèi)。 業(yè)界認(rèn)為:ASP一般有這樣一些“成員”:電信運(yùn)營(yíng)商、傳統(tǒng)IT服務(wù)廠商、互聯(lián)網(wǎng)絡(luò)接入服務(wù)商(ISP)、獨(dú)立軟件供應(yīng)商(ISV)、系統(tǒng)集成商和單純的ASP公司。 根據(jù)流行的觀點(diǎn),ASP有如下五個(gè)核心內(nèi)涵: a. ASP著重應(yīng)用為中心,提供對(duì)于應(yīng)用方面的訪問和管理。 b. ASP服務(wù)可以為用戶提供沒有在服務(wù)器、人員、系統(tǒng)和系統(tǒng)授權(quán)等前期資源投入情況下就可以在“定制”的全新應(yīng)用系統(tǒng)環(huán)境進(jìn)行訪問的服務(wù),如ISP,而這樣的服務(wù)一般按月份ASP收取服務(wù)費(fèi)。 c. ASP采用集中管理的方式---ASP一般都有一個(gè)管理中心,所有的客戶通過INTERNET來進(jìn)行遠(yuǎn)程訪問,獲得技術(shù)支持和咨詢服務(wù)。 d. 一對(duì)多的服務(wù),也就是講,ASP提供的是標(biāo)準(zhǔn)化的產(chǎn)品包,產(chǎn)品都是最低程度的自定義或者沒有實(shí)現(xiàn)客戶定制化,對(duì)于行業(yè)用戶來講已經(jīng)達(dá)到實(shí)用方便的標(biāo)準(zhǔn)。 e. 按照合同交付,在ASP客戶的眼中,ASP是一家根據(jù)客戶協(xié)議內(nèi)容提供相關(guān)服務(wù),保證應(yīng)用服務(wù)系統(tǒng)服務(wù)可以得到確實(shí)履行的機(jī)構(gòu)。 2. ASP為什么會(huì)火? 從大的方面來講,困擾國(guó)內(nèi)企業(yè)生存、發(fā)展的核心問題是管理問題。隨著互聯(lián)網(wǎng)絡(luò)的普及和應(yīng)用的深入,企業(yè)用戶可以隨時(shí)隨地直接租用ASP的服務(wù)器和軟件系統(tǒng)來進(jìn)行自己的業(yè)務(wù)管理,這樣做的好處在于;第一,企業(yè)可以節(jié)省大筆用于IT建設(shè)方面的資金,大幅度降低企業(yè)管理信息化的成本。第二,ASP的用戶可以采用各種方式獲得應(yīng)用和服務(wù),軟件類服務(wù)產(chǎn)品完全可以通過網(wǎng)絡(luò)在非常短的時(shí)間內(nèi)組成一個(gè)完善的、高效的、先進(jìn)的企業(yè)管理系統(tǒng),迅速獲得企業(yè)一體化的運(yùn)營(yíng)管理方案。 網(wǎng)絡(luò)經(jīng)濟(jì)發(fā)展突飛猛進(jìn),電子商務(wù)一日千里,網(wǎng)絡(luò)和網(wǎng)站從門戶到內(nèi)容、從注意力到垂直性,目前逐漸轉(zhuǎn)向熱衷ASP也是一個(gè)主要的原因。 筆者資料中,國(guó)內(nèi)最早對(duì)ASP觸電的是網(wǎng)友“飛鳥”,在1998年6月自發(fā)組織了研究、交流和探討ASP技術(shù)的“飛鳥之家”,現(xiàn)在已經(jīng)發(fā)展成為chinaasp.com,成為國(guó)內(nèi)最早的ASP應(yīng)用技術(shù)服務(wù)提供商網(wǎng)站。上海的互易網(wǎng)絡(luò)有限公司結(jié)合國(guó)內(nèi)實(shí)際情況,推出了為國(guó)內(nèi)企業(yè)服務(wù)的ASP平臺(tái)互易網(wǎng),向企業(yè)提供以電子商務(wù)為核心的,企業(yè)內(nèi)、外部網(wǎng)絡(luò)設(shè)施和應(yīng)用的遠(yuǎn)程構(gòu)架和托管服務(wù),創(chuàng)造虛擬企業(yè)門戶(EP)直接將ASP應(yīng)用到商業(yè)增殖環(huán)節(jié)中去。 此外,ISP也全面轉(zhuǎn)向ASP的懷抱,成為ISP進(jìn)一步發(fā)展的產(chǎn)物。軟件商對(duì)于ASP更是情有獨(dú)鐘。業(yè)界最新的消息是,中國(guó)第三電信“網(wǎng)通”已經(jīng)制定ASP發(fā)展戰(zhàn)略,國(guó)內(nèi)最大的管理咨詢公司“漢普”將把旗下八個(gè)子公司定位在企業(yè)內(nèi)部資源計(jì)劃管理(ERP)領(lǐng)域的ASP中,北京“聯(lián)成互動(dòng)”瞄準(zhǔn)客戶關(guān)系管理(CRM)領(lǐng)域的ASP,北京“數(shù)碼方舟”定位在網(wǎng)絡(luò)辦公的ASP,HP正在和中國(guó)建設(shè)銀行討論共建金融領(lǐng)域的ASP。 ASP正在IT經(jīng)濟(jì)大潮中顯山露水,其發(fā)展前景不可估量。 3. ASP的發(fā)展階段和面臨的問題 以網(wǎng)絡(luò)服務(wù)商、軟件廠商和ISP為主力的各種IT角色,正在根據(jù)自己的優(yōu)勢(shì)條件出發(fā)對(duì)ASP領(lǐng)域進(jìn)行多種方面的嘗試。就目前階段來講,ASP提供的服務(wù)不計(jì)其數(shù)五花八門,沒有標(biāo)準(zhǔn)化和量化的概念,硬件廠商向ASP的“土壤”和勢(shì)力方向靠攏,軟件廠商和ISP則直接參與到ASP業(yè)務(wù)的第一線。 筆者估計(jì),經(jīng)過一段時(shí)間的試探和發(fā)展,ASP將向服務(wù)集成方面發(fā)展,產(chǎn)品和服務(wù)初步的標(biāo)準(zhǔn)化將很快建立起來,接著進(jìn)入到市場(chǎng)細(xì)化和標(biāo)準(zhǔn)制定、ASP產(chǎn)品成熟時(shí)期,ASP的穩(wěn)步增長(zhǎng),最終將成為IT行業(yè)商務(wù)模式的核心! 目前在ASP發(fā)展的道路上,主要面臨的問題是觀念的轉(zhuǎn)變方面:用租賃代替購(gòu)買,服務(wù)集成代替產(chǎn)品經(jīng)銷商、服務(wù)經(jīng)濟(jì)代替產(chǎn)品經(jīng)濟(jì)等等。具體到實(shí)際方面來講,安全和服務(wù)的質(zhì)量是ASP和客戶共同關(guān)心的頭等大事,要實(shí)現(xiàn)ASP提出的“租賃高科技”的口號(hào),ASP任重而道遠(yuǎn)! ASP常用內(nèi)置函數(shù) 1,日期/時(shí)間函數(shù) 這些函數(shù)包括對(duì)“年”、“月”、“日”、“時(shí)”、“分”、“秒”、“星期”等的顯示。 (1)Now函數(shù):根據(jù)計(jì)算機(jī)系統(tǒng)設(shè)定的日期和時(shí)間,返回當(dāng)前的日期和時(shí)間值。使用方法now(); (2)Date函數(shù):只返回當(dāng)前計(jì)算機(jī)系統(tǒng)設(shè)定的日期值。使用方法:date(); (3)Time函數(shù):只返回當(dāng)前計(jì)算機(jī)系統(tǒng)設(shè)定的時(shí)間值。使用方法:time(); (4)Year函數(shù):返回一個(gè)代表某年的整數(shù)。使用方法:year(date),其中date參數(shù)是任意的可以代表日期的參數(shù),比如“year(date())”就表示是從“date()”得出的日期中提取其中“年”的整數(shù)。 另外,還可以這樣應(yīng)用:“year(#5 20,2006#)”表示提取“2006年5月20日”中“年”的整數(shù)值。關(guān)于“5 20,2006”,也可使用“5-20-2006”、“5/20/2006”等形式表現(xiàn),即“某月某日”和“某年”的組合。同時(shí)注意使用“#”進(jìn)行包括以表示日期值。 (5)Month函數(shù):返回1到12之間的整數(shù)值,表示一年中某月。使用方法:month(date)。關(guān)于參數(shù)date的說明和year函數(shù)相同。但要注意日期的正確性,比如“#13-31-2006#”,根本就沒有“13”月,肯定是錯(cuò)誤的了。 (6)Day函數(shù):返回1到31之間的整數(shù)值,表示一個(gè)月中的某天。使用方法:day(date)。關(guān)于參數(shù)date的說明和year函數(shù)相同。同樣要注意日期的正確性,比如“#2-30-2006#”其中對(duì)“2”月定義的“30”日這天就是錯(cuò)誤的。 (7)Hour函數(shù):返回0到23之間的整數(shù)值,表示一天中的某個(gè)小時(shí)。使用方法:hour(time)。其中參數(shù)time是任意的可代表時(shí)間的表達(dá)式。比如“hour(time())”就表示是從“time()”得出的時(shí)間中提取其中“小時(shí)”的整數(shù)。同樣,參數(shù)time還可以這樣應(yīng)用“hour(#11:45:50#)”表示從“11”時(shí)“45”分“50”秒中提取當(dāng)前小時(shí)數(shù)。當(dāng)然,定義的時(shí)間要符合時(shí)間的規(guī)范。 (8)Minute函數(shù):返回0到59之間的整數(shù)值,表示一小時(shí)中的某分鐘。使用方法:minute(time)。time參數(shù)的說明和hour函數(shù)相同。 (9)Second函數(shù):返回0到59之間的整數(shù)值,表示一分鐘中的某秒。使用方法:second(time)。time參數(shù)的說明和hour函數(shù)相同。 (10)Weekday函數(shù):返回一個(gè)星期中某天的整數(shù)。使用方法:weekday(date)。關(guān)于參數(shù)date的說明和year函數(shù)相同。該函數(shù)返回值為“1”到“7”,分別代表“星期日”、“星期一”……“星期六”。比如當(dāng)返回值是“4”時(shí)就表示“星期三”。 (11)WeekDayName函數(shù):返回一個(gè)星期中具體某天的字符串。相對(duì)weekday函數(shù)而言即翻譯出“星期幾”,使用方法:weekdayname(weekday)。參數(shù)weekday即星期中具體某天的數(shù)值。比如“weekdayname(weekday(date()))”就表示當(dāng)前是“星期幾”。因?yàn)椤癲ate()”表示的是當(dāng)前的時(shí)間,而“weekday(date())”就表示的是一星期中具體某天的整數(shù)。 當(dāng)然weekdayname函數(shù)最終顯示的字符串內(nèi)容還與當(dāng)前操作系統(tǒng)語系有關(guān),比如中文操作系統(tǒng)將顯示“星期一”這類的中文字符,而英文操作系統(tǒng)則顯示為“Mon”(Monday簡(jiǎn)寫)。 此外,在VBs cript中還有一些關(guān)于時(shí)間間隔的計(jì)算函數(shù): (1)DateAdd函數(shù):返回指定時(shí)間間隔的日期、時(shí)間?梢杂(jì)算出相隔多少年、或相隔幾個(gè)月、又或相隔幾個(gè)小時(shí)等的新日期、時(shí)間。使用方法:dateadd(interval, number, date)。 其中參數(shù)interval表示需要添加的時(shí)間間隔單位。其是以字符串的形式表達(dá)的,比如“yyyy”表示年,“q”表示季度,“m”表示月份,“d”表示天數(shù),“ww”表示周數(shù),“h”表示小時(shí)數(shù),“n”表示分鐘數(shù),“s”表示秒數(shù)。 而參數(shù)number則表示添加的時(shí)間間隔數(shù)。其是以數(shù)值的形式表達(dá)的,可以為負(fù)值。參數(shù)date則要求是日期、時(shí)間的正確格式。 比如dateadd("d",100,"2006-5-20")就表示2006年5月20號(hào)以后的100天的日期值:2006-8-28。再比如dateadd("h",-12,"2005-5-20 10:00:00")就表示2005年5月20號(hào)上午10點(diǎn)前的12小時(shí)的日期時(shí)間:2005-5-19 22:00:00。 (2)DateDiff函數(shù):返回兩個(gè)日期時(shí)間之間的間隔?捎(jì)算出兩個(gè)日期相隔的年代、小時(shí)數(shù)等。使用方法:datediff(interval,date1,date2)。 參數(shù)interval和dateadd函數(shù)中的interval參數(shù)內(nèi)容描述相同,date1和date2參數(shù)分別就是相互比較的兩個(gè)日期時(shí)間。另外,當(dāng)date1的日期時(shí)間值大于date2時(shí),將顯示為負(fù)值。 比如DateDiff("yyyy","1982-7-18",date)表示某人的出生到現(xiàn)在已經(jīng)多少年了。又比如DateDiff("d","1982-7-18","2062-7-18")則計(jì)算了80年過了多少天:29220。 2,字符串處理函數(shù) 在腳本的功能處理中,通常需要對(duì)一些字符串進(jìn)行一些修飾性處理。比如過濾掉字符串中的敏感字眼以符合最終顯示的要求;又比如一段較長(zhǎng)的字符串,需要提取開頭的幾個(gè)字符時(shí)。 (1)Asc函數(shù):返回字符串中第一個(gè)字母對(duì)應(yīng)的ANSI字符代碼。使用方法:asc(string)。其中string參數(shù)表示字符串。 (2)Chr函數(shù):返回指定了ANSI 字符代碼對(duì)應(yīng)的字符。使用方法:chr(chrcode)。參數(shù)chrcode是相關(guān)的標(biāo)識(shí)數(shù)字。該函數(shù)的功能和asc函數(shù)形成對(duì)應(yīng)。 比如:asc(“a”)表示小寫字母“a”的ANSI 字符“97”;同樣chr(97)表示的就是“小寫字母a”。另外chr(chrcode)中參數(shù)chrcode值為0到31的數(shù)字時(shí),表示不可打印的ASCII碼。比如“chr(10)”表示換行符,“chr(13)”表示回車符等,這常用于輸入和顯示格式的轉(zhuǎn)換中。 (3)Len函數(shù):返回字符串內(nèi)字符的數(shù)目(字節(jié)數(shù))。使用方法:len(string)。比如len(“l(fā)ove”)的值就是4。 (4)LCase函數(shù):返回所有字符串的小寫形式。使用方法:lcase(string)。比如lcase(“CNBruce”)返回為“cnbruce”。 (5)UCase函數(shù):返回所有字符串的大寫形式。與lcase函數(shù)形成對(duì)應(yīng)。同樣,ucase(“CNBruce”)返回為“CNBRUCE”。 (6)Trim函數(shù)、LTrim函數(shù)和RTrim函數(shù):分別返回前導(dǎo)和后續(xù)不帶空格、前導(dǎo)不帶空格或后續(xù)不帶空格的字符串內(nèi)容。比如: trim(“ cnbruce ”)返回為“cnbruce”,前導(dǎo)和后續(xù)都不帶空格; ltrim(“ cnbruce ”)返回為“cnbruce ”,前導(dǎo)不帶空格; rtrim(“ cnbruce ”)返回為“ cnbruce”,后續(xù)不帶空格; 該函數(shù)常用于注冊(cè)信息中,比如確保注冊(cè)用戶名前或后的空格。 (7)Left函數(shù):返回從字符串的左邊算起的指定數(shù)目的字符。使用方法:left(string,length)。比如left(“brousce”,5)返回為“brous”,即前五位字符。 (8)Right函數(shù):返回從字符串的左邊算起的指定數(shù)目的字符。使用方法:right(string,length)。比如right(“brousce”,4)返回為“usce”,即后四位字符。 (9)instr函數(shù):返回某字符串在另一字符串中第一次出現(xiàn)的位置。比如現(xiàn)在查找字母“A”在字符串“A110B121C119D1861”中第一次出現(xiàn)的位置,則可以 instr(my_string,"A110B121C119D1861") (10)Mid函數(shù):從字符串中返回指定數(shù)目的字符。比如現(xiàn)在的“110”則應(yīng)該是從字符串“A110B121C119D1861”的第2位取得3個(gè)單位的值:mid("A110B121C119D1861",2,3) (11)Replace函數(shù):在字符串中查找、替代指定的字符串。replace(strtobesearched,strsearchfor,strreplacewith)其中strtobesearched是字符串,strsearchfor是被查找的子字符串,strreplacewith是用來替代的子字符串。比如 replace(rscon,"<","<") 則表示將rscon中所有“<”的字符替換為“<” 3,類型轉(zhuǎn)換函數(shù) Cbool(string) 轉(zhuǎn)換為布爾值 Cbyte(string) 轉(zhuǎn)換為字節(jié)類型的值 Ccur(string) 轉(zhuǎn)換為貨幣類值 Cdate(string) 轉(zhuǎn)換為日前類型的值 Cdbl(string) 轉(zhuǎn)換為雙精度值 Cint(string) 轉(zhuǎn)換為整數(shù)值 Clng(string) 轉(zhuǎn)換為長(zhǎng)整型的值 Csng(string) 轉(zhuǎn)換為單精度的值 Cstr(var) 轉(zhuǎn)換為字符串值 Str(var) 數(shù)值轉(zhuǎn)換為字符串 Val(string) 字符串轉(zhuǎn)換為數(shù)值 4,運(yùn)算函數(shù) Abs(nmb) 返回?cái)?shù)子的絕對(duì)值 Atn(nmb) 返回一個(gè)數(shù)的反正切 Cos(nmb) 返回一個(gè)角度的余炫值 Exp(nmb) 返回自然指數(shù)的次方值 Int(nmb) 返回?cái)?shù)字的整形(進(jìn)位)部份 Fix(nmb) 返回?cái)?shù)字的整形(舍去)部份 Formatpercent(表達(dá)式) 返回百分比 Hex(nmb) 返回?cái)?shù)據(jù)的16進(jìn)制數(shù) Log(nmb) 返回自然對(duì)數(shù) Oct(nmb) 返回?cái)?shù)字的8進(jìn)制數(shù) Rnd 返回大于“0”而小于“1”的隨機(jī)數(shù),但此前需 randomize 聲明產(chǎn)生隨機(jī)種子 Sgn(nmb) 判斷一個(gè)數(shù)字的正負(fù)號(hào) Sin(nmb) 返回角度的正鉉值 Sqr(nmb) 返回?cái)?shù)字的二次方根 Tan(nmb) 返回一個(gè)數(shù)的正切值 5,其他函數(shù) IsArray(var) 判斷一個(gè)變量是否是數(shù)組 IsDate(var) 判斷一個(gè)變量是否是日期 IsNull(var) 判斷一個(gè)變量是否為空 IsNumeric(var) 判斷表達(dá)式是否包含數(shù)值 IsObject(var) 判斷一個(gè)變量是否是對(duì)象 TypeName(var) 返回變量的數(shù)據(jù)類型 Array(list) 返回?cái)?shù)組 Split(liststr) 從一個(gè)列表字符串中返回一個(gè)一維數(shù)組 LBound(arrayP 返回?cái)?shù)組的最小索引 Ubound(array) 返回?cái)?shù)組的最大索引 CreateObject(class) 創(chuàng)建一個(gè)對(duì)象 GetObject(pathfilename) 得到文件對(duì)象 ASP中Application和Session對(duì)象 一、Application對(duì)象的成員概述 Application對(duì)象成員包括Application對(duì)象的集合、方法和事件。 、盇pplication對(duì)象的集合 Contents集合:沒有使用元素定義的存儲(chǔ)于Applicaiton對(duì)象中的所有變量的集合 StaticObjects:使用元素定義的存儲(chǔ)于Application對(duì)象中的所有變量 的集合 例:在default.asp中有如下賦值 application("a")="a" application("b")=128 application("c")=false 則有contents集合 application.contents(1)="a" &#39;&#39;&#39;&#39;也可寫為application.contents("a")="a" application.contents(2)=128 &#39;&#39;&#39;&#39;也可寫為application.contents("b")=128 application.contents(3)=false &#39;&#39;&#39;&#39;也可寫為application.contents("c")=false 在此筆者推薦你在調(diào)用時(shí)使用類如application.contents("a")的方法,因?yàn)檫@樣更為直觀,如果用序號(hào)來表示的話則要考慮賦值的先后順序。 、睞pplication對(duì)象的方法 Contents.Remove("變量名"):從Application.Contents集合中刪除指定的變量 Contents.RemoveAll() :把Application.Contents集合中的所有變量刪除 Lock() :鎖定Application對(duì)象,使得只有當(dāng)前的ASP頁(yè)對(duì)內(nèi)容能進(jìn)行訪問 Unlock() :解除對(duì)Application對(duì)象的鎖定 例:在default.asp中: application("a")="a" application("b")=128 application("c")=false response.write application.contents(1)&" " response.write application.contents(2)&" " response.write application.contents(3)&" " response.write "After Remove b:" application.contents.remove("b") response.write application.contents(1)&" " response.write application.contents(2)&" " 執(zhí)行結(jié)果: a 128 False After Remove b: a False 如果要?jiǎng)h除集合中所有變量用application.contents.removeall即可,至于Lock和Unlock方法在實(shí)際中經(jīng)常用到,讀者也比較熟悉,在此就不在累贅。 ⒊Application對(duì)象事件 OnStart:第一個(gè)訪問服務(wù)器的用戶第一次訪問某一頁(yè)面時(shí)發(fā)生 OnEnd :當(dāng)最后一個(gè)用戶的會(huì)話已經(jīng)結(jié)束并且該會(huì)話的OnEnd事件所有代碼已經(jīng)執(zhí)行完畢后發(fā)生,或最后一個(gè)用戶訪問服務(wù)器一段時(shí)間(一般為20分鐘)后仍然沒有人訪問該服務(wù)器產(chǎn)生。 想要定義application對(duì)象的OnStart和OnEnd事件里做什么需要將代碼寫在Global.asa這個(gè)文件里(下文有舉例),并且將該文件放在站點(diǎn)的根目錄下(一般是Inetpubwwwroot) 二、Session對(duì)象的成員概述 Session對(duì)象的成員比Application對(duì)象多一項(xiàng)屬性,即:集合、屬性、方法、事件 ⒈Session對(duì)象的集合 Contents :沒有使用元素定義的存儲(chǔ)于特定Session對(duì)象的所有變量的集合。 StaticObject:使用元素定義的、存儲(chǔ)于Session對(duì)象中的所有變量的集合。 例:在default.asp中有如下賦值 session("a")="a" session("b")=128 session("c")=false 則有contents集合 session.contents(1)="a" &#39;&#39;&#39;&#39;也可寫為session.contents("a")="a" session.contents(2)=128 &#39;&#39;&#39;&#39;也可寫為session.contents("b")=128 session.contents(3)=false &#39;&#39;&#39;&#39;也可寫為session.contents("c")=false 、睸ession對(duì)象的屬性 CodePage: 可讀/可寫。整型。定義用于在瀏覽器中顯示頁(yè)內(nèi)容的代碼頁(yè)。代碼頁(yè)是字符集的數(shù)字值,不同的語言使用不同的代碼頁(yè)。例如,ANSI代碼頁(yè)為1252,日文代碼頁(yè)為932,簡(jiǎn)體中文代碼頁(yè)為936。 LCID : 可讀/可寫。整型。定義發(fā)送給瀏覽器的頁(yè)面地區(qū)標(biāo)識(shí)。LCID是唯一地標(biāo)識(shí)地區(qū)的一個(gè)國(guó)際標(biāo)準(zhǔn)縮寫,例如,2057定義當(dāng)前地區(qū)的貨幣符號(hào)是"£"。 SessionID: 只讀。長(zhǎng)整型。返回本會(huì)話的會(huì)話標(biāo)識(shí)符。每創(chuàng)建一個(gè)會(huì)話,由服務(wù)器自動(dòng)分配一個(gè)標(biāo)識(shí)符?梢愿鶕(jù)它的值判斷兩個(gè)用戶是誰先訪問服務(wù)器。 Timeout : 可讀/可寫。整型。為會(huì)話定義以分鐘為單位的超時(shí)限定。如果用戶在這個(gè)時(shí)間內(nèi)沒有刷新或請(qǐng)求任何一個(gè)網(wǎng)頁(yè),則該用戶產(chǎn)生的會(huì)話自動(dòng)結(jié)束。缺省值是20。 以上屬性在實(shí)際應(yīng)用中作用不大,而且基本上不需要怎么修改,這幾個(gè)屬性也沒什么特殊的地方。 ⒊Session對(duì)象的方法 Contents.Remove("變量名"): 從Session.contents集合中刪除指定的變量 Contents.Removeall() : 刪除Session.contents集合中的所有變量 Abandon() : 結(jié)束當(dāng)前用戶會(huì)話并且撤消當(dāng)前Session對(duì)象。 Session對(duì)象的Contents.Remove("變量名")和Contents.Removeall()方法與Application對(duì)象的基本上沒什么區(qū)別,為幫助理解,大家可以參照上面的例子將Application改為Session。這里要說明一下的是Contents.Removeall()和Abandon()的區(qū)別,執(zhí)行這兩個(gè)方法都會(huì)釋放當(dāng)前 用戶會(huì)話的所有Session變量,不同的是Contents.Removeall()單純地釋放Session變量的值而不終止當(dāng)前的會(huì)話,而Abandon()除了釋放Session變量外還會(huì)終止會(huì)話引發(fā)Session_OnEnd事件,希望大家注意兩者的區(qū)別。 ⒋Session對(duì)象的事件 OnStart: 當(dāng)ASP用戶會(huì)話產(chǎn)生時(shí)觸發(fā),一旦有任一用戶對(duì)本服務(wù)器請(qǐng)求任一頁(yè)面即產(chǎn)生該事件。 OnEnd : 當(dāng)ASP用戶會(huì)話結(jié)束時(shí)觸發(fā),當(dāng)使用Abandon()方法或超時(shí)也會(huì)觸發(fā)該事件。 這兩個(gè)事件和Application的OnStart、OnEnd事件一樣,也是必須放在Global.asa文件里,下 面就重點(diǎn)和大家研究一下這四個(gè)事件的使用。 三、Global.asa ASP的Application和Session對(duì)象體現(xiàn)了其他ASP內(nèi)置對(duì)象所沒有的特征--事件。每一個(gè)訪客訪問服務(wù)器時(shí)都會(huì)觸發(fā)一個(gè)OnStart事件(第一個(gè)訪客會(huì)同時(shí)觸發(fā)Application和Session的OnStart事件,但Application先于Session),每個(gè)訪客的會(huì)話結(jié)束時(shí)都會(huì)觸發(fā)一個(gè)OnEnd事件(最后一個(gè)訪客會(huì)話結(jié)束時(shí)會(huì)同時(shí)觸發(fā)Application和Session的OnEnd事件,但Session先于Application)。 OnStart和OnEnd這兩個(gè)事件一般應(yīng)用在虛擬社區(qū)中統(tǒng)計(jì)在線人數(shù)、修改用戶的在線離線狀態(tài)等。要具體定義這兩個(gè)事件,需要將代碼寫在Global.asa文件,并將該文件放在站點(diǎn)的根目錄下(缺省是Inetpubwwwroot)。另外,Application和Session對(duì)象規(guī)定了在OnEnd事件里除了Application對(duì)象外其他ASP內(nèi)置對(duì)象(Response、Request、Server、Session...)一概不能使用。以下舉一個(gè)虛擬社區(qū)統(tǒng)計(jì)在線人數(shù)的例子來說明如何使用這兩個(gè)事件。 文件說明: global.asa 位于d:Inetpubwwwroot目錄下 default.asp 位于d:Inetpubwwwroot目錄下,虛擬社區(qū)登錄頁(yè)面 login.asp 位于d:Inetpubwwwroot目錄下,用于檢測(cè)用戶輸入的用戶名及密碼 index.asp 位于d:Inetpubwwwroot目錄下,虛擬社區(qū)首頁(yè) bbs.mdb 位于d:Inetpubwwwroot目錄下,存儲(chǔ)用戶信息的數(shù)據(jù)庫(kù) 數(shù)據(jù)庫(kù)(ACCESS)結(jié)構(gòu): ===bbs表=== id 用戶ID,長(zhǎng)整型 name 用戶名,文本型 code 密碼,文本型 online 在線狀態(tài),是/否 ===global.asa=== 。約 cript LANGUAGE="VBs cript" RUNAT="Server"> Sub Application_OnStart application("online")=0 End Sub sub Application_OnEnd nd Sub Sub Session_OnStart End Sub Sub Session_OnEnd if session.contents("pass") then &#39;&#39;&#39;&#39;判斷是否為登錄用戶的Session_OnEnd application.lock application("online")=application("online")-1 application.unlock end if End Sub 。/s cript> ===login.asp=== ......&#39;&#39;&#39;&#39;密碼驗(yàn)證,連接數(shù)據(jù)庫(kù),檢測(cè)用戶輸入的用戶名及密碼是否正確 if 密碼驗(yàn)證通過 then session("name")=rs("name") session("id")=rs("id") session("pass")=true else rs.close conn.close response.write "密碼錯(cuò)誤!" response.end end if application.lock application("online")=application("online")+1 conn.Execute ("update bbs set online=1 where id="&session("id"))&#39;&#39;&#39;&#39;將用戶的狀態(tài)設(shè)為在線 application.unlock rs.close conn.close response.redirect "index.asp" &#39;&#39;&#39;&#39;初始化數(shù)據(jù)后跳轉(zhuǎn)到社區(qū)首頁(yè) =========== 在本例中,用application("online")變量記錄已經(jīng)登錄社區(qū)的在線人數(shù),因?yàn)橐坏┯杏脩粼L問服務(wù)器而不管用戶是否登錄,都會(huì)產(chǎn)生OnStart事件,所以不能在OnStart事件里使Applicaiton("online")加一。因?yàn)椴还苁欠袷堑卿浻脩舻臅?huì)話結(jié)束都會(huì)產(chǎn)生OnEnd事件(假如有訪客訪問了服務(wù)器但并不登錄社區(qū),他的會(huì)話結(jié)束后也會(huì)產(chǎn)生OnEnd事件),所以在Session_OnEnd事件里用了句if語句來判斷是否為已登錄用戶的OnEnd事件,如果是才將在線人數(shù)減一。 這只是一個(gè)統(tǒng)計(jì)在線人數(shù)的簡(jiǎn)單例子,對(duì)于一個(gè)完整的虛擬社區(qū)來說,僅僅統(tǒng)計(jì)有多少人在線是不夠的,在本例中數(shù)據(jù)庫(kù)里有個(gè)online字段是用來記錄用戶的在線狀態(tài),用戶登錄的時(shí)候,在login.asp里將online設(shè)為1,但用戶離線時(shí)并沒有將online設(shè)為0,要完善它,就要修改一下Session_OnEnd事件,在該事件里將online設(shè)為0。 ===global.sas=== 。約 cript LANGUAGE="VBs cript" RUNAT="Server"> Sub Application_OnStart application("online")=0 set application("conn")=Server.CreateObject("ADODB.Connection") application("db")=Server.MapPath("bs.mdb") &#39;&#39;&#39;&#39;此處最好使用絕對(duì)路徑bs.mdb,下文有詳細(xì)介紹 End Sub sub Application_OnEnd set application("conn")=nothing End Sub Sub Session_OnStart End Sub Sub Session_OnEnd if session.contents("pass") then &#39;&#39;&#39;&#39;判斷是否為登錄用戶的Session_OnEnd application("con").open ="driver={Microsoft Access Driver (*.mdb)};dbq="&application("db") application.lock application("online")=application("online")-1 application("con").Execute ("update friends set online=0 where id="&session.contents("id")) application.unlock application("con").close end if End Sub 。迹痵 cript> ============== 至此,完整的代碼已經(jīng)完成了。因?yàn)樵贏pplication和Session的OnEnd事件里不能使用Server對(duì)象,所以要將數(shù)據(jù)庫(kù)的連接及數(shù)據(jù)庫(kù)在服務(wù)器上的物理地址(d:inetpubwwwrootbs.mdb)存儲(chǔ)在application變量中,并在Application_OnStart事件中預(yù)先處理。同理,在Session_OnEnd事件中不能用session("pass")來代替session.contents("pass")(以下有詳盡說明)。 四、本文實(shí)例中值得引起注意的兩點(diǎn) 、監(jiān)nEnd事件里的session.contents 剛開始接觸global.asa的朋友經(jīng)常會(huì)將上面Session_OnEnd事件里的 if session.contents("pass") then 寫成 if session("pass") then, 這樣的話系統(tǒng)不會(huì)提示錯(cuò)誤,但是永遠(yuǎn)也不會(huì)執(zhí)行then后面的內(nèi)容,這是因?yàn)樵贠nEnd事件里禁止使用Session對(duì)象,但是可以用Session對(duì)象的集合來調(diào)用session變量。因?yàn)镮IS并沒提示任何錯(cuò)誤信息,所以筆者曾經(jīng)在這上面浪費(fèi)了很多時(shí)間。在此希望大家引以為鑒! 、睞pplication_OnStart事件里用Server.MapPath獲取數(shù)據(jù)庫(kù)的物理地址時(shí)應(yīng)使用絕對(duì)地址為了說明這個(gè)問題,大家可以做個(gè)實(shí)驗(yàn):將上面Application_OnStart事件里的 application("db")=Server.MapPath("bs.mdb")改為: application("db")=Server.MapPath("bbs.mdb") 然后在d:inetpubwwwroot目錄下建立一個(gè)test子目錄,寫一個(gè)temp.asp在test目錄里。 ====test.asp==== <%response.write application("db")%> ================ 再將temp.asp拷貝一份放在根目錄下(d:inetpubwwwroot)。用記事本打開global.asa,再打開兩個(gè)瀏覽器,瀏覽器A輸入地址http://localhost/temp.asp,按回車,將在瀏覽器上輸出: d:inetpubwwwrootbs.mdb 然后,在記事本的窗口上點(diǎn)"文件"菜單,選"保存"(使global.asa的修改時(shí)間改變,從而使IIS重啟動(dòng)所有服務(wù)),再在瀏覽器B輸入地址http://localhost/test/temp.asp,按回車,在瀏覽器上輸出的是: d:inetpubwwwroot estbs.mdb global.asa文件雖然是放在站點(diǎn)根目錄下,但是如果在server.mappath中使用的是相對(duì)地址,而觸發(fā)Application_OnStart事件的用戶第一次訪問的頁(yè)面又不是屬于根目錄的話,得到數(shù)據(jù)庫(kù)的物理地址將不會(huì)是期望的結(jié)果,希望大家要特別小心。 類別:Web | 編輯 | 刪除 | 評(píng)論(0) | 瀏覽(0) 全面解析ASP Server對(duì)象 2007-07-27 12:40 Server對(duì)象提供對(duì)服務(wù)器上訪問的方法和屬性.大多數(shù)方法和屬性是作為實(shí)用程序的功能提供的。 語法: Server.property|method 屬性(property) Server對(duì)象只有一個(gè)屬性:s criptTimeout 程序能夠運(yùn)行的最大時(shí)間 方法(Methods) CreateObject 建立一個(gè)對(duì)象實(shí)例. Execute 執(zhí)行一個(gè)asp文件 GetLastError 返回一個(gè)錯(cuò)誤代碼 HTMLEncode 對(duì)指定的HTML代碼進(jìn)行轉(zhuǎn)換. MapPath 將一個(gè)相對(duì)路徑轉(zhuǎn)化為一個(gè)絕對(duì)路徑. Transfer 將當(dāng)前的所有狀態(tài)信息發(fā)送給另一個(gè)asp文件 URLEncode 以URL形式轉(zhuǎn)化指定的代碼,包括空格 Server對(duì)象的方法詳細(xì)說明 CreateObject 語法 Server.CreateObject( progID ) 參數(shù) progID 指定要?jiǎng)?chuàng)建的組件名稱,格式如下: [Vendor.]Component[.Version]. 要點(diǎn): 一般來說,用由Server.CreateObject方法創(chuàng)建的對(duì)象擁有頁(yè)面的范圍.這就說,當(dāng)這頁(yè)的asp程序執(zhí)行完后,這種對(duì)象會(huì)自動(dòng)地消失. 為了創(chuàng)建一個(gè)擁有Session或Application范圍的對(duì)象,你可以在Global.asa文件中使用 Execute Execute 方法呼叫一個(gè)ASP文件并且執(zhí)行它就像這個(gè)呼叫的ASP文件存在這個(gè)ASP文件中一樣。這很像許多語言中的類的調(diào)用。 語法 Server.Execute( Path ) 參數(shù) Path 指定執(zhí)行的那個(gè)asp文件的路徑。如是它是一個(gè)絕對(duì)路徑,那么它必須是一個(gè)在這個(gè)ASP應(yīng)用程序相同的地方(目錄)。 講解 Server.Execute 方法提供了一種將一個(gè)復(fù)雜ASP應(yīng)用程序分化為小塊單位來執(zhí)行的方法。通過這種方法,你能夠建一個(gè)ASP圖書館,你能夠隨便在你需要時(shí)調(diào)用你圖書館中的ASP文件。這個(gè)就有點(diǎn)像SSI了!嘿嘿! 當(dāng)IIS根據(jù)指定的ASP文件路徑執(zhí)行完這個(gè)ASP文件之后,就會(huì)自動(dòng)返回以前的ASP文件。這個(gè)剛剛執(zhí)行完的ASP文件有可能改變了HTTP head.但是和其它的ASP文件一樣,當(dāng)程序試圖改變http head時(shí),就會(huì)報(bào)錯(cuò)! 這個(gè)path參數(shù)可以包括一個(gè)詢問信息。 如果在被呼叫和呼叫的ASP文件中都含有相同的子函數(shù),那么這些子函數(shù)只在本ASP文件中起作用。舉個(gè)例子,如果在下面的ASP1和ASP2兩個(gè)文件中都含有放棄程序的子函數(shù)。首先ASP1呼叫ASP2,那么ASP2中的的OnTransactionAbort開始執(zhí)行,當(dāng)ASP2執(zhí)行完畢,ASP1中的OnTransactionAbort才開始執(zhí)行。 ASP1: < %@ Transaction= Required %> < % Server.Execute ("Page22.asp") Sub OnTransactionAbort Sub OnTransactionCommit %> Asp2.asp: < %@ Transaction=Required Sub OnTransactionAbort Sub OnTransactionCommit %> Example ASP1 < % Response.Write("I am going to execute ASP2 ") Server.Execute("/myasps/asp2.asp") %> ASP2 < % Response.Write("Here I am")%> GetLastError GetLastError 方法返回一個(gè)ASPError Object 來描述一個(gè)錯(cuò)誤信息.這個(gè)方法只適用于在asp文件發(fā)送任何內(nèi)容給用戶機(jī)之前. 語法 Server.GetLastError () 要點(diǎn) 如果一個(gè)500;100 用戶錯(cuò)誤已經(jīng)被定義在一個(gè)asp應(yīng)用程序中,它是指的一個(gè)以.asp為后綴的文件。這種情況下,在這個(gè)程序運(yùn)行時(shí)當(dāng)一個(gè)錯(cuò)誤發(fā)生時(shí),服務(wù)器就會(huì)自動(dòng)的以Server.Transfer這種方式傳送到這個(gè)正在執(zhí)行的ASP頁(yè)面。ASP應(yīng)用程序就會(huì)將有效的處理這個(gè)錯(cuò)誤。另外,這個(gè)ASPError Object一定要有效,這樣你就能夠看到服務(wù)器提供給你的錯(cuò)誤信息來改這個(gè)文件了! 一般的Web Site 都是根據(jù)文件iishelpcommon500-100.asp來構(gòu)造的。你能夠用它來執(zhí)行一個(gè)asp錯(cuò)誤,當(dāng)然你能夠自己定義了!。如果你想改變?yōu)榱硗庖粋(gè)asp文件的來執(zhí)行這些用戶錯(cuò)誤。那么你可以用IIS中的snap-in. 注意:當(dāng)IIS發(fā)現(xiàn)了一個(gè)asp文件或者global.asa文件中的一個(gè)錯(cuò)誤,那么一個(gè)500;100用戶錯(cuò)誤產(chǎn)生。以下的程序?qū)⒉荒軋?zhí)行! Example 下面的三個(gè)例子證明不同的錯(cuò)誤會(huì)產(chǎn)生的用戶錯(cuò)誤。三個(gè)錯(cuò)誤是: 編譯錯(cuò)誤 運(yùn)行錯(cuò)誤 邏輯錯(cuò)誤 第一個(gè)例子證明了一個(gè)編譯錯(cuò)誤,就是當(dāng)IIS試圖包含一個(gè)文件時(shí)產(chǎn)生的。這個(gè)錯(cuò)誤會(huì)產(chǎn)生是因?yàn)樵谶@個(gè)包含文件中沒有定義所需的參數(shù)。第二個(gè)例子顯示的是一個(gè)運(yùn)行錯(cuò)誤,這個(gè)程序中斷的原因是程序中沒有“next".第三個(gè)例子顯示的是一個(gè)邏輯錯(cuò)誤,因?yàn)檫@個(gè)程序試圖除以一個(gè)0. 不行啦! Example 1 < % response.write "hello" %> Example 2 < % dim I for i=1 to 1 nxt %> Example 3 < % dim i,j dim sum sum=0 j=0 for i=1 to 10 sum=sum+1 next sum=sum/j %> HTMLEncode HTMLEncode方法對(duì)指定的字符串進(jìn)行HTML編碼. 語法 Server.HTMLEncode( string ) 參數(shù) string 要進(jìn)行編碼的字符 例子 下面的程序: 。 %= Server.HTMLEncode("The paragraph tag: ") %> 輸出為: The paragraph tag: 注意 程序執(zhí)行后在瀏覽器中看到的是: The paragraph tag: 但是如果你用"查看源文件"看一下的話,源代碼就不是了. MapPath MapPath 方法將相對(duì)路徑轉(zhuǎn)化為服務(wù)器上的物理路徑 語法 Server.MapPath( Path ) 參數(shù) Path 相對(duì)路徑。這個(gè)路徑是以"/"或""開頭的路徑,如果這個(gè)路徑中沒有"",那么MapPath方法就會(huì)返回以當(dāng)前目錄為基礎(chǔ)的路徑。 講解 MapPath 方法不能檢查路徑在這個(gè)服務(wù)器下是否存在。因?yàn)?MapPath 轉(zhuǎn)化路徑時(shí)是不管這個(gè)路徑是否在這個(gè)服務(wù)器下存在的。 你能夠用它來將一個(gè)相對(duì)路徑轉(zhuǎn)化為一個(gè)物理路徑,然后再在這個(gè)路徑下進(jìn)行各種操作。 Example 在下面的例子中,data.txt文件存在 C:InetpubWwwroots cript 目錄中,而且一個(gè)test.asp 文件包括下面的代碼。C:InetpubWwwroot 是該服務(wù)器的主目錄 。 下面的例子中,首先用環(huán)境變量"PATH_INFO"獲得當(dāng)前文件的物理路徑。 下面是s cript 代碼: < %= server.mappath(Request.ServerVariables("PATH_INFO"))%> 顯示為: c:inetpubwwwroots cript est.asp 因?yàn)橄旅娴睦又新窂絽?shù)沒有以"/"開頭,所以它是以當(dāng)前目錄轉(zhuǎn)化的,asp文件是放在C:InetpubWwwroots cript中的.以下是 s cripts的內(nèi)容: < %= server.mappath("data.txt")%> 。 %= server.mappath("s cript/data.txt")%> 顯示為: c:inetpubwwwroots criptdata.txt c:inetpubwwwroots cripts criptdata.txt 以下的兩個(gè)例子是以"/"開頭的.以下是s cripts的內(nèi)容: < %= server.mappath("s cript")%> 顯示為: c:inetpubwwwroots criptdata.txt c:inetpubwwwroots cript 直接用"/"或""就會(huì)得到服務(wù)器的主目錄: 。 %= server.mappath("")%> 顯示為: c:inetpubwwwroot c:inetpubwwwroot Transfer transfer 方法會(huì)把一個(gè)正在執(zhí)行的asp文件的所有信息傳給另外一人asp文件。 語法 Server.Transfer (path) 參數(shù) Path 將要接收信息的asp文件的位置。 要點(diǎn) 當(dāng)你調(diào)用Server.Transfer時(shí),所有內(nèi)建對(duì)象的狀態(tài)信息都會(huì)包含在這次傳送之中。這就是說,所有在保存在Session或Application中的信息都會(huì)被傳送,而且,所有當(dāng)前請(qǐng)求的信息都會(huì)被接收信息的asp文件所接受。 Example 下面的例子示范了從一個(gè)asp文件傳送到另一個(gè)asp文件例子! ASP1 < % Dim sessvar1 Response.Write Session.SessionID Response.Write ("") Response.Write("I am going to ASP2 ") Server. Transfer ("/Myasps/ASP2.asp") % > ASP2 < % Response.Write Session.SessionID %> URLEncode URLEncode 方法可以將指定字符串進(jìn)行URL編碼。 語法 Server.URLEncode( string ) 參數(shù) string 指定要轉(zhuǎn)化的字符串 Example 下面是代碼: 。 % Respones.Write(Server.URLEncode("http://www.microsoft.com")) % > 顯示為: http%3A%2F%2Fwww%2Emicrosoft%2Ecom 屬性:s criptTimeout s criptTimeout 屬性規(guī)定了程序的最大運(yùn)行時(shí)間。 語法 Server.s criptTimeout = NumSeconds 參數(shù) NumSeconds 規(guī)定了程序的最大的運(yùn)行時(shí)間(以秒計(jì)算)。缺省值是90秒 Remarks 一個(gè)缺省的Scritpt Timeout的值會(huì)能過ASPs criptTimeOUT屬性來設(shè)置在Web sertvic 或 Web server上。在程序中,s criptTimeout屬性的值不能小于這個(gè)缺省值。舉個(gè)例子吧,如果NumSeconds我們?cè)O(shè)置為10秒,而缺省值為90秒,那么程序就會(huì)中止在90秒以后,而不是10秒以后的。同樣,如果我們?cè)O(shè)置s criptTimeout的值為100秒,那么,程序就會(huì)在100秒之后中止,而不是90秒。 Example 下面的例了中程序?qū)⒈辉O(shè)置為100秒后自動(dòng)中止。 。 % Server.s criptTimeout = 100 %> 下面的例子中將重新得到s criptTimeout的值,然后把它存在Timout變量中 。 % TimeOut = Server.s criptTimeout %> ASP內(nèi)置對(duì)象Request的ServerVariables集合列表 Request.ServerVariables("Url") 返回服務(wù)器地址 Request.ServerVariables("Path_Info") 客戶端提供的路徑信息 Request.ServerVariables("Appl_Physical_Path") 與應(yīng)用程序元數(shù)據(jù)庫(kù)路徑相應(yīng)的物理路徑 Request.ServerVariables("Path_Translated") 通過由虛擬至物理的映射后得到的路徑 Request.ServerVariables("s cript_Name") 執(zhí)行腳本的名稱 Request.ServerVariables("Query_String") 查詢字符串內(nèi)容 Request.ServerVariables("Http_Referer") 請(qǐng)求的字符串內(nèi)容 Request.ServerVariables("Server_Port") 接受請(qǐng)求的服務(wù)器端口號(hào) Request.ServerVariables("Remote_Addr") 發(fā)出請(qǐng)求的遠(yuǎn)程主機(jī)的IP地址 Request.ServerVariables("Remote_Host") 發(fā)出請(qǐng)求的遠(yuǎn)程主機(jī)名稱 Request.ServerVariables("Local_Addr") 返回接受請(qǐng)求的服務(wù)器地址 Request.ServerVariables("Http_Host") 返回服務(wù)器地址 Request.ServerVariables("Server_Name") 服務(wù)器的主機(jī)名、DNS地址或IP地址 Request.ServerVariables("Request_Method") 提出請(qǐng)求的方法比如GET、HEAD、POST等等 Request.ServerVariables("Server_Port_Secure") 如果接受請(qǐng)求的服務(wù)器端口為安全端口時(shí),則為1,否則為0 Request.ServerVariables("Server_Protocol") 服務(wù)器使用的協(xié)議的名稱和版本 Request.ServerVariables("Server_Software") 應(yīng)答請(qǐng)求并運(yùn)行網(wǎng)關(guān)的服務(wù)器軟件的名稱和版本 Request.ServerVariables("All_Http") 客戶端發(fā)送的所有HTTP標(biāo)頭,前綴HTTP_ Request.ServerVariables("All_Raw") 客戶端發(fā)送的所有HTTP標(biāo)頭,其結(jié)果和客戶端發(fā)送時(shí)一樣,沒有前綴HTTP_ Request.ServerVariables("Appl_MD_Path") 應(yīng)用程序的元數(shù)據(jù)庫(kù)路徑 Request.ServerVariables("Content_Length") 客戶端發(fā)出內(nèi)容的長(zhǎng)度 Request.ServerVariables("Https") 如果請(qǐng)求穿過安全通道(SSL),則返回ON如果請(qǐng)求來自非安全通道,則返回OFF Request.ServerVariables("Instance_ID") IIS實(shí)例的ID號(hào) Request.ServerVariables("Instance_Meta_Path") 響應(yīng)請(qǐng)求的IIS實(shí)例的元數(shù)據(jù)庫(kù)路徑 Request.ServerVariables("Http_Accept_Encoding") 返回內(nèi)容如:gzip,deflate Request.ServerVariables("Http_Accept_Language") 返回內(nèi)容如:en-us Request.ServerVariables("Http_Connection") 返回內(nèi)容:Keep-Alive Request.ServerVariables("Http_Cookie") Request.ServerVariables("Http_User_Agent") 返回內(nèi)容:Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1) Request.ServerVariables("Https_Keysize") 安全套接字層連接關(guān)鍵字的位數(shù),如128 Request.ServerVariables("Https_Secretkeysize") 服務(wù)器驗(yàn)證私人關(guān)鍵字的位數(shù)如1024 Request.ServerVariables("Https_Server_Issuer") 服務(wù)器證書的發(fā)行者字段 Request.ServerVariables("Https_Server_Subject") 服務(wù)器證書的主題字段 Request.ServerVariables("Auth_Password") 當(dāng)使用基本驗(yàn)證模式時(shí),客戶在密碼對(duì)話框中輸入的密碼 Request.ServerVariables("Auth_Type") 是用戶訪問受保護(hù)的腳本時(shí),服務(wù)器用於檢驗(yàn)用戶的驗(yàn)證方法 Request.ServerVariables("Auth_User") 代證的用戶名 Request.ServerVariables("Cert_Cookie") 唯一的客戶證書ID號(hào) Request.ServerVariables("Cert_Flag") 客戶證書標(biāo)志,如有客戶端證書,則bit0為0如果客戶端證書驗(yàn)證無效,bit1被設(shè)置為1 Request.ServerVariables("Cert_Issuer") 用戶證書中的發(fā)行者字段 Request.ServerVariables("Cert_Keysize") 安全套接字層連接關(guān)鍵字的位數(shù),如128 Request.ServerVariables("Cert_Secretkeysize") 服務(wù)器驗(yàn)證私人關(guān)鍵字的位數(shù)如1024 Request.ServerVariables("Cert_Serialnumber") 客戶證書的序列號(hào)字段 Request.ServerVariables("Cert_Server_Issuer") 服務(wù)器證書的發(fā)行者字段 Request.ServerVariables("Cert_Server_Subject") 服務(wù)器證書的主題字段 Request.ServerVariables("Cert_Subject") 客戶端證書的主題字段 Request.ServerVariables("Content_Type") 客戶發(fā)送的form內(nèi)容或HTTPPUT的數(shù)據(jù)類型
移動(dòng)通信網(wǎng) | 通信人才網(wǎng) | 更新日志 | 團(tuán)隊(duì)博客 | 免責(zé)聲明 | 關(guān)于詞典 | 幫助