ASP程序設計實務課件_第1頁
ASP程序設計實務課件_第2頁
ASP程序設計實務課件_第3頁
ASP程序設計實務課件_第4頁
ASP程序設計實務課件_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

ASP程序設計實務

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設置貨幣值格式

格式:

FormatCurrency(expression[,NumDigitsAfterDecimal[,IncludeLeadingDigit

[,UseParensForNegativeNumbers[,GroupDigits]]]])

7.1.4設置百分數(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)點在開發(fā)Web應用程序時,將各個頁面中功能類似的程序或代碼段作為包含文件加以保存,待需要時再方便地將其包含到當前的頁面中來,不僅可以做到因代碼重用而大大提高編程效率,還可以使得各個頁面外觀一致、風格統(tǒng)一。例如,可將應用程序中大多數(shù)網(wǎng)頁上都有的菜單或者導航條腳本代碼保存為包含文件,并將其插入到所需的有關(guān)網(wǎng)頁中。2.使用包含文件的注意事項l

一個ASP文件可以包含若干個不同的文件,也可以多次包含同一文件。l

被包含的文件還可以再包含其他的文件,只要

#include指令不導致循環(huán)。l

一個文件不能包含其自身。系統(tǒng)將檢測出這種循環(huán)或嵌套錯誤,并停止處理所請求的ASP文件。l

系統(tǒng)在執(zhí)行腳本命令之前將包含文件的內(nèi)容插入進來。因此,不能使用腳本命令建立被包含的文件名。3.通過<SCRIPT>標記包含文件示例:

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

開發(fā)一個成功的

Web應用程序所面臨的挑戰(zhàn)之一是:當客戶從應用程序中的某一頁面轉(zhuǎn)到另一頁面時,如何在整個訪問或會話期間維護該客戶的信息。HTTP是一種無狀態(tài)協(xié)議,即站點的Web服務器將對網(wǎng)頁的每個

HTTP請求都當作獨立的請求,服務器不保留與以前的請求有關(guān)的任何信息。ASP針對管理會話信息時所遇到的問題提供了特有的解決方案。使用

ASP的Session對象以及服務器生成的特定客戶ID,使得開發(fā)者可以創(chuàng)建更智能的、用于標識每個來訪客戶的應用程序,并收集應用程序用來跟蹤客戶選擇項的信息。7.3.1啟動和結(jié)束會話

會話有以下幾種開始方式:l

新客戶對應用程序中的某個ASP文件發(fā)出請求,并且此應用程序的

Global.asa文件中包含

Session_OnStart過程。l

客戶在

Session對象中保存了一個值。l

如果服務器接收到的請求中沒有包含有效的

SessionIDCookie,就將自動啟動新的會話。說明:如果在某一指定時間內(nèi),客戶沒有請求或刷新應用程序中的網(wǎng)頁,會話就將自動結(jié)束。7.3.2SessionIDCookies

當客戶第一次請求特定應用程序內(nèi)的ASP文件時,Web服務器將為該客戶生成一個SessionID。這是通過復雜算法產(chǎn)生的一個數(shù)值,SessionID唯一標識每個客戶的會話。新會話開始時,Web服務器將這個SessionID作為Cookie存儲到客戶端。

7.3.3存儲或刪除Session對象數(shù)據(jù)

1.存儲Session對象數(shù)據(jù)示例:<%Session("FirstName")="Jeff"Session("LastName")="Smith"%>

2.使用Session對象數(shù)據(jù)示例:Welcome<%=Session("FirstName")%>

3.刪除單個Session對象數(shù)據(jù)示例:<%IfSession.Contents("Purchamnt")<=75ThenSession.Contents.Remove("Discount")EndIf%>

4.刪除所有Session對象數(shù)據(jù)示例:Session.Content.RemoveAll()7.3.4使用Cookie

1.設置Cookie2.獲取Cookies3.設置Cookie路徑4.保留使用Cookies的狀態(tài)7.3.5無會話ASP網(wǎng)頁

無會話ASP網(wǎng)頁可以消除潛在的、非常耗時的會話活動,從而提高Web服務器的響應能力。通過ASP腳本代碼可以創(chuàng)建“無會話”網(wǎng)頁??梢允褂眠@種無會話網(wǎng)頁推遲創(chuàng)建客戶的會話跟蹤,直到需要時才創(chuàng)建。無會話網(wǎng)頁將不執(zhí)行下列任務:l

執(zhí)行Session_OnStart過程。l

發(fā)送sessionIDCookie。l

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

訪問由

<OBJECT>標記創(chuàng)建的內(nèi)置Session對象或會話范圍對象。l

與其他會話請求連接執(zhí)行。

可使用下列命令將ASP頁面配置為無會話網(wǎng)頁:<%@EnableSessionState=False%>7.4處理事務7.4.1關(guān)于事務所謂事務(Transaction)是一種服務器端的操作,無論此操作包含多少步驟(例如訂購、貨物調(diào)撥以及付帳等),它都應該是要么全部成功,要么全部失敗。網(wǎng)絡應用程序開發(fā)者可以創(chuàng)建在事務范圍內(nèi)運行的服務器端腳本,這樣,如果腳本的某個部分出錯,整個事務都將中止。事務處理方式主要用于保證數(shù)據(jù)庫更新的可靠性。當對數(shù)據(jù)庫進行許多相關(guān)聯(lián)的更改或同時更新多個數(shù)據(jù)庫時,必須確保所有更改都被準確執(zhí)行。假如發(fā)生任何更改的失敗,則必須恢復到對數(shù)據(jù)庫操作前的原始狀態(tài)。7.4.2在網(wǎng)頁中使用事務

1.聲明事務性網(wǎng)頁2.使用ADO事務3.使用DBMS事務7.4.3編寫事務事件

就腳本程序本身而言,是無法確定某個事務是成功還是失敗的。但是,開發(fā)者可以利用ObjectContext對象提供的OnTransactionCommit和

OnTransactionAbort事件來編寫在事務提交或中止時可供調(diào)用的事件過程。7.4.4聲明完成或放棄事務ASP的ObjectContext對象提供有SetAbort方法和SetComplete方法,SetAbort方法可用來宣告放棄當前的事務,因而系統(tǒng)不再對數(shù)據(jù)源進行更新;SetComplete方法則用來宣告當前的事務已完成,從而保存對數(shù)據(jù)源的更新。7.4.5事務處理的其他事項

1.事務組件的注冊2.對象作用域3.隊列事務7.5錯誤類型與出錯信息

7.5.1錯誤類型1.語法錯誤語法錯誤是一種經(jīng)常遇到的錯誤,它是由于腳本語句的語法不正確引起的。例如,命令拼寫錯誤、空格或標點符號錯誤,以及傳遞給函數(shù)的參數(shù)數(shù)目不對等都可能產(chǎn)生此類錯誤。如果語法不正確,腳本代碼便將無法執(zhí)行。2.運行時錯誤運行時錯誤發(fā)生在腳本開始執(zhí)行之后,它是由于腳本命令試圖執(zhí)行不可能的操作而引起的一類錯誤。例如以0作為除數(shù)(這是一種非法的數(shù)學運算),就將產(chǎn)生運行時錯誤。

3.邏輯錯誤邏輯錯誤是最難以發(fā)現(xiàn)的錯誤,它是由于鍵入錯誤或程序邏輯上的缺陷引起的。邏輯錯誤的特點是:腳本能夠運行,但產(chǎn)生的結(jié)果不正確。例如,如果服務器端腳本需要對列表中的值進行排序,但在腳本中本該使用小于符號(<)的地方錯誤地使用了大于符號(>),從而導致排序結(jié)果不正確。

7.5.2出錯信息

1.出錯示例:

<%OptionExplicitStrWelcome="歡迎來到新世紀網(wǎng)站!"Response.WriteStrWelcome%>2.常見HTTP錯誤:l

HTTP錯誤

400 表示請求無效l

HTTP錯誤

403 表示禁止訪問l

HTTP錯誤

404-1 表示找不到站點l

HTTP錯誤

405 表示禁止訪問資源l

HTTP錯誤

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

HTTP錯誤

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

7.5.3用Err對象顯示錯誤

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

示例:<%OptionExplicitOnErrorResumeNextStrWelcome="歡迎來到新世紀網(wǎng)站!"Response.WriteStrWelcomeIfErr.Number<>0Then Response.Write"程序發(fā)生錯誤,已停止執(zhí)行。"&"<br>" Response.Write"錯誤代碼:"&Err.Number&"<br>" Response.Write"錯誤描述:"&Err.Description&"<br>" Response.Write"錯誤對象或名稱:"&Err.Source&"<br>"EndifResponse.Write"<p><ahref='Default.htm'>[返回首頁]</a>"%>7.6ASP腳本調(diào)試

MicrosoftDevelopmentEnvironment是一個強大的調(diào)試工具,可以幫助用戶快速定位錯誤,并能使用交互方式測試服務器端腳本。使用它可以實現(xiàn):l

每次運行服務器端腳本的一行語句。l

在執(zhí)行服務器端腳本期間,打開有關(guān)窗口,監(jiān)視變量、屬性或數(shù)組元素的值。l

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

跟蹤服務器端腳本的運行過程。7.6.1調(diào)試基礎(chǔ)

1.調(diào)試工具可幫助發(fā)現(xiàn)下列錯誤:l

編譯錯誤l

運行時錯誤l

邏輯錯誤2.MicrosoftDevelopmentEnvironment的調(diào)試窗口:l

立即窗口l

監(jiān)視窗口l

局部窗口l

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論