ASP程序設(shè)計(jì)實(shí)務(wù)課件_第1頁(yè)
ASP程序設(shè)計(jì)實(shí)務(wù)課件_第2頁(yè)
ASP程序設(shè)計(jì)實(shí)務(wù)課件_第3頁(yè)
ASP程序設(shè)計(jì)實(shí)務(wù)課件_第4頁(yè)
ASP程序設(shè)計(jì)實(shí)務(wù)課件_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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"-->說(shuō)明:參數(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)在開(kāi)發(fā)Web應(yīng)用程序時(shí),將各個(gè)頁(yè)面中功能類似的程序或代碼段作為包含文件加以保存,待需要時(shí)再方便地將其包含到當(dāng)前的頁(yè)面中來(lái),不僅可以做到因代碼重用而大大提高編程效率,還可以使得各個(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)來(lái)。因此,不能使用腳本命令建立被包含的文件名。3.通過(guò)<SCRIPT>標(biāo)記包含文件示例:

<SCRIPTLANGUAGE="VBScript"RUNAT=SERVERSRC="Utils\datasrt.inc"></SCRIPT>7.3管理會(huì)話

開(kāi)發(fā)一個(gè)成功的

Web應(yīng)用程序所面臨的挑戰(zhàn)之一是:當(dāng)客戶從應(yīng)用程序中的某一頁(yè)面轉(zhuǎn)到另一頁(yè)面時(shí),如何在整個(gè)訪問(wèn)或會(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í)所遇到的問(wèn)題提供了特有的解決方案。使用

ASP的Session對(duì)象以及服務(wù)器生成的特定客戶ID,使得開(kāi)發(fā)者可以創(chuàng)建更智能的、用于標(biāo)識(shí)每個(gè)來(lái)訪客戶的應(yīng)用程序,并收集應(yīng)用程序用來(lái)跟蹤客戶選擇項(xiàng)的信息。7.3.1啟動(dòng)和結(jié)束會(huì)話

會(huì)話有以下幾種開(kāi)始方式:l

新客戶對(duì)應(yīng)用程序中的某個(gè)ASP文件發(fā)出請(qǐng)求,并且此應(yīng)用程序的

Global.asa文件中包含

Session_OnStart過(guò)程。l

客戶在

Session對(duì)象中保存了一個(gè)值。l

如果服務(wù)器接收到的請(qǐng)求中沒(méi)有包含有效的

SessionIDCookie,就將自動(dòng)啟動(dòng)新的會(huì)話。說(shuō)明:如果在某一指定時(shí)間內(nèi),客戶沒(mé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。這是通過(guò)復(fù)雜算法產(chǎn)生的一個(gè)數(shù)值,SessionID唯一標(biāo)識(shí)每個(gè)客戶的會(huì)話。新會(huì)話開(kāi)始時(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)能力。通過(guò)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過(guò)程。l

發(fā)送sessionIDCookie。l

創(chuàng)建Session對(duì)象。l

訪問(wèn)由

<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)用程序開(kāi)發(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ù)是成功還是失敗的。但是,開(kāi)發(fā)者可以利用ObjectContext對(duì)象提供的OnTransactionCommit和

OnTransactionAbort事件來(lái)編寫在事務(wù)提交或中止時(shí)可供調(diào)用的事件過(guò)程。7.4.4聲明完成或放棄事務(wù)ASP的ObjectContext對(duì)象提供有SetAbort方法和SetComplete方法,SetAbort方法可用來(lái)宣告放棄當(dāng)前的事務(wù),因而系統(tǒng)不再對(duì)數(shù)據(jù)源進(jìn)行更新;SetComplete方法則用來(lái)宣告當(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ā)生在腳本開(kāi)始執(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="歡迎來(lái)到新世紀(jì)網(wǎng)站!"Response.WriteStrWelcome%>2.常見(jiàn)HTTP錯(cuò)誤:l

HTTP錯(cuò)誤

400 表示請(qǐng)求無(wú)效l

HTTP錯(cuò)誤

403 表示禁止訪問(wèn)l

HTTP錯(cuò)誤

404-1 表示找不到站點(diǎn)l

HTTP錯(cuò)誤

405 表示禁止訪問(wèn)資源l

HTTP錯(cuò)誤

500 表示內(nèi)部服務(wù)器錯(cuò)誤l

HTTP錯(cuò)誤

500-100 表示腳本出現(xiàn)問(wèn)題,無(wú)法運(yùn)行。

7.5.3用Err對(duì)象顯示錯(cuò)誤

為了使得腳本程序在出錯(cuò)時(shí)能夠自動(dòng)跳過(guò)出錯(cuò)代碼而繼續(xù)執(zhí)行下面的語(yǔ)句,并能夠運(yùn)行后續(xù)的有關(guān)代碼來(lái)處理出現(xiàn)的錯(cuò)誤,可以使用MicrosoftVBScript提供的OnErrorResumeNext語(yǔ)句和Err對(duì)象。OnErrorResumeNext語(yǔ)句可以不顧運(yùn)行時(shí)產(chǎn)生的錯(cuò)誤,使程序接著從產(chǎn)生錯(cuò)誤的語(yǔ)句之后繼續(xù)執(zhí)行;而Err對(duì)象則可用來(lái)判斷發(fā)生了什么錯(cuò)誤,并從該對(duì)象提供的一系列屬性值獲得各種具體的錯(cuò)誤信息。

示例:<%OptionExplicitOnErrorResumeNextStrWelcome="歡迎來(lái)到新世紀(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ù)器端腳本期間,打開(kāi)有關(guān)窗口,監(jiān)視變量、屬性或數(shù)組元素的值。l

在腳本的特定語(yǔ)句行,使用調(diào)試器或腳本命令設(shè)置斷點(diǎn)以暫停執(zhí)行服務(wù)器端腳本。l

跟蹤服務(wù)器端腳本的運(yùn)行過(guò)程。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ú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論