版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
ASP程序設(shè)計(jì)實(shí)務(wù)
7.1數(shù)據(jù)格式化
7.1.1格式化日期數(shù)據(jù)格式:FormatDateTime(Date[,NamedFormat])
7.1.2格式化數(shù)值數(shù)據(jù)
格式:
FormatNumber(expression[,NumDigitsAfterDecimal[,IncludeLeadingDigit
[,UseParensForNegativeNumbers[,GroupDigits]]]])
7.1.3設(shè)置貨幣值格式
格式:
FormatCurrency(expression[,NumDigitsAfterDecimal[,IncludeLeadingDigit
[,UseParensForNegativeNumbers[,GroupDigits]]]])
7.1.4設(shè)置百分?jǐn)?shù)格式
格式:
FormatPercent(expression[,NumDigitsAfterDecimal[,IncludeLeadingDigit
[,UseParensForNegativeNumbers[,GroupDigits]]]])7.2包含文件
7.2.1包含指令#include格式:<!--#includevirtual|file="filename"-->說明:參數(shù)
virtual或者
file表示包含文件的路徑類型,filename
表示被包含文件的路徑和文件名。1.使用Virtual關(guān)鍵字示例:<!--#includevirtual="/myapp/footer.inc"-->2.使用File關(guān)鍵字示例:<!--#includefile="headers\header1.inc"-->7.2.2包含文件的使用
1.使用包含文件的優(yōu)點(diǎn)在開發(fā)Web應(yīng)用程序時(shí),將各個(gè)頁(yè)面中功能類似的程序或代碼段作為包含文件加以保存,待需要時(shí)再方便地將其包含到當(dāng)前的頁(yè)面中來,不僅可以做到因代碼重用而大大提高編程效率,還可以使得各個(gè)頁(yè)面外觀一致、風(fēng)格統(tǒng)一。例如,可將應(yīng)用程序中大多數(shù)網(wǎng)頁(yè)上都有的菜單或者導(dǎo)航條腳本代碼保存為包含文件,并將其插入到所需的有關(guān)網(wǎng)頁(yè)中。2.使用包含文件的注意事項(xiàng)l
一個(gè)ASP文件可以包含若干個(gè)不同的文件,也可以多次包含同一文件。l
被包含的文件還可以再包含其他的文件,只要
#include指令不導(dǎo)致循環(huán)。l
一個(gè)文件不能包含其自身。系統(tǒng)將檢測(cè)出這種循環(huán)或嵌套錯(cuò)誤,并停止處理所請(qǐng)求的ASP文件。l
系統(tǒng)在執(zhí)行腳本命令之前將包含文件的內(nèi)容插入進(jìn)來。因此,不能使用腳本命令建立被包含的文件名。3.通過<SCRIPT>標(biāo)記包含文件示例:
<SCRIPTLANGUAGE="VBScript"RUNAT=SERVERSRC="Utils\datasrt.inc"></SCRIPT>7.3管理會(huì)話
開發(fā)一個(gè)成功的
Web應(yīng)用程序所面臨的挑戰(zhàn)之一是:當(dāng)客戶從應(yīng)用程序中的某一頁(yè)面轉(zhuǎn)到另一頁(yè)面時(shí),如何在整個(gè)訪問或會(huì)話期間維護(hù)該客戶的信息。HTTP是一種無(wú)狀態(tài)協(xié)議,即站點(diǎn)的Web服務(wù)器將對(duì)網(wǎng)頁(yè)的每個(gè)
HTTP請(qǐng)求都當(dāng)作獨(dú)立的請(qǐng)求,服務(wù)器不保留與以前的請(qǐng)求有關(guān)的任何信息。ASP針對(duì)管理會(huì)話信息時(shí)所遇到的問題提供了特有的解決方案。使用
ASP的Session對(duì)象以及服務(wù)器生成的特定客戶ID,使得開發(fā)者可以創(chuàng)建更智能的、用于標(biāo)識(shí)每個(gè)來訪客戶的應(yīng)用程序,并收集應(yīng)用程序用來跟蹤客戶選擇項(xiàng)的信息。7.3.1啟動(dòng)和結(jié)束會(huì)話
會(huì)話有以下幾種開始方式:l
新客戶對(duì)應(yīng)用程序中的某個(gè)ASP文件發(fā)出請(qǐng)求,并且此應(yīng)用程序的
Global.asa文件中包含
Session_OnStart過程。l
客戶在
Session對(duì)象中保存了一個(gè)值。l
如果服務(wù)器接收到的請(qǐng)求中沒有包含有效的
SessionIDCookie,就將自動(dòng)啟動(dòng)新的會(huì)話。說明:如果在某一指定時(shí)間內(nèi),客戶沒有請(qǐng)求或刷新應(yīng)用程序中的網(wǎng)頁(yè),會(huì)話就將自動(dòng)結(jié)束。7.3.2SessionIDCookies
當(dāng)客戶第一次請(qǐng)求特定應(yīng)用程序內(nèi)的ASP文件時(shí),Web服務(wù)器將為該客戶生成一個(gè)SessionID。這是通過復(fù)雜算法產(chǎn)生的一個(gè)數(shù)值,SessionID唯一標(biāo)識(shí)每個(gè)客戶的會(huì)話。新會(huì)話開始時(shí),Web服務(wù)器將這個(gè)SessionID作為Cookie存儲(chǔ)到客戶端。
7.3.3存儲(chǔ)或刪除Session對(duì)象數(shù)據(jù)
1.存儲(chǔ)Session對(duì)象數(shù)據(jù)示例:<%Session("FirstName")="Jeff"Session("LastName")="Smith"%>
2.使用Session對(duì)象數(shù)據(jù)示例:Welcome<%=Session("FirstName")%>
3.刪除單個(gè)Session對(duì)象數(shù)據(jù)示例:<%IfSession.Contents("Purchamnt")<=75ThenSession.Contents.Remove("Discount")EndIf%>
4.刪除所有Session對(duì)象數(shù)據(jù)示例:Session.Content.RemoveAll()7.3.4使用Cookie
1.設(shè)置Cookie2.獲取Cookies3.設(shè)置Cookie路徑4.保留使用Cookies的狀態(tài)7.3.5無(wú)會(huì)話ASP網(wǎng)頁(yè)
無(wú)會(huì)話ASP網(wǎng)頁(yè)可以消除潛在的、非常耗時(shí)的會(huì)話活動(dòng),從而提高Web服務(wù)器的響應(yīng)能力。通過ASP腳本代碼可以創(chuàng)建“無(wú)會(huì)話”網(wǎng)頁(yè)。可以使用這種無(wú)會(huì)話網(wǎng)頁(yè)推遲創(chuàng)建客戶的會(huì)話跟蹤,直到需要時(shí)才創(chuàng)建。無(wú)會(huì)話網(wǎng)頁(yè)將不執(zhí)行下列任務(wù):l
執(zhí)行Session_OnStart過程。l
發(fā)送sessionIDCookie。l
創(chuàng)建Session對(duì)象。l
訪問由
<OBJECT>標(biāo)記創(chuàng)建的內(nèi)置Session對(duì)象或會(huì)話范圍對(duì)象。l
與其他會(huì)話請(qǐng)求連接執(zhí)行。
可使用下列命令將ASP頁(yè)面配置為無(wú)會(huì)話網(wǎng)頁(yè):<%@EnableSessionState=False%>7.4處理事務(wù)7.4.1關(guān)于事務(wù)所謂事務(wù)(Transaction)是一種服務(wù)器端的操作,無(wú)論此操作包含多少步驟(例如訂購(gòu)、貨物調(diào)撥以及付帳等),它都應(yīng)該是要么全部成功,要么全部失敗。網(wǎng)絡(luò)應(yīng)用程序開發(fā)者可以創(chuàng)建在事務(wù)范圍內(nèi)運(yùn)行的服務(wù)器端腳本,這樣,如果腳本的某個(gè)部分出錯(cuò),整個(gè)事務(wù)都將中止。事務(wù)處理方式主要用于保證數(shù)據(jù)庫(kù)更新的可靠性。當(dāng)對(duì)數(shù)據(jù)庫(kù)進(jìn)行許多相關(guān)聯(lián)的更改或同時(shí)更新多個(gè)數(shù)據(jù)庫(kù)時(shí),必須確保所有更改都被準(zhǔn)確執(zhí)行。假如發(fā)生任何更改的失敗,則必須恢復(fù)到對(duì)數(shù)據(jù)庫(kù)操作前的原始狀態(tài)。7.4.2在網(wǎng)頁(yè)中使用事務(wù)
1.聲明事務(wù)性網(wǎng)頁(yè)2.使用ADO事務(wù)3.使用DBMS事務(wù)7.4.3編寫事務(wù)事件
就腳本程序本身而言,是無(wú)法確定某個(gè)事務(wù)是成功還是失敗的。但是,開發(fā)者可以利用ObjectContext對(duì)象提供的OnTransactionCommit和
OnTransactionAbort事件來編寫在事務(wù)提交或中止時(shí)可供調(diào)用的事件過程。7.4.4聲明完成或放棄事務(wù)ASP的ObjectContext對(duì)象提供有SetAbort方法和SetComplete方法,SetAbort方法可用來宣告放棄當(dāng)前的事務(wù),因而系統(tǒng)不再對(duì)數(shù)據(jù)源進(jìn)行更新;SetComplete方法則用來宣告當(dāng)前的事務(wù)已完成,從而保存對(duì)數(shù)據(jù)源的更新。7.4.5事務(wù)處理的其他事項(xiàng)
1.事務(wù)組件的注冊(cè)2.對(duì)象作用域3.隊(duì)列事務(wù)7.5錯(cuò)誤類型與出錯(cuò)信息
7.5.1錯(cuò)誤類型1.語(yǔ)法錯(cuò)誤語(yǔ)法錯(cuò)誤是一種經(jīng)常遇到的錯(cuò)誤,它是由于腳本語(yǔ)句的語(yǔ)法不正確引起的。例如,命令拼寫錯(cuò)誤、空格或標(biāo)點(diǎn)符號(hào)錯(cuò)誤,以及傳遞給函數(shù)的參數(shù)數(shù)目不對(duì)等都可能產(chǎn)生此類錯(cuò)誤。如果語(yǔ)法不正確,腳本代碼便將無(wú)法執(zhí)行。2.運(yùn)行時(shí)錯(cuò)誤運(yùn)行時(shí)錯(cuò)誤發(fā)生在腳本開始執(zhí)行之后,它是由于腳本命令試圖執(zhí)行不可能的操作而引起的一類錯(cuò)誤。例如以0作為除數(shù)(這是一種非法的數(shù)學(xué)運(yùn)算),就將產(chǎn)生運(yùn)行時(shí)錯(cuò)誤。
3.邏輯錯(cuò)誤邏輯錯(cuò)誤是最難以發(fā)現(xiàn)的錯(cuò)誤,它是由于鍵入錯(cuò)誤或程序邏輯上的缺陷引起的。邏輯錯(cuò)誤的特點(diǎn)是:腳本能夠運(yùn)行,但產(chǎn)生的結(jié)果不正確。例如,如果服務(wù)器端腳本需要對(duì)列表中的值進(jìn)行排序,但在腳本中本該使用小于符號(hào)(<)的地方錯(cuò)誤地使用了大于符號(hào)(>),從而導(dǎo)致排序結(jié)果不正確。
7.5.2出錯(cuò)信息
1.出錯(cuò)示例:
<%OptionExplicitStrWelcome="歡迎來到新世紀(jì)網(wǎng)站!"Response.WriteStrWelcome%>2.常見HTTP錯(cuò)誤:l
HTTP錯(cuò)誤
400 表示請(qǐng)求無(wú)效l
HTTP錯(cuò)誤
403 表示禁止訪問l
HTTP錯(cuò)誤
404-1 表示找不到站點(diǎn)l
HTTP錯(cuò)誤
405 表示禁止訪問資源l
HTTP錯(cuò)誤
500 表示內(nèi)部服務(wù)器錯(cuò)誤l
HTTP錯(cuò)誤
500-100 表示腳本出現(xiàn)問題,無(wú)法運(yùn)行。
7.5.3用Err對(duì)象顯示錯(cuò)誤
為了使得腳本程序在出錯(cuò)時(shí)能夠自動(dòng)跳過出錯(cuò)代碼而繼續(xù)執(zhí)行下面的語(yǔ)句,并能夠運(yùn)行后續(xù)的有關(guān)代碼來處理出現(xiàn)的錯(cuò)誤,可以使用MicrosoftVBScript提供的OnErrorResumeNext語(yǔ)句和Err對(duì)象。OnErrorResumeNext語(yǔ)句可以不顧運(yùn)行時(shí)產(chǎn)生的錯(cuò)誤,使程序接著從產(chǎn)生錯(cuò)誤的語(yǔ)句之后繼續(xù)執(zhí)行;而Err對(duì)象則可用來判斷發(fā)生了什么錯(cuò)誤,并從該對(duì)象提供的一系列屬性值獲得各種具體的錯(cuò)誤信息。
示例:<%OptionExplicitOnErrorResumeNextStrWelcome="歡迎來到新世紀(jì)網(wǎng)站!"Response.WriteStrWelcomeIfErr.Number<>0Then Response.Write"程序發(fā)生錯(cuò)誤,已停止執(zhí)行。"&"<br>" Response.Write"錯(cuò)誤代碼:"&Err.Number&"<br>" Response.Write"錯(cuò)誤描述:"&Err.Description&"<br>" Response.Write"錯(cuò)誤對(duì)象或名稱:"&Err.Source&"<br>"EndifResponse.Write"<p><ahref='Default.htm'>[返回首頁(yè)]</a>"%>7.6ASP腳本調(diào)試
MicrosoftDevelopmentEnvironment是一個(gè)強(qiáng)大的調(diào)試工具,可以幫助用戶快速定位錯(cuò)誤,并能使用交互方式測(cè)試服務(wù)器端腳本。使用它可以實(shí)現(xiàn):l
每次運(yùn)行服務(wù)器端腳本的一行語(yǔ)句。l
在執(zhí)行服務(wù)器端腳本期間,打開有關(guān)窗口,監(jiān)視變量、屬性或數(shù)組元素的值。l
在腳本的特定語(yǔ)句行,使用調(diào)試器或腳本命令設(shè)置斷點(diǎn)以暫停執(zhí)行服務(wù)器端腳本。l
跟蹤服務(wù)器端腳本的運(yùn)行過程。7.6.1調(diào)試基礎(chǔ)
1.調(diào)試工具可幫助發(fā)現(xiàn)下列錯(cuò)誤:l
編譯錯(cuò)誤l
運(yùn)行時(shí)錯(cuò)誤l
邏輯錯(cuò)誤2.MicrosoftDevelopmentEnvironment的調(diào)試窗口:l
立即窗口l
監(jiān)視窗口l
局部窗口l
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版初中九年級(jí)上冊(cè)學(xué)案教案 全冊(cè)
- (2)二元一次方程組(B卷)-七年級(jí)數(shù)學(xué)冀教版暑假作業(yè)(含答案)
- 幼兒園國(guó)慶節(jié)主題班會(huì)童心稚禮獻(xiàn)祖國(guó)純真演繹愛國(guó)心課件
- 保育員培訓(xùn)記錄-周、月工作常規(guī)
- 石油行業(yè)環(huán)境會(huì)計(jì)信息披露淺議
- 《1 例 VHL 綜合征腎腫瘤患者的護(hù)理》
- 2021-2022學(xué)年廣東省廣州市海珠區(qū)六年級(jí)(上)期末語(yǔ)文試卷
- 全國(guó)大學(xué)英語(yǔ)四級(jí)考試大綱詞表(英漢默寫版)
- 空間直角坐標(biāo)系學(xué)案 高二上學(xué)期數(shù)學(xué)人教A版(2019)選擇性必修第一冊(cè)
- 細(xì)胞的多樣性和統(tǒng)一性+第1課時(shí) 高一上學(xué)期生物人教版必修1
- 無(wú)鉛噴錫SMT上錫不良的幾種分析思路
- 《充分條件與必要條件》課件1
- 日語(yǔ)自我介紹寫法及例ppt課件
- 月考勤表excel模板
- 通用橫版企業(yè)報(bào)價(jià)單模板
- 圓形分布資料的統(tǒng)計(jì)分布
- 基于MATLAB的滾珠絲杠動(dòng)力學(xué)建模與仿真分析
- 生產(chǎn)能力證明辦理流程生產(chǎn)能力證明辦理
- 勞動(dòng)關(guān)系管理標(biāo)準(zhǔn)流程
- 飼料廠總體試車方案
- 2022年2022年招投標(biāo)法習(xí)題及答案
評(píng)論
0/150
提交評(píng)論