網(wǎng)絡(luò)系統(tǒng)集成技術(shù)_第1頁
網(wǎng)絡(luò)系統(tǒng)集成技術(shù)_第2頁
網(wǎng)絡(luò)系統(tǒng)集成技術(shù)_第3頁
網(wǎng)絡(luò)系統(tǒng)集成技術(shù)_第4頁
網(wǎng)絡(luò)系統(tǒng)集成技術(shù)_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

(優(yōu)選)網(wǎng)絡(luò)系統(tǒng)集成技術(shù)當(dāng)前1頁,總共67頁。第六章Web數(shù)據(jù)庫開發(fā)基礎(chǔ)當(dāng)前2頁,總共67頁。本章主要內(nèi)容6.1Web數(shù)據(jù)庫的概念6.2Web數(shù)據(jù)庫訪問技術(shù)6.3Web數(shù)據(jù)庫的技術(shù)實現(xiàn)6.4ASP基礎(chǔ)——內(nèi)置對象6.5ASP基礎(chǔ)——Web庫操作下學(xué)期有《Web數(shù)據(jù)庫程序設(shè)計》課,本章只結(jié)合實例作簡要介紹當(dāng)前3頁,總共67頁。6.1Web數(shù)據(jù)庫的概念當(dāng)前4頁,總共67頁。WhatisaWebDatabase?AdatabaseinawebsiteThreelayerstructure:Browser/Server/DatabaseServerClient:Browser+HTMLstandardServer:HomePage+Programming+DatabaseHomePage:FormsDesigninganinteractinguserinterfaceProgramming:CGI/ASP/PHP/JSP/…WritingprogramstoaccessadatabaseinawebsiteDatabase:Access/SQLserver/…Buildingadatastorageandmanagementsystem當(dāng)前5頁,總共67頁。地址欄中的網(wǎng)址瀏覽器上網(wǎng)頁形成的過程用戶電腦瀏覽器

http請求傳送網(wǎng)頁Web服務(wù)器網(wǎng)頁瀏覽原理:

瀏覽器(client端)——用戶電腦

發(fā)出HTTP請求,并按HTML等形式顯示網(wǎng)頁文件內(nèi)容

網(wǎng)站(server端)——Web服務(wù)器

響應(yīng)瀏覽器請求,傳送網(wǎng)頁文件給瀏覽器網(wǎng)頁文件當(dāng)前6頁,總共67頁。Web數(shù)據(jù)庫的存取方式(一)用戶電腦瀏覽器返回存取結(jié)果Web服務(wù)器Web數(shù)據(jù)庫CGI程序執(zhí)行存取通過服務(wù)器端的CGI程序響應(yīng)用戶查詢要求用戶通過表單提交后,指定的服務(wù)器端CGI程序?qū)eb數(shù)據(jù)庫進行存取操作,而后將結(jié)果以網(wǎng)頁(HTML)形式返回到客戶端用戶輸入數(shù)據(jù)當(dāng)前7頁,總共67頁。Web數(shù)據(jù)庫的存取方式(二)用戶電腦瀏覽器讀取asp網(wǎng)頁返回html碼結(jié)果Web服務(wù)器(IIS或PWS)Web數(shù)據(jù)庫ODBC驅(qū)動程序執(zhí)行存取通過服務(wù)器端的asp程序響應(yīng)用戶的要求服務(wù)器接受用戶端請求時會判斷要求下載的是否.asp文件,如不是,直接發(fā)送網(wǎng)頁。如是,再判斷該文件是否含有使用ADO對象的script(JavaScript或VBScript)內(nèi)容。如有,啟動對應(yīng)的ODBC驅(qū)動程序,通過ADO對象訪問數(shù)據(jù)庫。如需顯示結(jié)果,則Script會利用ASP提供的輸出對象送出數(shù)據(jù)傳送給瀏覽器。含有ADO對象的ASP指令、VBScript、JavaScript程序段當(dāng)前8頁,總共67頁。靜態(tài)網(wǎng)頁與動態(tài)網(wǎng)頁所謂靜態(tài)網(wǎng)頁,指的是網(wǎng)頁從服務(wù)器傳到客戶端時,網(wǎng)頁的內(nèi)容是“固定不變”的,也就是說,服務(wù)器只是把所存儲的網(wǎng)頁的內(nèi)容原封不動直接傳遞給客戶端瀏覽器,這種網(wǎng)頁一般是標(biāo)準(zhǔn)的HTML代碼。所謂動態(tài)網(wǎng)頁,它在由服務(wù)器傳遞給客戶端的時候?qū)⒂煞?wù)器把它轉(zhuǎn)換成相應(yīng)的HTML格式,而且會根據(jù)用戶的要求和選擇在服務(wù)器端做出相應(yīng)的改變和響應(yīng)。當(dāng)前9頁,總共67頁。動態(tài)網(wǎng)頁網(wǎng)頁的靜態(tài)和動態(tài),是指網(wǎng)頁的內(nèi)容是否可根據(jù)某種條件的改變而自動改變,與頁面是否有動畫性變化無關(guān)。網(wǎng)頁計數(shù)器:動態(tài)的,當(dāng)有人點擊網(wǎng)頁時,計數(shù)器的值會自動增加BBS論壇:動態(tài)的,用戶發(fā)布信息時,網(wǎng)頁內(nèi)容會自動更新,顯示出新發(fā)布的信息及相關(guān)回復(fù);等等。Flash等動畫(如Flash):靜態(tài)的,一旦制作完成后就不會再改變。實現(xiàn)動態(tài)網(wǎng)頁,要用到一些動態(tài)語言,如ASP、PHP、CGI、JSP、ASP.NET等。因此我們判斷動態(tài)、靜態(tài)網(wǎng)頁時,可以簡單的認(rèn)為,采用了以上語言編寫的網(wǎng)頁,肯定是動態(tài)的,而只采用了html文件的網(wǎng)頁,則是靜態(tài)的。靜態(tài)網(wǎng)頁文件名后綴有.htm、.html、.shtml、.xml等常見形式,而動態(tài)網(wǎng)頁文件名后綴有.asp、.jsp、.php、.pl、.cgi等常見形式當(dāng)前10頁,總共67頁。6.2Web數(shù)據(jù)庫訪問技術(shù)當(dāng)前11頁,總共67頁。ASP開發(fā)技術(shù)ASP(ActiveServerPages,活動服務(wù)器頁)微軟公司97年推出的一種網(wǎng)頁與數(shù)據(jù)庫解決方案,利用微軟的ActiveX技術(shù)在服務(wù)器端動態(tài)生成HTML頁面的一種腳本環(huán)境。

ASP是一種運行于服務(wù)器端的Web應(yīng)用程序開發(fā)技術(shù),它采用封裝對象,程序調(diào)用對象的技術(shù),簡化了編程。開發(fā)者無需進行復(fù)雜編程,就可以開發(fā)出動態(tài)的、交互的、各種功能的Web應(yīng)用程序。ASP應(yīng)用程序必須運行在配備IIS(WindowsNT/2000/2003)或PWS(Windows9X)的服務(wù)器上。IIS(InternetInformationServer)PWS(PersonalWebServer)常用開發(fā)工具:MicrosoftVisualInterDevMacromediaDreamweaverUltraDev最新一代:ASP.NET(/)ActiveX

VC++MSDN的解釋:Asetoftechnologiesthatenablessoftwarecomponentstointeractwithoneanotherinanetworkedenvironment,regardlessofthelanguageinwhichtheywerecreated.ActiveX?isbuiltontheComponentObjectModel(COM).《金山詞霸》的解釋:

微軟倡導(dǎo)的ActiveX網(wǎng)絡(luò)化多媒體對象技術(shù)當(dāng)前12頁,總共67頁。關(guān)于ASP.NET由于ASP程序和網(wǎng)頁的HTML混合在一起,使得程序看上去相當(dāng)?shù)碾s亂。而在現(xiàn)在的網(wǎng)站設(shè)計過程中,通常是由程序開發(fā)人員做后臺的程序開發(fā),前面有專業(yè)的美工設(shè)計頁面,這樣,在相互配合的過程中就會產(chǎn)生各種各樣的問題。同時,ASP頁面是有腳本語言解釋執(zhí)行的,速度受到影響。受到腳本語言自身條件的限制,而且在編寫ASP程序的時候不得不調(diào)用COM組件來完成一些功能。由于以上種種限制,微軟推出了ASP.NET。ASP.NET提供了一個全新而強大的服務(wù)器控件結(jié)構(gòu)。從外觀上看,ASP.NET和ASP是相近的,但是從本質(zhì)上是完全不同的。ASP.NET幾乎全是基于組件和模塊化,每一個頁、對象和HTML元素都是一個運行的組件對象。在開發(fā)語言上,ASP.NET拋棄了VBScript和JScript,而使用.NETFramework所支持的VB.NET,C#.NET等語言做為其開發(fā)語言,這些語言生成的網(wǎng)頁在后臺被轉(zhuǎn)換成了類并編譯成了一個DLL。由于ASP.NET是編譯執(zhí)行的,所以它比ASP擁有了更高的效率。當(dāng)前13頁,總共67頁。PHP(PersonalHomePageTools)類似于ASP的一種服務(wù)器端腳本語言,其語法大多從C、JAVA、PERL語言中借來,可更快速開發(fā)交互式動態(tài)網(wǎng)頁??缙脚_強大的數(shù)據(jù)庫集成功能(相同的PHP代碼無需更改即可在不同操作系統(tǒng)的Web服務(wù)器上運行),但提供的數(shù)據(jù)庫接口不統(tǒng)一(如對Oracle、Sybase和MySQL的接口不同)等原因,不適合于電子商務(wù)類網(wǎng)站。最佳組合:Linux+Apache+MySQL+PHP目前Internet上流行的網(wǎng)站構(gòu)架方式,即使用Linux作為操作系統(tǒng),Apache作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫,PHP作為服務(wù)器端腳本解釋器。由于這四個軟件都是開放源碼軟件,因此使用這種方式不用花一分錢就可以建立起一個穩(wěn)定、免費的網(wǎng)站系統(tǒng)。常用開發(fā)工具:ZDE(ZENDDEVELOPMENTENVIORMENT)PHPED最新版本:PHP5.0.4(課件目錄下可下載)主要網(wǎng)站:PHP開發(fā)技術(shù)當(dāng)前14頁,總共67頁。JSP(JavaServerPages)JSP是由SunMicrosystems公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP標(biāo)記(tag),就構(gòu)成了JSP網(wǎng)頁(*.jsp)。Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以HTML格式返回給客戶。程序片段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁以及發(fā)送email等等,這就是建立動態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,對客戶瀏覽器的要求最低,可以實現(xiàn)無Plugin,無ActiveX,無JavaApplet,甚至無Frame。

跨平臺支持(國外電子商務(wù)類網(wǎng)站多采有JSP技術(shù))通過JDBC實現(xiàn)與數(shù)據(jù)庫的連接JSP開發(fā)技術(shù)當(dāng)前15頁,總共67頁。ASP主要適用于WindowsNT/2000/2003服務(wù)器平臺,與IIS配套,無須專門安裝即可使用;PHP和JSP在大多數(shù)Linux、微軟Windows平臺、UNIX平臺上均可用,但需專門安裝。ASP網(wǎng)頁的文件擴展名為.asp,PHP網(wǎng)頁的文件擴展名為.php,JSP網(wǎng)頁的文件擴展名為.jsp性能比較(循環(huán)性能和數(shù)據(jù)庫存取測試)循環(huán)性能:JSP20000×20000次循環(huán)(4秒)/ASP和PHP2000×2000次循環(huán)(相差100倍)分別為63秒和84秒數(shù)據(jù)庫存?。▽racle8進行1000次插入/更新/選擇/刪除操作):JSP13秒/PHP69秒/ASP73秒其余參見P329表10-1ASP、PHP與JSP技術(shù)的平臺性能比較表10-2ASP、PHP與JSP技術(shù)的應(yīng)用性能比較ASP、PHP與JSP技術(shù)性能比較當(dāng)前16頁,總共67頁。CGI開發(fā)技術(shù)CGI(CommonGatewayInterface,通用網(wǎng)關(guān)接口)用于連接主頁和應(yīng)用程序的接口。HTML語言的功能比較貧乏,難以完成諸如訪問數(shù)據(jù)庫等一類的操作,如果需要先對數(shù)據(jù)庫進行操作(比如文件檢索系統(tǒng)),然后把訪問的結(jié)果動態(tài)地顯示在主頁上,只用HTML是無法做到的,所以CGI便應(yīng)運而生。CGI是在WebServer端運行的一個可執(zhí)行程序,通過主頁鏈接激活進行調(diào)用,并對該程序的返回結(jié)果進行處理,顯示在主頁上。最常用的CGI編程語言有Perl,此外還有C,C++,shellScript和VB。Perl編程效率最高,功能最強,但程序調(diào)試性較差。CGI網(wǎng)頁的文件擴展名與所用編程語言有關(guān)。如Perl為.pl,VB為.bas等。缺點:安全性較差/繁多進程占用大量服務(wù)器資源/編程困難,而且沒有自動保留狀態(tài)信息的功能(如用戶狀態(tài)),已不多用此外使用CGI程序時,需要不斷地產(chǎn)生和銷毀進程(process),執(zhí)行效率不高,一般情況:HTML100%ASP10%CGI1%當(dāng)前17頁,總共67頁。6.3Web數(shù)據(jù)庫的技術(shù)實現(xiàn)當(dāng)前18頁,總共67頁。建立數(shù)據(jù)庫安裝該數(shù)據(jù)庫所需的ODBC驅(qū)動程序創(chuàng)建ODBC數(shù)據(jù)源制作表單網(wǎng)頁和ASP網(wǎng)頁應(yīng)用程序Access數(shù)據(jù)庫Oracle數(shù)據(jù)庫VFP數(shù)據(jù)庫……AccessODBCDriverVFPODBCDriverOracleODBCDriver基本原理與流程當(dāng)前19頁,總共67頁。小型網(wǎng)站常用Web數(shù)據(jù)庫軟件——AccessMicrosoftOffice家族中的一員,是一種數(shù)據(jù)庫軟件。其數(shù)據(jù)庫中有一個或多個表(table),表中又有一個或多個數(shù)據(jù)欄(field),數(shù)據(jù)欄中存放的是實際的數(shù)據(jù)(data)。除了可以用來生成和管理數(shù)據(jù)庫,還有一個功能,即制作ASP網(wǎng)頁。Access數(shù)據(jù)庫(.mdb)生成的方法:新建→空Access數(shù)據(jù)庫→創(chuàng)建表→……可以將其他相關(guān)文件(如.dbf、.xls等文件)轉(zhuǎn)換為.mdb文件(獲取外部數(shù)據(jù)→導(dǎo)入)一個Access數(shù)據(jù)庫可以有多個表。彼此之間可通過主關(guān)鍵字關(guān)聯(lián)。當(dāng)前20頁,總共67頁。實用技術(shù)外部數(shù)據(jù)轉(zhuǎn)入(使用其他文件的數(shù)據(jù))獲取外部數(shù)據(jù)→導(dǎo)入數(shù)據(jù)轉(zhuǎn)出導(dǎo)出復(fù)制數(shù)據(jù)(上圖)隨機密碼的生成(下圖)要產(chǎn)生一組介于上限和下限之間的隨機數(shù):(9999-1000)×Rnd(-Timer())+1000(上限-下限)

×隨機數(shù)+下限示例:"jdw%"+CStr(Int((9999-1000)*Rnd(-Timer())+1000))+"#"當(dāng)前21頁,總共67頁。名詞解釋ODBC(OpenDataBaseConnectivity,開放式數(shù)據(jù)庫互聯(lián))由微軟公司制定的數(shù)據(jù)庫標(biāo)準(zhǔn)接口。只要用戶使用的數(shù)據(jù)庫軟件提供了ODBC驅(qū)動程序,就可讓應(yīng)用程序來存取這些數(shù)據(jù)庫。早期的數(shù)據(jù)庫程序開發(fā)者必須使用服務(wù)器數(shù)據(jù)庫廠商提供的開發(fā)工具才能實現(xiàn)數(shù)據(jù)庫的存取,因為每種數(shù)據(jù)庫軟件建立的文件類型不同。通過ODBC則可以存取不同廠商所提供的服務(wù)器數(shù)據(jù)庫。當(dāng)前22頁,總共67頁。創(chuàng)建ODBC數(shù)據(jù)源安裝數(shù)據(jù)庫驅(qū)動程序在Office套件安裝后,一般情況下Access的ODBC驅(qū)動程序為已安裝。創(chuàng)建系統(tǒng)數(shù)據(jù)源系統(tǒng)DSN→添加→選擇驅(qū)動程序→ODBCMicrosoftAccess安裝→數(shù)據(jù)源名→選取數(shù)據(jù)庫→高級(設(shè)置存取密碼)當(dāng)前23頁,總共67頁。檢查服務(wù)器的ASP是否正常IIS的默認(rèn)Web站點設(shè)置檢查主目錄文檔測試ASP工作是否正常編寫一個a.asp文檔,存放在主目錄下a.asp文件內(nèi)容<%=now%>/asp瀏覽器窗口上應(yīng)出現(xiàn)當(dāng)時日期和時間顯示當(dāng)前24頁,總共67頁。相關(guān)的HTML知識(復(fù)習(xí))問題:HTML(HyperTextMarkupLanguage,超文本標(biāo)記語言)——為什么如此稱呼?問題:網(wǎng)頁基本構(gòu)成<html><head><title><body>問題:常見標(biāo)記<br><p><table><tr><td><ahref=“url”>問題:表單基本構(gòu)成<formname=“student”action=“url”method=*>……<inputtype=submit><inputtype=reset></form>問題:表單元素——文本框、復(fù)選框、單選按鈕、列表框…當(dāng)前25頁,總共67頁。當(dāng)前26頁,總共67頁。常見表單元素(1)文本框<inputtype=textvalue=“name”size=10

maxlength=20>普通文本框顯示長度為10字符、最大長度為20個字符<inputtype=passwordname=“pwd”>密碼型文本框多行文本框(文本區(qū)域)<textareaname=comment

rows=5

cols=50></textarea>5行每行50個字符的多行文本框當(dāng)前27頁,總共67頁。常見表單元素(2)復(fù)選框<inputtype=checkboxname=fruit1>香蕉<inputtype=checkboxname=fruit2checked>蘋果(已預(yù)選)多個復(fù)選框中的name不能同值單選框<inputtype=radioname=fruit1>香蕉<inputtype=radioname=fruit2checked>蘋果(已預(yù)選)當(dāng)前28頁,總共67頁。常見表單元素(3)下拉列表框

<selectname=“xb"size="1"><optionvalue="jxx">電子信息工程學(xué)系</option><optionselectedvalue="wyx">外國語言學(xué)系</option><optionvalue="zwx">漢語言文學(xué)系</option><optionvalue="tyx">體育系</option></select>當(dāng)前29頁,總共67頁。常見表單元素(4)單選列表框與多選列表框<selectname=“others"size="3"

multiple><optionvalue="leader">系部領(lǐng)導(dǎo)</option><optionvalue="head“>學(xué)院領(lǐng)導(dǎo)</option><optionvalue=“student_head">學(xué)生干部</option><optionvalue="professors">高職稱教師</option></select>size="3”顯示三行multiple多選當(dāng)前30頁,總共67頁。表單及其數(shù)據(jù)的讀取Form(表單)設(shè)計每一個輸入欄必須設(shè)定NAME屬性,當(dāng)數(shù)據(jù)被送出時,NAME屬性的值會和其相對應(yīng)的VALUE屬性的值被轉(zhuǎn)換為“NAME=VALUE”的形式發(fā)送。不同的輸入欄中間會以“&”作分隔,即會形成“NAME1=VALUE1&NAME2=VALUE2”的形式兩種提交方法GET使用URL直接向服務(wù)器提交數(shù)據(jù)數(shù)據(jù)加在URL名后,用“?”分隔(總長度不得超過1024個字節(jié))POST通過STDIN(標(biāo)準(zhǔn)輸入)提交數(shù)據(jù)數(shù)據(jù)編碼后隱密發(fā)送,且長度不受限制當(dāng)前31頁,總共67頁。METHOD=GETGET方法的含義Brower按HTTP(HyperTextTransferProtocol)將用戶提交的數(shù)據(jù)傳送出去,而Server會把數(shù)據(jù)存放在服務(wù)器環(huán)境變量QUERY_STRING中,供處理程序(由表單的action屬性指定)使用。適合于傳輸少量的非隱密性的數(shù)據(jù)。什么是環(huán)境變量?一些由WEB服務(wù)器軟件申明的、保存用戶信息的內(nèi)存區(qū)。當(dāng)服務(wù)器軟件一旦運行,這些環(huán)境變量就存在于服務(wù)器內(nèi)存中。當(dāng)服務(wù)器收到一個客戶機的請求后,它首先要收集它能得到的所有相關(guān)信息,并把它放入內(nèi)存的環(huán)境變量中,等待ASP/PHP/CGI等程序去處理。當(dāng)前32頁,總共67頁。METHOD=POSTPOST方法的含義把用戶在表單中填寫的數(shù)據(jù)變成一個數(shù)據(jù)包/數(shù)據(jù)流傳給表單的Action屬性指定的處理程序。適合傳輸較大量的或隱密性的數(shù)據(jù)最常用當(dāng)前33頁,總共67頁。示例<FORMMETHOD=GETaction=“http://xxx/a.asp”><inputname=“name1”value=“aabb”><br><inputname=“name2”value=“ccdd”><p><inputtype=“submit”value=“submit”><inputtype=“reset”value=“reset”></FORM>提交后相當(dāng)于客戶機向服務(wù)器發(fā)出了一個如下的URL請求:http://xxx/a.asp?name1=aabb&name2=ccdd此時服務(wù)器端的環(huán)境變量QUERY_STRING和環(huán)境變量REQUEST_METHOD的值改變?yōu)椋篞UERY_STRING=“name1=aabb&name2=ccdd”

REQUEST_METHOD=GETASP程序可以用以下語句讀取表單元素的值Request(“表單元素名”)Request.QueryString(“表單元素名”)(僅用于GET方法)當(dāng)前34頁,總共67頁。表單提交時字符的編碼規(guī)則變量之間用“&”分隔變量與其對應(yīng)值之間用“=”分隔空格以“+”代替特殊字符如“&”、“=”、ASCII碼128以上的字符及漢字,以“%XX”代替,其中“XX”為特殊字符的16進制ASCII碼空格為非法數(shù)據(jù)任意不可打印的ASCII控制字符為非法字符當(dāng)前35頁,總共67頁。示例表單(6-1.htm)元素:你的姓名(name):輸入“張三”你的密碼(pwd):輸入“abcd”性別(male):單選“男”(value=male)提交給服務(wù)器時將會顯現(xiàn):/test.asp?name=%D5%C5%C8%FD

&pwd=ab+cd&sex=male&Submit=%CC%E1%BD%BB解讀:%D5%C5“張”(一個漢字兩個字節(jié))%C8%FD“三”+空格(用“+”代替)把6-1.htm中的傳送方法GET改為POST試試(思考:為什么pwd值不會顯示)※當(dāng)前36頁,總共67頁。注意:傳遞信息不僅是FORM利用Form在不同頁面之間傳遞用戶信息是最可靠的——適用于任何瀏覽器亦可通過其他方式,如ch6-1.1.htm<ahref=“member.asp?name=張三&sex=男&age=23”>張三</a><ahref=“member.asp?name=張三&sex=女&age=21”>李四</a>如果ASP文件主要針對Internet,以Form為佳當(dāng)前37頁,總共67頁。登錄程序示例6-3.htm當(dāng)前38頁,總共67頁。6.4ASP基礎(chǔ)——內(nèi)置對象當(dāng)前39頁,總共67頁。ASP的內(nèi)置對象ASP包括7個內(nèi)置對象,這些內(nèi)置對象共同組成的ASP的基本框架。內(nèi)置對象的意義在于:它們在ASP頁內(nèi)生成且有腳本中使用它們前無須創(chuàng)建。編程者只要了解這些內(nèi)置對象的屬性、方法和事件,就可以非常方便地開發(fā)自己的Web應(yīng)用程序。Request獲取用戶通過瀏覽器表單向服務(wù)器發(fā)送的信息Response將執(zhí)行結(jié)果傳輸給用戶瀏覽器Session用來記錄連接者的信息(每個連接者都有一個獨立的Session

對象)Application用來記錄不同網(wǎng)頁的共用信息(所有用戶可共用該信息)Server與用于提供對服務(wù)器的訪問,如和其他對象配套(如與ADO

對象配套)使用,與庫文件產(chǎn)生鏈接。Asperror用于出錯處理Objectcontext用于通過MicrosoftTransactionServer來提交或中止某項

交易最后兩項是ASP3.0新增的對象當(dāng)前40頁,總共67頁。在ASP頁面中使用腳本<%%>IIS默認(rèn)的腳本語言是VBScript,必要時可改為JavaScript方法:IIS→默認(rèn)Web站點→屬性→主目錄→配置→應(yīng)用程序選項(右圖)當(dāng)前41頁,總共67頁。Request對象用于處理HTTP協(xié)議的請求獲取用戶信息可以有多種常用形式Request(element)Request.Form(element)(index)Request.QueryString(element)Request.QueryString(index)實例分析EXAMexam6-1.1.htm及對應(yīng)的member.aspForm1.htm及對應(yīng)的form1.asp當(dāng)前42頁,總共67頁。Response對象用于負(fù)責(zé)HTTP協(xié)議的響應(yīng),如將asp處理后的變量值等轉(zhuǎn)換為HTML元素輸出到用戶瀏覽器上常用形式Response.Write相當(dāng)于C語言中的printResponse.Redirect“URL”實現(xiàn)頁面的跳轉(zhuǎn)Response.End結(jié)束ASP運行進程并將執(zhí)行好的HTML文件送向用戶瀏覽器實例分析Register.htm及對應(yīng)的Redirect.asp當(dāng)前43頁,總共67頁。Server對象提供對服務(wù)器相關(guān)的操作常用形式Server.CreatObject("ActiveX組件名")創(chuàng)建一個ActiveXServer組件對象的實例示例:Server.CreatObject("ADODB.Connection")Server.MapPath("文件路徑\文件名")將指定的路徑及文件映射到服務(wù)器網(wǎng)站目錄下如果網(wǎng)站所在虛擬目錄是c:\Inetpub\wwwroot則Server.MapPath("Data.mdb")表示

c:\Inetpub\wwwroot\Daba.mdb而Server.MapPath("stu\stu.mdb")和Server.MapPath("..\teacher\teacher.mdb")分別表示c:\Inetpub\wwwroot\stu\stu.mdbc:\Inetpub\teacher\teacher.mdb當(dāng)前44頁,總共67頁。Session對象在一次用戶訪問期間(“會話期間”),當(dāng)用戶在一個應(yīng)用程序的頁與頁之間跳轉(zhuǎn)時,用戶信息(如用戶在登錄時輸入的密碼)無法保留,其結(jié)果要么某一頁可以繞過密碼檢查而任意訪問,要么每一頁都要重新輸入密碼。使用ASP的session對象,可以為每個用戶保存?zhèn)€人相關(guān)信息。例如用session變量來保存某個用戶的帳號和密碼,只要用戶沒有關(guān)掉瀏覽器,則這些信息會一直得以保存,并可以session變量的形式被調(diào)用。Session變量的有效執(zhí)行時間(用戶暫停動作時間)默認(rèn)是20分鐘??捎靡韵抡Z句改變其值:Session.Timeout=分鐘數(shù)示例:session("usr")=Request.Form("xh")session("pwd")=Request.Form("pw")在本頁及以后各頁就可以通過下頁示例進行密碼校驗,而不必讓用戶每頁都輸入密碼。當(dāng)前45頁,總共67頁。<%Ifsession("pwd")<>"…"then%><ahref=“index.htm">返回上頁</a><p><%Response.Write"密碼輸入錯誤,請返回上頁重新輸入!"Response.endEndif%><%IfSession("pwd")<>Session("RS").Fields(“password")Then%><ahref="xkxt.htm">返回選課系統(tǒng)首頁</a><p><%

Response.Write“學(xué)號、密碼輸入錯誤或個人資料不正確,請返回選課系統(tǒng)首頁重新輸入!"Response.EndEndif%>session("RS").Fields(“password")是用變量session("usr")從數(shù)據(jù)庫中取出的用戶密碼字段值當(dāng)前46頁,總共67頁。Application對象用于保存不同用戶之間共有的信息實例(見招生查詢首頁—2004zs.asp)最簡單的“計數(shù)器”

當(dāng)前在線人數(shù):<%=Application(“whoison")%>人另一實例:<%IfApplication("whoison")>50thenresponse.write"當(dāng)前在線人數(shù)"+cstr(Application("whoison"))+"人。<br><br>"response.write"選課人數(shù)太多,請退回選課首頁,稍后再試……<br><br>"%><ahref="95/cgi-bin/xk0412/xkxt.htm">返回上頁</a><p><%

response.endendif

%>變量Application(“whoison")由一個必須存放在網(wǎng)站根目錄下的global.asa文件定義當(dāng)前47頁,總共67頁。小結(jié):網(wǎng)頁數(shù)據(jù)傳送方式比較讓用戶提交的信息通過瀏覽器跨頁傳送表單希望保存某一用戶相關(guān)的變量Session需要在一次訪問多頁文件中使用時Cookie需要在客戶端長期保存用戶信息以便多次訪問使用時多個用戶共同使用某一共享變量Application當(dāng)前48頁,總共67頁。VBScript常識變量命名類似于C語言,但首字符必須是字母。變量不必先聲明再使用變量名稱和關(guān)鍵字無大小寫之分字符串——用單引號或雙引號括起整數(shù)/小數(shù)型布爾型True/False日期型用#…#括起示例:#May12,2005#控制結(jié)構(gòu)(選擇\循環(huán))見后當(dāng)前49頁,總共67頁。6.5ASP基礎(chǔ)——Web庫操作當(dāng)前50頁,總共67頁。ADO(ActiveXDataObjects)ADO則是微軟公司提供的一組訪問Internet數(shù)據(jù)庫專用技術(shù)。它為ASP提供了完整的站點數(shù)據(jù)庫解決方案,它作用在服務(wù)器端,可鏈接數(shù)據(jù)庫、操作數(shù)據(jù)庫、查詢數(shù)據(jù)庫,并可將數(shù)據(jù)庫訪問結(jié)果添加到Web頁面上。使用ADO可以輕松地完成對各種數(shù)據(jù)庫(SQLserver,Access,Oracle,Sybase)的查詢和存取操作,甚至可從Excel中讀取信息。ADO主要包括Connection,Recordset和Command三個對象,

它們的主要功能如下:

Connection對象:與DSN結(jié)合在ASP與數(shù)據(jù)庫間建立鏈接關(guān)系;

Recordset對象:用于數(shù)據(jù)查詢作業(yè)(形成記錄指針);

Command對象:用來對數(shù)據(jù)庫傳遞SQL指令,并對數(shù)據(jù)庫進行存取操作。

ADO已集成于IIS或PWS中。當(dāng)前51頁,總共67頁。WEB數(shù)據(jù)庫編程基本模塊建立數(shù)據(jù)庫打開數(shù)據(jù)庫(標(biāo)準(zhǔn)語句)□創(chuàng)建數(shù)據(jù)庫對象□打開數(shù)據(jù)庫數(shù)據(jù)庫操作(標(biāo)準(zhǔn)語句)

□提取記錄□查詢/新增/刪除/更新關(guān)閉數(shù)據(jù)庫(標(biāo)準(zhǔn)語句)其他常用技術(shù)□頁面間的參數(shù)傳遞□用戶間的參數(shù)傳遞當(dāng)前52頁,總共67頁。“芝麻開門”:打開數(shù)據(jù)庫語句一:建立庫對象Set對象變量名=Server.CreatObject("ADODB.Connection")

示例:Set

MyCon=Server.CreateObject("ADODB.Connection")

CreatObject是Server對象中用于建立一個可與數(shù)據(jù)庫交換數(shù)據(jù)對象的函數(shù)。上句的功能是建立一個可與數(shù)據(jù)庫交換數(shù)據(jù)的對象。語句二:鏈接數(shù)據(jù)庫對象變量名.Open鏈接字符串,(用戶帳號),(密碼)示例(使用ODBC數(shù)據(jù)源時):MyCon.Open"DSN=address;UID=;PWD="

打開ODBC中的數(shù)據(jù)源address源(UID-用戶帳號;PWD-密碼)

Open是Connection對象的一個方法。若所需數(shù)據(jù)庫有安全性管制,應(yīng)附加用戶帳號和密碼兩項,否則不加。如:

MyCon.Open"DSN=address"

此句的作用類似于FoxBASE語句:

useaddress當(dāng)前53頁,總共67頁。直接鏈接時的鏈接字符串如果不采用ODBC數(shù)據(jù)源,則鏈接字符串的形式如下:Provider=Microsoft.Jet.OLEDB4.0;DataSource=數(shù)據(jù)庫路徑名稱若所需數(shù)據(jù)庫有安全性管制,應(yīng)附加用戶帳號和密碼兩項,否則不加。如對Access數(shù)據(jù)庫stu.mdb:SetMyCon=Server.CreatObject("ADODB.Connection")MyCon.Open"Provider=Microsoft.Jet.OLEDB4.0;

DataSource=stu.mdb"如果數(shù)據(jù)源路徑是網(wǎng)站所設(shè)定的虛擬目錄(設(shè)為C:\asp\ptu\),剛可用

MyCon.Open"Provider=Microsoft.Jet.OLEDB4.0;

DataSource="&Server.MapPath("stu.mdb")句中Server.MapPath("stu.mdb")代表C:\asp\ptu\stu.mdb當(dāng)前54頁,總共67頁。經(jīng)驗:NTFS下ODBC數(shù)據(jù)源的使用服務(wù)器文件系統(tǒng)為NTFS格式時,如果用戶通過瀏覽器對ODBC數(shù)據(jù)庫的記錄進行更新、刪除等寫操作,會因權(quán)限不足而出現(xiàn)出錯提示(但查詢正常)。解決方案:設(shè)置權(quán)限使IUSR_...(Internet來賓帳號)對

c:\programfiles\commonfiles\ODBC

文件夾有寫入權(quán)設(shè)置權(quán)限使IUSR_...(Internet來賓帳號)對c:\winnt\temp文件夾有寫入權(quán)設(shè)置權(quán)限使IUSR_...(Internet來賓帳號)對ACCESS數(shù)據(jù)庫文件所在的文件夾有寫入權(quán)(讀取與寫入權(quán)限即夠了)當(dāng)前55頁,總共67頁。提取數(shù)據(jù)庫中的記錄建立數(shù)據(jù)庫鏈接后,connection對象變量就將在ASP程序中代表所要操作的數(shù)據(jù)庫RecordSet的概念RecordSet用于儲存connetcion對象讀取的數(shù)據(jù)紀(jì)錄。每個RecordSet對象都相當(dāng)于一個數(shù)據(jù)表,保存著用該對象的Open指令讀取所需的全部記錄,并可通過記錄指針的移動對這些記錄進行各種庫操作(開始時記錄指針指在第一條記錄處)當(dāng)前56頁,總共67頁。SetRS=Server.CreateObject(“ADODB.RecordSet”)建立一個名為RS的RecordSet對象此句的作用是產(chǎn)生一個可在數(shù)據(jù)表中移動指針的ADO對象。Set

RS.ActiveConnection=MyCon將RS與Connection對象MyCon聯(lián)系起來。RS.Open"select*fromstudentwhere學(xué)號like'"&Request.Form("T1")&"'",,1,2

在MyCon代表的數(shù)據(jù)庫中打開數(shù)據(jù)表student,按where子句的要求提取記錄,存放在所建立的RecordSet對象RS中,以便進行庫操作典型語句當(dāng)前57頁,總共67頁。小結(jié):你明白了沒有?打開Web數(shù)據(jù)庫的操作不同于一般數(shù)據(jù)庫先建立一個庫對象,將它與服務(wù)器上的所需操作的某個數(shù)據(jù)庫鏈接。在程序中將用也只用該庫對象名代表所操作的數(shù)據(jù)庫。然后建立一個記錄集對象,用它存入所需操作的全部記錄。在程序中將用、也只用該記錄集對象代表所操作的數(shù)據(jù)。事實上還有其他一些語句可以實現(xiàn)以上功能。下學(xué)期諸位將會在專門的課程中學(xué)到。當(dāng)前58頁,總共67頁。常用SQL查詢語句用法Select字段名1,字段名2,…from表名

從表中取所指定字段的數(shù)據(jù)*表示所有字段Select字段名1,字段名2,…from表名where查詢條件

從表中取符合查詢條件的所指定字段的數(shù)據(jù)(見右例)Select字段名1,字段名2,…from表名Orderby字段名1,字段名2,…desc

從表中取所指定字段的數(shù)據(jù),將數(shù)據(jù)依序排列(desc表示從大到小排序)【例】Select姓名,職稱from表名wherename=“華生”Select姓名,職稱from表名wherename=“華*”Select*from表名wherename=“*生*”注:在ADOSQL中模糊查找格式有所不同(見下)當(dāng)前59頁,總共67頁。典型ADOSQL查詢語句分析精確查找

Select*from數(shù)據(jù)表名where字段名=……例:Select*frompersonwherename=‘陳秀振’Select*fromchengjiwhere考試日期=#2000/6/8#Select*from

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論