版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年智能硬件設(shè)備及配套軟件研發(fā)與銷售合同
- 2024年版道路運(yùn)輸司機(jī)合同2篇
- 2021-2022學(xué)年甘肅省白銀市部分學(xué)校高一上學(xué)期第二次聯(lián)考語(yǔ)文試題(解析版)
- 2025造價(jià)工程師經(jīng)驗(yàn)對(duì)建設(shè)工程合同的審查意義備考資料
- 2025年陽(yáng)泉貨運(yùn)準(zhǔn)駕證模擬考試
- 2024年房地產(chǎn)項(xiàng)目施工監(jiān)理合同范本集錦3篇
- 2024年度高級(jí)實(shí)習(xí)生個(gè)人隱私及商業(yè)秘密保護(hù)協(xié)議3篇
- 洛陽(yáng)科技職業(yè)學(xué)院《經(jīng)濟(jì)數(shù)學(xué)(一)》2023-2024學(xué)年第一學(xué)期期末試卷
- 高端制造企業(yè)總經(jīng)理聘任合同
- 2024年度船舶買賣居間代理合同實(shí)施細(xì)則下載3篇
- 中軟統(tǒng)一終端安全管理平臺(tái)v90使用手冊(cè)
- 護(hù)理質(zhì)量管理PPT通用課件
- 氨水崗位應(yīng)知應(yīng)會(huì)手冊(cè).docx
- AQ-C1-19 安全教育記錄表(三級(jí))
- 廣東飼料項(xiàng)目建議書(參考范文)
- 鋁單板、玻璃幕墻建筑施工完整方案
- 六年級(jí)數(shù)學(xué)簡(jiǎn)便計(jì)算易錯(cuò)題
- 工程造價(jià)咨詢公司質(zhì)量控制制度
- 《常用醫(yī)學(xué)檢查》PPT課件.ppt
- 《發(fā)展經(jīng)濟(jì)學(xué)派》PPT課件.ppt
- 雙層罐技術(shù)要求內(nèi)容
評(píng)論
0/150
提交評(píng)論