版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第5章
動態(tài)網(wǎng)頁制作技術(shù)ASP5.1靜態(tài)網(wǎng)頁與動態(tài)網(wǎng)頁5.2ASP技術(shù)的基礎(chǔ)知識5.3ASP的內(nèi)置對象5.4ASP存取數(shù)據(jù)庫5.1靜態(tài)網(wǎng)頁與動態(tài)網(wǎng)頁5.1.1靜態(tài)網(wǎng)頁使用HTML標(biāo)記制作的網(wǎng)頁可以在服務(wù)器端運行,也可以在客戶端運行,即在資源管理器中雙擊擴(kuò)展名為.html或.htm的網(wǎng)頁文件名就可以顯示頁面。除了HTML標(biāo)記之外,顯示的內(nèi)容與網(wǎng)頁文件中的內(nèi)容基本一致,人們把這種網(wǎng)頁稱為靜態(tài)網(wǎng)頁。下一頁返回5.1靜態(tài)網(wǎng)頁與動態(tài)網(wǎng)頁5.1.2動態(tài)網(wǎng)頁所謂“動態(tài)”,就是網(wǎng)頁文件中不僅包含HTML標(biāo)記,還包含服務(wù)器端運行的程序代碼,網(wǎng)頁文件的擴(kuò)展名不再是.html或.htm,而是隨著程序設(shè)計語言或技術(shù)的不同而不同,例如ASP文件的擴(kuò)展名為.asp。使用動態(tài)網(wǎng)頁,可以達(dá)到以下效果:1)從HTML的表單中獲取數(shù)據(jù)并保存到數(shù)據(jù)庫中。2)根據(jù)不同用戶的不同選擇,顯示不同的頁面內(nèi)容。然而,靜態(tài)網(wǎng)頁是網(wǎng)站建設(shè)的基礎(chǔ),動態(tài)網(wǎng)頁是靜態(tài)網(wǎng)頁的擴(kuò)展而不是替代。上一頁返回5.2ASP技術(shù)的基礎(chǔ)知識5.2.1ASP的技術(shù)特點特點有以下幾個方面。1)使用VBScript或JavaScript腳本語言,結(jié)合HTML標(biāo)記制作功能強大的網(wǎng)頁。2)可以與任何ActiveXScripting語言兼容。3)獨立于瀏覽器,訪問者只需在自己瀏覽器上執(zhí)行HTML標(biāo)記即可瀏覽ASP網(wǎng)頁。4)面向?qū)ο蟮某绦蛟O(shè)計,擁有良好的可擴(kuò)充性。5)ASP源代碼不會被訪問者看到,擁有很高的保密性。6)開發(fā)者使用普通的文本編輯器即可進(jìn)行網(wǎng)頁設(shè)計,編程環(huán)境簡單。下一頁返回5.2ASP技術(shù)的基礎(chǔ)知識5.2.2ASP的工作流程當(dāng)客戶端瀏覽器請求打開ASP頁面,網(wǎng)站服務(wù)器接收請求,按以下流程進(jìn)行工作。1)服務(wù)器讀取ASP頁面文件的內(nèi)容,判斷是否包含ASP代碼需要執(zhí)行。2)如果網(wǎng)頁文件包含ASP代碼,服務(wù)器將通過IIS對這些代碼逐行進(jìn)行解釋。3)服務(wù)器在解釋ASP代碼之后,將代碼的解釋結(jié)果與HTML標(biāo)記合并,形成最終可以在客戶端瀏覽器顯示的網(wǎng)頁。4)服務(wù)器將最終頁面發(fā)送到客戶端瀏覽器。上一頁下一頁返回5.2ASP技術(shù)的基礎(chǔ)知識5.2.3ASP的工作原理用戶訪問ASP頁面,同樣是在Internet地址欄輸入HTML文件的路徑和文件名,瀏覽器會將請求發(fā)送到服務(wù)器。服務(wù)器收到請求后,需要調(diào)用ASP解釋器對ASP代碼進(jìn)行解釋,才能生成純HTML頁面,再發(fā)送到客戶端瀏覽器。在客戶端,瀏覽器將這個純HTML頁面顯示到屏幕,但用戶看不到真正的ASP文件的內(nèi)容。上一頁下一頁返回5.2ASP技術(shù)的基礎(chǔ)知識5.2.4ASP的運行環(huán)境ASP常用的運行環(huán)境是Windows操作系統(tǒng)支持的微軟互聯(lián)網(wǎng)信息服務(wù)(IIS)。1)WindowsXP操作系統(tǒng)在安裝時,沒有安裝IIS。需要使用Windows操作系統(tǒng)安裝光盤,從“控制面板”→“添加或刪除程序”→“添加或刪除Windows組件”進(jìn)行手工安裝。2)Windows7操作系統(tǒng)在安裝時,已經(jīng)安裝IIS,但并不能運行,需要從“控制面
板”→“管理工具”→“程序和功能”→“打開或關(guān)閉Windows功能”進(jìn)行設(shè)置。上一頁下一頁返回5.2ASP技術(shù)的基礎(chǔ)知識5.2.5ASP使用的語言1.HTML可以使用第3章介紹的所有語法結(jié)構(gòu)。2.VBScript腳本1)VBScript是專業(yè)編程語言VisualBasic(簡稱VB)的子集,可以使用VB的語法結(jié)構(gòu)、變量、運算符、條件語句和循環(huán)語句等。2)VBScript是ASP使用的默認(rèn)腳本語言。如果非要說明,在網(wǎng)頁文件的第一句使用:<%@Language=VBScript%>上一頁下一頁返回5.2ASP技術(shù)的基礎(chǔ)知識3)VBScript有兩種書寫形式。第一種形式:<ScriptLanguage="VBScript"RunAt="Server">
程序代碼</Script>第二種形式:<%
程序代碼%>上一頁下一頁返回5.2ASP技術(shù)的基礎(chǔ)知識3.JavaScript腳本1)JavaScript是專業(yè)編程語言Java的子集,可以使用Java的語法結(jié)構(gòu)、變量、運算符、條件語句和循環(huán)語句等。2)JavaScript是ASP的默認(rèn)腳本語言。如果使用,必須在網(wǎng)頁文件的第一句使用:<%@Language=JavaScript%>3)JavaScript也有兩種書寫形式,與VBScript相同,不再重述。上一頁返回5.3ASP的內(nèi)置對象5.3.1Request對象1.Form集合用途:從客戶端獲取由post方式表單提交的內(nèi)容。語法:Request.Form(表單元素名稱)例5-1使用From集合獲取用戶提交的數(shù)據(jù)將以下程序段保存到名為“例5-1.asp”的文件中。<html><body><formname="form1"method="post"action="例5-1-1.asp">
編號:<inputtype="text"name="bh"><br>
品名:<inputtype="text"name="pm"><br>
價格:<inputtype="text"name="jg"><br><inputtype="submit"value="提交">下一頁返回5.3ASP的內(nèi)置對象
</form></body></html>將以下程序段保存到名為“例5-1-1.asp”的文件中。<html><body>
編號:<%=Request.form("bh")%><br>
品名:<%=Request.form("pm")%><br>
價格:<%=Request.form("jg")%><br></body></html>運行“例5-1.asp”,輸入有關(guān)數(shù)據(jù),然后提交,在“例5-1-1”頁面將顯示輸入的內(nèi)容。也可以將兩個網(wǎng)頁文件合并為一個文件,請看例5-2。上一頁下一頁返回5.3ASP的內(nèi)置對象例5-2填寫注冊表。將以下程序段保存到名為“例5-2.asp”的文件中。<html><body><formname="form3"method="post"action="#">
姓名:<inputtype="text"name="xm"><br>
密碼:<inputtype="password"name="mm"><br>
性別:<inputtype="radio"name="xb"value="男">男<inputtype="radio"name="xb"value="女">女<br>
愛好:<inputtype="checkbox"name="ah"value="籃球">籃球<inputtype="checkbox"name="ah"value="美食">美食<inputtype="checkbox"name="ah"value="購物">購物<br>上一頁下一頁返回5.3ASP的內(nèi)置對象職業(yè):<selectname="zy"><optionvalue="電子商務(wù)">電子商務(wù)<optionvalue="軟件開發(fā)">軟件開發(fā)<optionvalue="網(wǎng)絡(luò)工程">網(wǎng)絡(luò)工程</select><br>
備注:<textareaname="bz"rows="2"cols="30"></textarea><br><inputtype="submit"value="提交"><inputtype="reset"value="重置"></form>上一頁下一頁返回5.3ASP的內(nèi)置對象姓名:<%=Request.Form("xm")%><br>
密碼:<%=Request.Form("mm")%><br>
性別:<%=Request.Form("xb")%><br>
愛好:<%=Request.Form("ah")%><br>
職業(yè):<%=Request.Form("zy")%><br>
備注:<%=Request.Form("bz")%><br></body></html>運行“例5-2.asp”,輸入有關(guān)數(shù)據(jù),然后提交,在“例5-2”頁面內(nèi)將顯示輸入的內(nèi)容。例5-2包含了HTML表單中幾乎所有的元素:文本框、密碼框、單選按鈕、復(fù)選框、列表框、多行輸入框,以及提交和重置按鈕。上一頁下一頁返回5.3ASP的內(nèi)置對象2.QueryString集合用途:從客戶端獲取由get方式的表單提交的內(nèi)容和網(wǎng)頁之間的參數(shù)傳遞。語法:Request.QueryString(表單元素名稱或參數(shù)名稱)例5-3利用QueryString集合獲取表單數(shù)據(jù)。將以下程序段保存到名為“例5-3.asp”的文件中。<html><body><formname="form1"method="get"action="例5-3.asp">
編號:<inputtype="text"name="bh"><br>
品名:<inputtype="text"name="pm"><br>
價格:<inputtype="text"name="jg"><br><inputtype="submit"value="提交">上一頁下一頁返回5.3ASP的內(nèi)置對象</form>
編號:<%=Request.QueryString("bh")%><br>
品名:<%=Request.QueryString("pm")%><br>
價格:<%=Request.QueryString("jg")%><br></body></html>運行“例5-3.asp”,輸入有關(guān)數(shù)據(jù),然后提交,在“例5-3”頁面將顯示輸入的內(nèi)容。在“例5-3.asp”中,注意action屬性的值,表示重定向到自身,與“例5-2.asp”中的#有相同效果。上一頁下一頁返回5.3ASP的內(nèi)置對象例5-4利用QueryString集合進(jìn)行網(wǎng)頁之間參數(shù)傳遞。將以下程序段保存到名為“例5-4.asp”的文件中。<html><body><ahref=例5-4-1.asp?bh=123456&pm=計算機(jī)&jg=4500>超級鏈接按鈕</a></body></html>將以下程序段保存到名為“例5-4-1.asp”的文件中。上一頁下一頁返回5.3ASP的內(nèi)置對象<html><body>
編號:<%=Request.QueryString("bh")%><br>
品名:<%=Request.QueryString("pm")%><br>
價格:<%=Request.QueryString("jg")%><br></body></html>運行“例5-4.asp”,單擊“超級鏈接按鈕”,在“例5-4-1”頁面顯示主調(diào)程序攜帶的內(nèi)容。上一頁下一頁返回5.3ASP的內(nèi)置對象5.3.2Response對象1.Write方法用途:將指定的數(shù)據(jù)從服務(wù)器端輸出到客戶端。語法:Response.Write字符串或表達(dá)式說明:如果輸出的不是字符串?dāng)?shù)據(jù),ASP將其轉(zhuǎn)換為字符串。上一頁下一頁返回5.3ASP的內(nèi)置對象例5-5Write方法的使用。將以下程序段保存到名為“例5-5.asp”的文件中。<html><body><%Response.Write"歡迎光臨我們的網(wǎng)站<br>" '輸出字符串Response.Write"今天是"&date()&"<br>" '輸出表達(dá)式Response.Write"<h3>主頁名稱</h3>" '輸出HTML標(biāo)記字符串%></body></html>Write方法還有一種簡單書寫形式,例5-5與例5-6有相同的效果。上一頁下一頁返回5.3ASP的內(nèi)置對象例5-6Write方法另一種形式的使用。將以下程序段保存到名為“例5-6.asp”的文件中。<html><body><%="歡迎光臨我們的網(wǎng)站"%><br><%="今天是"&date()%><br><%="<h3>主頁名稱</h3>"%></body></html>例5-5、例5-6在瀏覽器中的顯示結(jié)果如圖5-1所示。上一頁下一頁返回5.3ASP的內(nèi)置對象例5-7腳本與HTML混合使用。將以下程序段保存到名為“例5-7.asp”的文件中。<html><body><%fori=1to5%><fontsize="<%=i%>">這里的字體在變大</font><br><%next%></body></html>例5-7與例5-8有相同的效果。上一頁下一頁返回5.3ASP的內(nèi)置對象例5-8腳本與HTML混合使用的另一種形式。將以下程序段保存到名為“例5-8.asp”的文件中。<html><body><%fori=1to5Response.Write"<fontsize="&i&">這里的字體在變大</font><br>"next%></body></html>例5-7、例5-8在瀏覽器中的顯示結(jié)果如圖5-2所示。上一頁下一頁返回5.3ASP的內(nèi)置對象2.Redirect方法用途:不需要用戶干預(yù),從當(dāng)前頁面自動跳轉(zhuǎn)到指定頁面,也稱為“重定向”。語法:Response.RedirectURL說明:URL為任一網(wǎng)址或網(wǎng)站內(nèi)部的網(wǎng)頁文件名。上一頁下一頁返回5.3ASP的內(nèi)置對象例5-9Redirect方法的使用將以下程序段保存到名為“例5-9.asp”的文件中。<html><body><%X=1
X可以不等于1IfX<>1ThenResponse.Redirect""Else上一頁下一頁返回5.3ASP的內(nèi)置對象Response.Redirect"L5-9.asp"
被重定向的網(wǎng)頁文件不能是漢字EndIf%></body></html>當(dāng)X等于1時,重定向到搜狐網(wǎng),否則重定向到站內(nèi)的“例5-9.asp”頁面。上一頁下一頁返回5.3ASP的內(nèi)置對象3.Buffer屬性用途:在內(nèi)存的一塊區(qū)域為網(wǎng)頁的輸出顯示設(shè)置“緩沖區(qū)”。語法:Response.Buffer=True說明:上述語句應(yīng)放到ASP程序的第一行。上一頁下一頁返回5.3ASP的內(nèi)置對象4.End方法用途:終止ASP程序的執(zhí)行,將之前的執(zhí)行結(jié)果發(fā)送到客戶端。語法:Response.End說明:當(dāng)程序執(zhí)行該語句后,將不再執(zhí)行后面的語句,而把之前的執(zhí)行結(jié)果發(fā)送到客戶端。上一頁下一頁返回5.3ASP的內(nèi)置對象例5-10End方法的使用。將以下程序段保存到名為“例5-10.asp”的文件中。<html><body><%Response.Write"第一句內(nèi)容"Response.EndResponse.Write"第二句內(nèi)容"%></body></html>“例5-10.asp”執(zhí)行的結(jié)果是只會輸出“第一句內(nèi)容”,而不會輸出“第二句內(nèi)容”。上一頁下一頁返回5.3ASP的內(nèi)置對象5.Flush方法用途:立即將緩沖區(qū)中的內(nèi)容輸出到客戶端,但不會終止程序執(zhí)行。語法:Response.Flush6.Clear方法用途:全部清除服務(wù)器緩沖區(qū)將要輸出的內(nèi)容。語法:Response.Clear上一頁下一頁返回5.3ASP的內(nèi)置對象例5-11Flush方法的使用。將以下程序段保存到名為“例5-11.asp”的文件中。<html><body><%Response.Write"第一句內(nèi)容<br>"Response.FlushResponse.Write"第二句內(nèi)容<br>"Response.ClearResponse.Write"第三句內(nèi)容"上一頁下一頁返回5.3ASP的內(nèi)置對象%></body></html>例5-11.asp執(zhí)行結(jié)果輸出“第一句內(nèi)容”和“第三句內(nèi)容”,不會輸出“第二句內(nèi)容”。如果不使用Response.Flush,將只能輸出“第三句內(nèi)容”。如果不使用Response.Clear,三句內(nèi)容全部輸出。上一頁下一頁返回5.3ASP的內(nèi)置對象5.3.3Session對象1.利用Session存儲數(shù)據(jù)語法:Session(變量名)=值例5-12利用Session保存數(shù)據(jù)。將以下程序段保存到名為“例5-12.asp”的文件中,以便給Session變量賦值。上一頁下一頁返回5.3ASP的內(nèi)置對象<html><body><%username="王西安"password="123456"Session("YH")=usernameSession("MM")=password
給Session賦值%></body></html>上一頁下一頁返回5.3ASP的內(nèi)置對象將以下程序段保存到名為“例5-12-1.asp”的文件中,以便獲取Session變量的值。<html><body><%username=Session("YH")password=Session("MM")'將Session值賦給變量Response.Writeusername&"您好,歡迎光臨<br>"Response.Write"您的密碼是:"&password%></body></html>上一頁下一頁返回5.3ASP的內(nèi)置對象說明:1)Session變量與普通變量有相同的賦值和獲取格式。2)Session變量兩邊需要使用雙引號,而普通變量不需要。3)Session變量在整個會話期間一直有效,而普通變量只在頁面內(nèi)有效。例5-12在瀏覽器中的顯示結(jié)果如圖5-3所示。上一頁下一頁返回5.3ASP的內(nèi)置對象例5-13利用Session保存數(shù)組將以下程序段保存到名為“例5-13.asp”的文件中,以便用Session保存數(shù)組。<html><body><%Dimusername(2)
聲明一個數(shù)組username(0)="張三"username(1)="李四"Session("Arr")=username
將數(shù)組賦給Session%></body></html>上一頁下一頁返回5.3ASP的內(nèi)置對象將以下程序段保存到名為“例5-13-1.asp”的文件中,以便獲取Session保存數(shù)組。<html><body><%username=Session("Arr")
將Session值賦給數(shù)組Response.Writeusername(0)&"您好,歡迎光臨<br>"Response.Writeusername(1)&"您好,歡迎光臨"%></body></html>例5-13在瀏覽器中的顯示結(jié)果如圖5-4所示。上一頁下一頁返回5.3ASP的內(nèi)置對象2.TimeOut屬性用途:為Session對象設(shè)置有效期,單位為分鐘。語法:Session.TimeOut=分鐘數(shù)說明:如果用戶在設(shè)置的有效期內(nèi)沒有刷新或請求網(wǎng)頁,則會話結(jié)束。3.SessionID屬性用途:獲取用戶會話的標(biāo)識符,以長整型數(shù)返回。語法:長整型變量=Session.SessionID
上一頁下一頁返回5.3ASP的內(nèi)置對象例5-14獲取會話標(biāo)識符。將以下程序段保存到名為“例5-14.asp”的文件中,以便獲取會話標(biāo)識符。<html><body><%sID=Session.SessionIDResponse.Write"您的會話標(biāo)識符: "&sID%></body></html>執(zhí)行“例5-14.asp”,顯示一個8位整數(shù)的會話標(biāo)識符。上一頁下一頁返回5.3ASP的內(nèi)置對象4.Abandon方法用途:Session對象有一個方法,用于在Session對象到期之前強行清除該對象。語法:Session.Abandon說明:該方法被執(zhí)行,所有存儲在Session對象的數(shù)據(jù)被清除,與對象超時有同樣效果。上一頁下一頁返回5.3ASP的內(nèi)置對象例5-15獲取新的會話標(biāo)識符。將以下程序段保存到名為“例5-15.asp”的文件中,以便獲取新的會話標(biāo)識符。<html><body><%Session.Abandon
使用該語句,刷新后導(dǎo)致SessionID變化sID=Session.SessionIDResponse.Write"您的會話標(biāo)識符: "&sID%></body></html>“例5-15.asp”與“例5-14.asp”的區(qū)別是多了Session.Abandon。執(zhí)行“例5-14.asp”后刷新,顯示的8位整數(shù)不變,而執(zhí)行“例5-15.asp”后刷新,顯示的8位整數(shù)發(fā)生變化。上一頁下一頁返回5.3ASP的內(nèi)置對象5.3.4Application對象1.Application對象的方法語法:Application.Lock
加鎖Application.Unlock
解鎖說明:在修改Application變量時,使用前一句將該變量鎖定,在修改后將該變量解鎖以便別的用戶修改。通過例5-16可以看到兩種方法的使用。2.利用Application存儲數(shù)據(jù)語法:Applicaton(變量名)=值上一頁下一頁返回5.3ASP的內(nèi)置對象例5-16利用Application保存數(shù)據(jù)。將以下程序段保存到名為“例5-16.asp”的文件中,以便給Application賦值。<html><body><%ltnr="剛才我在網(wǎng)上買了一件紅色的衣服"Application.lockApplication("NR")=ltnr
把聊天內(nèi)容賦給Application變量Application.unlock上一頁下一頁返回5.3ASP的內(nèi)置對象%></body></html>將以下程序段保存到名為“例5-16-1.asp”的文件中,以便獲取Application的值。<html><body><%ltnr=Session("NR")
將Application值賦給變量Response.Writeltnr&"是前面用戶的聊天內(nèi)容<br>"%></body></html>上一頁下一頁返回5.3ASP的內(nèi)置對象3.利用Application建立網(wǎng)站計數(shù)器例5-17網(wǎng)站計數(shù)器。將以下程序段保存到名為“例5-17.asp”的文件中,給網(wǎng)站設(shè)置計數(shù)器。<html><body><%上一頁下一頁返回5.3ASP的內(nèi)置對象Application.lockApplication("Number")=Application("Number")+1Application.unlocknum=Application("Number")Response.Write"歡迎光臨<br>本網(wǎng)頁被訪問過"&num&"次"%></body></html>上一頁下一頁返回5.3ASP的內(nèi)置對象4.清除Application的數(shù)據(jù)語法:Application.Contents.Remove("變量名")Application.Contents.RemoveAll()說明:Contents是Application的集合,所有Application變量都是該集合的成員。上一頁下一頁返回5.3ASP的內(nèi)置對象例5-18清除Application變量中的數(shù)據(jù)。將以下程序段保存到名為“例5-18.asp”的文件中,清除“例5-17.asp”設(shè)置的計數(shù)。<html><body><%Application.Contents.Remove("Number")%></body></html>如果將其中的Remove("Number")改為RemoveAll(),清除服務(wù)器Application所有數(shù)據(jù)。上一頁下一頁返回5.3ASP的內(nèi)置對象例5-19最簡單的聊天室。(1)創(chuàng)建頁面框架index.asp<html><framesetrows="*,50%"><framename="message"src="show.asp"><framename="say"src="say.asp"></frameset></html>上一頁下一頁返回5.3ASP的內(nèi)置對象(2)創(chuàng)建提供發(fā)言網(wǎng)頁say.asp<html><body><formname="form1"method="post"action="">
昵稱:<inputtype="text"name="txtName"size="10">
發(fā)言:<inputtype="text"name="txtSay"size="30"><inputtype="submit"value="發(fā)送"></form><%上一頁下一頁返回5.3ASP的內(nèi)置對象
如果提交了表單,就將發(fā)言內(nèi)容添加到Application對象中name=Request.Form("txtName")say=Request.Form("txtSay")IfTrim(name)<>""AndTrim(say)<>""Then
下面獲取本次發(fā)言字符串,包括發(fā)言人和發(fā)言內(nèi)容strSay=name&"在"&Now()&"說:"&say&"<br>"
下面將本次發(fā)言添加到聊天內(nèi)容中Application.Lock '先鎖定Application("strChat")=strSay&Application("strChat")Application.Unlock
解除鎖定Endif%></body></html>上一頁下一頁返回5.3ASP的內(nèi)置對象(3)創(chuàng)建顯示發(fā)言網(wǎng)頁show.asp<html><head><title>顯示發(fā)言頁面</title><metahttp-equiv="refresh"content="5">
5s之后刷新顯示內(nèi)容</head><body><%上一頁下一頁返回5.3ASP的內(nèi)置對象Response.WriteApplication("strChat")
顯示聊天內(nèi)容%></body></html>執(zhí)行“index.asp”,在昵稱、發(fā)言欄輸入內(nèi)容,單擊“發(fā)送”,5s之后顯示聊天內(nèi)容。聊天室顯示界面如圖5-5所示。上一頁下一頁返回5.3ASP的內(nèi)置對象5.3.5Server對象1.ScriptTimeout屬性語法:Server.ScriptTimeout=秒數(shù)說明:如果達(dá)到設(shè)定的秒數(shù)網(wǎng)頁還沒有執(zhí)行完畢,運行將被迫終止,并顯示超時錯誤。如果不設(shè)置該屬性,默認(rèn)值為90s。2.CreateObject方法
語法:Server.CreateObjext(progID)說明:progID為已經(jīng)注冊的服務(wù)器組件的對象類型。上一頁下一頁返回5.3ASP的內(nèi)置對象例5-20CreateObjext方法的使用。將以下程序段保存到名為“例5-20.asp”的文件中,建立數(shù)據(jù)庫連接和記錄集對象。<html><body><%
創(chuàng)建數(shù)據(jù)庫連接對象Setconn=Server.CreateObject("ADODB.Connection")
創(chuàng)建數(shù)據(jù)庫記錄集對象Setrs=Server.CreateObject("ADODB.Recordset")%></body></html>上一頁下一頁返回5.3ASP的內(nèi)置對象3.MapPath方法語法:Server.MapPath(path)說明:path指定相對路徑或虛擬路徑字符串。例5-21MapPath方法的使用。將以下程序段保存到名為“例5-21.asp”的文件中。<html><body><%
顯示網(wǎng)站的根目錄上一頁下一頁返回5.3ASP的內(nèi)置對象Response.WriteServer.MapPath("\")&"<br>"
顯示當(dāng)前目錄的路徑和文件名Response.WriteServer.MapPath("例5-20.asp")&"<br>"
顯示下級目錄的路徑和文件名Response.WriteServer.MapPath("例5-19/index.asp")%></body><html>執(zhí)行“例5-21.asp”之后的顯示界面如圖5-6所示。上一頁下一頁返回5.3ASP的內(nèi)置對象4.Execute方法語法:Server.Execute(URL)說明:URL指定另一個頁面的地址或路徑。例5-22Execute方法的使用。將以下程序段保存到名為“例5-22.asp”的文件中。<html><body><p>這是第一個頁面!</p><%上一頁下一頁返回5.3ASP的內(nèi)置對象Response.Write"當(dāng)前的會話編號為:"&Session.SessionID&"<br>"Response.Write"下面準(zhǔn)備執(zhí)行Server.Execute方法調(diào)用第二個頁面"&"<br>"Server.Execute("例5-22-1.asp")Response.Write"執(zhí)行完Server.Execute方法后返回到第一個頁面"&"<br>"%></body></html>上一頁下一頁返回5.3ASP的內(nèi)置對象下面是Execute方法指定的Web網(wǎng)頁文件“例5-22-1.asp”的內(nèi)容。<html><body><p>使用Server.Transfer調(diào)用<p><fontcolor=red>
這是第二個頁面的內(nèi)容!<br><%上一頁下一頁返回5.3ASP的內(nèi)置對象Response.Write"當(dāng)前的會話編號為:"&Session.SessionID&"<p>"%></font></body></html>執(zhí)行“例5-22.asp”,顯示結(jié)果如圖5-7所示。上一頁返回5.4ASP存取數(shù)據(jù)庫5.4.1連接數(shù)據(jù)庫1.ADO的對象ADO組件中包含許多對象,其中使用Connection和Recordset兩個對象就可以完成對數(shù)據(jù)庫進(jìn)行操作。2.Connection對象語法:Set對象實例名稱=Server.CreateObject("ADODB.Connection")對象實例名稱.Open數(shù)據(jù)庫連接字符串說明:不同的數(shù)據(jù)庫系統(tǒng)“數(shù)據(jù)庫連接字符串”各不相同,同一種數(shù)據(jù)庫系統(tǒng)也有不同的連接方式。下面分別介紹Access數(shù)據(jù)庫和SQLServer數(shù)據(jù)庫的連接方式。下一頁返回5.4ASP存取數(shù)據(jù)庫3.連接Access數(shù)據(jù)庫(1)創(chuàng)建基于OLEDB連接字符串的連接連接字符串語法:"Provider=Microsoft.ACE.OLEDB.12.0;DataSource=數(shù)據(jù)庫路徑和文件名"說明:Provider指定連接數(shù)據(jù)庫的類型和版本;DataSource指定數(shù)據(jù)庫路徑和文件名。上一頁下一頁返回5.4ASP存取數(shù)據(jù)庫例5-23連接Access數(shù)據(jù)庫方式之一。將以下程序段保存到名為“例5-23.asp”的文件中。<html><body><%Setconn=Server.CreateObject("ADODB.Connection")connStr="Provider=Microsoft.ACE.OLEDB.12.0;DataSource="_&Server.MapPath("網(wǎng)上購物.accdb")conn.OpenconnStr%>數(shù)據(jù)庫連接對象已建立!</body></html>DB2010.accdb為2010版本的Access數(shù)據(jù)庫名。上一頁下一頁返回5.4ASP存取數(shù)據(jù)庫(2)創(chuàng)建基于ODBC連接字符串的連接連接字符串語法:"Driver={MicrosoftAccessDriver(*.mdb,*.accdb)};DBQ=數(shù)據(jù)庫路徑和文件名"說明:Drive指定連接數(shù)據(jù)庫的驅(qū)動程序;DBQ指定數(shù)據(jù)庫路徑和文件名。上一頁下一頁返回5.4ASP存取數(shù)據(jù)庫例5-24連接Access數(shù)據(jù)庫方式之二。將以下程序段保存到名為“例5-24.asp”的文件中。<html><body><%Setconn=Server.CreateObject("ADODB.Connection")connStr="Driver={MicrosoftAccessDriver(*.mdb,*.accdb)};DBQ="_&Server.MapPath("網(wǎng)上購物.accdb")conn.OpenconnStr%>數(shù)據(jù)庫連接對象已建立!</body></html>上一頁下一頁返回5.4ASP存取數(shù)據(jù)庫4.連接SQLServer數(shù)據(jù)庫(1)創(chuàng)建基于OLEDB連接字符串的連接連接字符串語法:"Provider=SQLOLEDB.1;DataSource=計算機(jī)名或IP地址;"_&"InitialCatalog=數(shù)據(jù)庫名;UserID=sa;Password=密碼;"說明:Provider指定數(shù)據(jù)庫提供者;DataSource指定計算機(jī)名或IP地址;InitialCatalog指定數(shù)據(jù)庫名;UserID和Password指定登錄數(shù)據(jù)庫的用戶名和密碼。上一頁下一頁返回5.4ASP存取數(shù)據(jù)庫例5-25連接SQLServer數(shù)據(jù)庫方式之一。本例需要建立名為DBSql數(shù)據(jù)庫。將以下程序段保存到名為“例5-25.asp”的文件中。<html><body><%Setconn=Server.CreateObject("ADODB.Connection")connStr="Provider=SQLOLEDB.1;DataSource=(local);"_&"InitialCatalog=網(wǎng)上購物;UserID=sa;Password=123;"conn.OpenconnStr%>上一頁下一頁返回5.4ASP存取數(shù)據(jù)庫數(shù)據(jù)庫連接對象已建立!</body></html>(local)為本地服務(wù)器的計算機(jī)名,DBSql為用戶的數(shù)據(jù)庫名,sa為系統(tǒng)管理員,123為數(shù)據(jù)庫登錄密碼。上一頁下一頁返回5.4ASP存取數(shù)據(jù)庫(2)創(chuàng)建基于ODBC連接字符串的連接連接字符串語法:"Driver={SQLServer};Server=計算機(jī)名;Database=數(shù)據(jù)庫名;UID=sa;PWD=密碼;"說明:Driver指定連接數(shù)據(jù)庫的驅(qū)動程序;Server指定計算機(jī)名或IP地址;Database指定數(shù)據(jù)庫名;UID和PWD指定登錄數(shù)據(jù)庫的用戶名和密碼。上一頁下一頁返回5.4ASP存取數(shù)據(jù)庫例5-26連接SQLServer數(shù)據(jù)庫方式之二。將以下程序段保存到名為“例5-26.asp”的文件中。<html><body><%Setconn=Server.CreateObject("ADODB.Connection")connStr="Driver={SQLServer};Server=(local);Database=網(wǎng)上購物;"_&"UID=sa;PWD=123;"conn.OpenconnStr%>數(shù)據(jù)庫連接對象已建立!</body></html>上一頁下一頁返回5.4ASP存取數(shù)據(jù)庫5.4.2操作數(shù)據(jù)表1.Recordset對象語法:Set對象實例名稱=Server.CreateObject("ADODB.Recordset")對象實例名稱.Open數(shù)據(jù)源,連接對象實例,游標(biāo)類型,鎖定類型,指令類型上一頁下一頁返回5.4ASP存取數(shù)據(jù)庫說明:(1)打開記錄集使用的參數(shù)數(shù)據(jù)源:含有數(shù)據(jù)表名的SQL語句或直接書寫數(shù)據(jù)表名,也可以是存儲過程。連接對象實例:上面創(chuàng)建的conn,依此與數(shù)據(jù)庫建立了聯(lián)系。游標(biāo)類型:用于確定打開記錄集使用的游標(biāo)類型,參見表5-1。鎖定類型:用于確定打開記錄集使用的并發(fā)類型,參見表5-2。指令類型:用于確定數(shù)據(jù)庫查詢指令類型,參見表5-3。上一頁下一頁返回5.4ASP存取數(shù)據(jù)庫(2)Recordset對象的常用方法(參見表5-4)(3)Recordset對象的常用屬性(參見表5-5)例5-27創(chuàng)建一個可以修改的記錄集。將以下程序段保存到名為“例5-27.asp”的文件中。<html><body><%
使用上述步驟連接數(shù)據(jù)庫,這里省略,對象實例名稱為conn?Setrs=Server.CreateObject("ADODB.Recordset")Rs.Open"商品明細(xì)",conn,1,3%></body></html>上一頁下一頁返回5.4ASP存取數(shù)據(jù)庫2.添加記錄(1)利用Recordset給數(shù)據(jù)表添加記錄語法:rs.AddNew'增加一條新的空記錄rs("字段0")=值0'給字段0賦值rs("字段1")=值1'給字段1賦值…rs("字段n")=值n'給字段n賦值(n為數(shù)據(jù)表的字段個數(shù))rs.Update'保存新的有值的記錄到數(shù)據(jù)庫說明:添加記錄時所有字段可以不全部賦新值,未賦值的字段保存Null。上一頁下一頁返回5.4ASP存取數(shù)據(jù)庫例5-28利用Recordset添加記錄。將以下程序段保存到名為“例5-28.asp”的文件中。<html><body><%
使用上述步驟連接數(shù)據(jù)庫,這里省略,對象實例名稱為conn?Setrs=Server.CreateObject("ADODB.Recordset")sqlStr="Select*From商品明細(xì)"rs.OpensqlStr,conn,1,3rs.AddNew上一頁下一頁返回5.4ASP存取數(shù)據(jù)庫商品編碼
自動編號
rs("商品名稱")="計算機(jī)"rs("生產(chǎn)廠商")="聯(lián)想公司"'rs("銷售價格")=4500rs.Update
保存記錄rs.close
關(guān)閉記錄集conn.close
關(guān)閉連接%></body></html>例5-28給“商品明細(xì)”表添加一條“聯(lián)想公司”生產(chǎn)的“計算機(jī)”的記錄。上一頁下一頁返回5.4ASP存取數(shù)據(jù)庫(2)利用Insert語句給數(shù)據(jù)表添加記錄語法:conn.Execute("Insertinto數(shù)據(jù)表名(字段列表)Values(數(shù)值列表)")說明:conn為前面創(chuàng)建的數(shù)據(jù)庫連接對象實例;數(shù)據(jù)表名為要添加記錄的數(shù)據(jù)庫中表的名稱;字段列表為數(shù)據(jù)表中字段名稱的列表(給每個字段添加數(shù)據(jù),該列表可省略);數(shù)值列表為需要給數(shù)據(jù)表添加的具體數(shù)據(jù);如果有字段列表,數(shù)值列表必須其對應(yīng)并具有字段設(shè)置的數(shù)據(jù)類型;如果省略字段列表,數(shù)值列表中的數(shù)據(jù)個數(shù)必須與表的字段個數(shù)相同。上一頁下一頁返回5.4ASP存取數(shù)據(jù)庫例5-29利用Insert添加記錄。將以下程序段保存到名為“例5-29.asp”的文件中。<html><body><%
使用上述步驟連接數(shù)據(jù)庫,這里省略,對象實例名稱為conn?sqlStr="Insertinto商品明細(xì)(商品名稱,生產(chǎn)廠商,銷售價格)"_&"Values(
打印機(jī)
,
惠普公司
,2600)"conn.ExecutesqlStrconn.close%></body></html>例5-29同樣給“商品明細(xì)”表添加一條“惠普公司”生產(chǎn)的“打印機(jī)”記錄。上一頁下一頁返回5.4ASP存取數(shù)據(jù)庫3.刪除記錄(1)利用Recordset刪除數(shù)據(jù)表中的記錄語法
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c程猜數(shù)字游戲課程設(shè)計
- 娃娃玩具的本土化策略考核試卷
- 工程項目管理中的項目審計與合規(guī)性考核試卷
- 心理課程設(shè)計書籍
- 三農(nóng)地區(qū)農(nóng)業(yè)信息化建設(shè)方案
- 堅果加工設(shè)備性能提升與技術(shù)創(chuàng)新考核試卷
- 廚房金屬器具的營銷策略與市場定位考核試卷
- 最少拍控制系統(tǒng)課程設(shè)計
- 中醫(yī)藥現(xiàn)代化技術(shù)與產(chǎn)品研發(fā)計劃
- 在線教育平臺培訓(xùn)服務(wù)合同
- 工業(yè)自動化生產(chǎn)線操作手冊
- 2024年就業(yè)協(xié)議書樣本
- 物理學(xué)與人類文明學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 實驗室安全準(zhǔn)入教育學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 醫(yī)學(xué)教程 《精神衛(wèi)生法》解讀
- 人教版小學(xué)三年級數(shù)學(xué)上冊期末復(fù)習(xí)解答題應(yīng)用題大全50題含答案
- 中外廣告史(第三版) 課件 何玉杰 第10、11章 美國廣告的發(fā)展、日本廣告的發(fā)展
- 2024部編版語文一年級上冊第六單元大單元備課
- 意識形態(tài)分析研判制度
- Unit 6 I will bring a big bottle of orange juice(教學(xué)設(shè)計)-2024-2025學(xué)年湘少版(三起)英語六年級上冊
- 2024年秋新人教版生物七年級上冊課件 第二章 認(rèn)識細(xì)胞 1.2.1 學(xué)習(xí)使用顯微鏡
評論
0/150
提交評論