版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
(優(yōu)選)網(wǎng)絡(luò)系統(tǒng)集成技術(shù)當(dāng)前1頁(yè),總共67頁(yè)。第六章Web數(shù)據(jù)庫(kù)開發(fā)基礎(chǔ)當(dāng)前2頁(yè),總共67頁(yè)。本章主要內(nèi)容6.1Web數(shù)據(jù)庫(kù)的概念6.2Web數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)6.3Web數(shù)據(jù)庫(kù)的技術(shù)實(shí)現(xiàn)6.4ASP基礎(chǔ)——內(nèi)置對(duì)象6.5ASP基礎(chǔ)——Web庫(kù)操作下學(xué)期有《Web數(shù)據(jù)庫(kù)程序設(shè)計(jì)》課,本章只結(jié)合實(shí)例作簡(jiǎn)要介紹當(dāng)前3頁(yè),總共67頁(yè)。6.1Web數(shù)據(jù)庫(kù)的概念當(dāng)前4頁(yè),總共67頁(yè)。WhatisaWebDatabase?AdatabaseinawebsiteThreelayerstructure:Browser/Server/DatabaseServerClient:Browser+HTMLstandardServer:HomePage+Programming+DatabaseHomePage:FormsDesigninganinteractinguserinterfaceProgramming:CGI/ASP/PHP/JSP/…WritingprogramstoaccessadatabaseinawebsiteDatabase:Access/SQLserver/…Buildingadatastorageandmanagementsystem當(dāng)前5頁(yè),總共67頁(yè)。地址欄中的網(wǎng)址瀏覽器上網(wǎng)頁(yè)形成的過(guò)程用戶電腦瀏覽器
http請(qǐng)求傳送網(wǎng)頁(yè)Web服務(wù)器網(wǎng)頁(yè)瀏覽原理:
瀏覽器(client端)——用戶電腦
發(fā)出HTTP請(qǐng)求,并按HTML等形式顯示網(wǎng)頁(yè)文件內(nèi)容
網(wǎng)站(server端)——Web服務(wù)器
響應(yīng)瀏覽器請(qǐng)求,傳送網(wǎng)頁(yè)文件給瀏覽器網(wǎng)頁(yè)文件當(dāng)前6頁(yè),總共67頁(yè)。Web數(shù)據(jù)庫(kù)的存取方式(一)用戶電腦瀏覽器返回存取結(jié)果Web服務(wù)器Web數(shù)據(jù)庫(kù)CGI程序執(zhí)行存取通過(guò)服務(wù)器端的CGI程序響應(yīng)用戶查詢要求用戶通過(guò)表單提交后,指定的服務(wù)器端CGI程序?qū)eb數(shù)據(jù)庫(kù)進(jìn)行存取操作,而后將結(jié)果以網(wǎng)頁(yè)(HTML)形式返回到客戶端用戶輸入數(shù)據(jù)當(dāng)前7頁(yè),總共67頁(yè)。Web數(shù)據(jù)庫(kù)的存取方式(二)用戶電腦瀏覽器讀取asp網(wǎng)頁(yè)返回html碼結(jié)果Web服務(wù)器(IIS或PWS)Web數(shù)據(jù)庫(kù)ODBC驅(qū)動(dòng)程序執(zhí)行存取通過(guò)服務(wù)器端的asp程序響應(yīng)用戶的要求服務(wù)器接受用戶端請(qǐng)求時(shí)會(huì)判斷要求下載的是否.asp文件,如不是,直接發(fā)送網(wǎng)頁(yè)。如是,再判斷該文件是否含有使用ADO對(duì)象的script(JavaScript或VBScript)內(nèi)容。如有,啟動(dòng)對(duì)應(yīng)的ODBC驅(qū)動(dòng)程序,通過(guò)ADO對(duì)象訪問(wèn)數(shù)據(jù)庫(kù)。如需顯示結(jié)果,則Script會(huì)利用ASP提供的輸出對(duì)象送出數(shù)據(jù)傳送給瀏覽器。含有ADO對(duì)象的ASP指令、VBScript、JavaScript程序段當(dāng)前8頁(yè),總共67頁(yè)。靜態(tài)網(wǎng)頁(yè)與動(dòng)態(tài)網(wǎng)頁(yè)所謂靜態(tài)網(wǎng)頁(yè),指的是網(wǎng)頁(yè)從服務(wù)器傳到客戶端時(shí),網(wǎng)頁(yè)的內(nèi)容是“固定不變”的,也就是說(shuō),服務(wù)器只是把所存儲(chǔ)的網(wǎng)頁(yè)的內(nèi)容原封不動(dòng)直接傳遞給客戶端瀏覽器,這種網(wǎng)頁(yè)一般是標(biāo)準(zhǔn)的HTML代碼。所謂動(dòng)態(tài)網(wǎng)頁(yè),它在由服務(wù)器傳遞給客戶端的時(shí)候?qū)⒂煞?wù)器把它轉(zhuǎn)換成相應(yīng)的HTML格式,而且會(huì)根據(jù)用戶的要求和選擇在服務(wù)器端做出相應(yīng)的改變和響應(yīng)。當(dāng)前9頁(yè),總共67頁(yè)。動(dòng)態(tài)網(wǎng)頁(yè)網(wǎng)頁(yè)的靜態(tài)和動(dòng)態(tài),是指網(wǎng)頁(yè)的內(nèi)容是否可根據(jù)某種條件的改變而自動(dòng)改變,與頁(yè)面是否有動(dòng)畫性變化無(wú)關(guān)。網(wǎng)頁(yè)計(jì)數(shù)器:動(dòng)態(tài)的,當(dāng)有人點(diǎn)擊網(wǎng)頁(yè)時(shí),計(jì)數(shù)器的值會(huì)自動(dòng)增加BBS論壇:動(dòng)態(tài)的,用戶發(fā)布信息時(shí),網(wǎng)頁(yè)內(nèi)容會(huì)自動(dòng)更新,顯示出新發(fā)布的信息及相關(guān)回復(fù);等等。Flash等動(dòng)畫(如Flash):靜態(tài)的,一旦制作完成后就不會(huì)再改變。實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè),要用到一些動(dòng)態(tài)語(yǔ)言,如ASP、PHP、CGI、JSP、ASP.NET等。因此我們判斷動(dòng)態(tài)、靜態(tài)網(wǎng)頁(yè)時(shí),可以簡(jiǎn)單的認(rèn)為,采用了以上語(yǔ)言編寫的網(wǎng)頁(yè),肯定是動(dòng)態(tài)的,而只采用了html文件的網(wǎng)頁(yè),則是靜態(tài)的。靜態(tài)網(wǎng)頁(yè)文件名后綴有.htm、.html、.shtml、.xml等常見形式,而動(dòng)態(tài)網(wǎng)頁(yè)文件名后綴有.asp、.jsp、.php、.pl、.cgi等常見形式當(dāng)前10頁(yè),總共67頁(yè)。6.2Web數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)當(dāng)前11頁(yè),總共67頁(yè)。ASP開發(fā)技術(shù)ASP(ActiveServerPages,活動(dòng)服務(wù)器頁(yè))微軟公司97年推出的一種網(wǎng)頁(yè)與數(shù)據(jù)庫(kù)解決方案,利用微軟的ActiveX技術(shù)在服務(wù)器端動(dòng)態(tài)生成HTML頁(yè)面的一種腳本環(huán)境。
ASP是一種運(yùn)行于服務(wù)器端的Web應(yīng)用程序開發(fā)技術(shù),它采用封裝對(duì)象,程序調(diào)用對(duì)象的技術(shù),簡(jiǎn)化了編程。開發(fā)者無(wú)需進(jìn)行復(fù)雜編程,就可以開發(fā)出動(dòng)態(tài)的、交互的、各種功能的Web應(yīng)用程序。ASP應(yīng)用程序必須運(yùn)行在配備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ò)化多媒體對(duì)象技術(shù)當(dāng)前12頁(yè),總共67頁(yè)。關(guān)于ASP.NET由于ASP程序和網(wǎng)頁(yè)的HTML混合在一起,使得程序看上去相當(dāng)?shù)碾s亂。而在現(xiàn)在的網(wǎng)站設(shè)計(jì)過(guò)程中,通常是由程序開發(fā)人員做后臺(tái)的程序開發(fā),前面有專業(yè)的美工設(shè)計(jì)頁(yè)面,這樣,在相互配合的過(guò)程中就會(huì)產(chǎn)生各種各樣的問(wèn)題。同時(shí),ASP頁(yè)面是有腳本語(yǔ)言解釋執(zhí)行的,速度受到影響。受到腳本語(yǔ)言自身?xiàng)l件的限制,而且在編寫ASP程序的時(shí)候不得不調(diào)用COM組件來(lái)完成一些功能。由于以上種種限制,微軟推出了ASP.NET。ASP.NET提供了一個(gè)全新而強(qiáng)大的服務(wù)器控件結(jié)構(gòu)。從外觀上看,ASP.NET和ASP是相近的,但是從本質(zhì)上是完全不同的。ASP.NET幾乎全是基于組件和模塊化,每一個(gè)頁(yè)、對(duì)象和HTML元素都是一個(gè)運(yùn)行的組件對(duì)象。在開發(fā)語(yǔ)言上,ASP.NET拋棄了VBScript和JScript,而使用.NETFramework所支持的VB.NET,C#.NET等語(yǔ)言做為其開發(fā)語(yǔ)言,這些語(yǔ)言生成的網(wǎng)頁(yè)在后臺(tái)被轉(zhuǎn)換成了類并編譯成了一個(gè)DLL。由于ASP.NET是編譯執(zhí)行的,所以它比ASP擁有了更高的效率。當(dāng)前13頁(yè),總共67頁(yè)。PHP(PersonalHomePageTools)類似于ASP的一種服務(wù)器端腳本語(yǔ)言,其語(yǔ)法大多從C、JAVA、PERL語(yǔ)言中借來(lái),可更快速開發(fā)交互式動(dòng)態(tài)網(wǎng)頁(yè)??缙脚_(tái)強(qiáng)大的數(shù)據(jù)庫(kù)集成功能(相同的PHP代碼無(wú)需更改即可在不同操作系統(tǒng)的Web服務(wù)器上運(yùn)行),但提供的數(shù)據(jù)庫(kù)接口不統(tǒng)一(如對(duì)Oracle、Sybase和MySQL的接口不同)等原因,不適合于電子商務(wù)類網(wǎng)站。最佳組合:Linux+Apache+MySQL+PHP目前Internet上流行的網(wǎng)站構(gòu)架方式,即使用Linux作為操作系統(tǒng),Apache作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫(kù),PHP作為服務(wù)器端腳本解釋器。由于這四個(gè)軟件都是開放源碼軟件,因此使用這種方式不用花一分錢就可以建立起一個(gè)穩(wěn)定、免費(fèi)的網(wǎng)站系統(tǒng)。常用開發(fā)工具:ZDE(ZENDDEVELOPMENTENVIORMENT)PHPED最新版本:PHP5.0.4(課件目錄下可下載)主要網(wǎng)站:PHP開發(fā)技術(shù)當(dāng)前14頁(yè),總共67頁(yè)。JSP(JavaServerPages)JSP是由SunMicrosystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。在傳統(tǒng)的網(wǎng)頁(yè)HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP標(biāo)記(tag),就構(gòu)成了JSP網(wǎng)頁(yè)(*.jsp)。Web服務(wù)器在遇到訪問(wèn)JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以HTML格式返回給客戶。程序片段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)以及發(fā)送email等等,這就是建立動(dòng)態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,對(duì)客戶瀏覽器的要求最低,可以實(shí)現(xiàn)無(wú)Plugin,無(wú)ActiveX,無(wú)JavaApplet,甚至無(wú)Frame。
跨平臺(tái)支持(國(guó)外電子商務(wù)類網(wǎng)站多采有JSP技術(shù))通過(guò)JDBC實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的連接JSP開發(fā)技術(shù)當(dāng)前15頁(yè),總共67頁(yè)。ASP主要適用于WindowsNT/2000/2003服務(wù)器平臺(tái),與IIS配套,無(wú)須專門安裝即可使用;PHP和JSP在大多數(shù)Linux、微軟Windows平臺(tái)、UNIX平臺(tái)上均可用,但需專門安裝。ASP網(wǎng)頁(yè)的文件擴(kuò)展名為.asp,PHP網(wǎng)頁(yè)的文件擴(kuò)展名為.php,JSP網(wǎng)頁(yè)的文件擴(kuò)展名為.jsp性能比較(循環(huán)性能和數(shù)據(jù)庫(kù)存取測(cè)試)循環(huán)性能:JSP20000×20000次循環(huán)(4秒)/ASP和PHP2000×2000次循環(huán)(相差100倍)分別為63秒和84秒數(shù)據(jù)庫(kù)存?。▽?duì)Oracle8進(jìn)行1000次插入/更新/選擇/刪除操作):JSP13秒/PHP69秒/ASP73秒其余參見P329表10-1ASP、PHP與JSP技術(shù)的平臺(tái)性能比較表10-2ASP、PHP與JSP技術(shù)的應(yīng)用性能比較ASP、PHP與JSP技術(shù)性能比較當(dāng)前16頁(yè),總共67頁(yè)。CGI開發(fā)技術(shù)CGI(CommonGatewayInterface,通用網(wǎng)關(guān)接口)用于連接主頁(yè)和應(yīng)用程序的接口。HTML語(yǔ)言的功能比較貧乏,難以完成諸如訪問(wèn)數(shù)據(jù)庫(kù)等一類的操作,如果需要先對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作(比如文件檢索系統(tǒng)),然后把訪問(wèn)的結(jié)果動(dòng)態(tài)地顯示在主頁(yè)上,只用HTML是無(wú)法做到的,所以CGI便應(yīng)運(yùn)而生。CGI是在WebServer端運(yùn)行的一個(gè)可執(zhí)行程序,通過(guò)主頁(yè)鏈接激活進(jìn)行調(diào)用,并對(duì)該程序的返回結(jié)果進(jìn)行處理,顯示在主頁(yè)上。最常用的CGI編程語(yǔ)言有Perl,此外還有C,C++,shellScript和VB。Perl編程效率最高,功能最強(qiáng),但程序調(diào)試性較差。CGI網(wǎng)頁(yè)的文件擴(kuò)展名與所用編程語(yǔ)言有關(guān)。如Perl為.pl,VB為.bas等。缺點(diǎn):安全性較差/繁多進(jìn)程占用大量服務(wù)器資源/編程困難,而且沒(méi)有自動(dòng)保留狀態(tài)信息的功能(如用戶狀態(tài)),已不多用此外使用CGI程序時(shí),需要不斷地產(chǎn)生和銷毀進(jìn)程(process),執(zhí)行效率不高,一般情況:HTML100%ASP10%CGI1%當(dāng)前17頁(yè),總共67頁(yè)。6.3Web數(shù)據(jù)庫(kù)的技術(shù)實(shí)現(xiàn)當(dāng)前18頁(yè),總共67頁(yè)。建立數(shù)據(jù)庫(kù)安裝該數(shù)據(jù)庫(kù)所需的ODBC驅(qū)動(dòng)程序創(chuàng)建ODBC數(shù)據(jù)源制作表單網(wǎng)頁(yè)和ASP網(wǎng)頁(yè)應(yīng)用程序Access數(shù)據(jù)庫(kù)Oracle數(shù)據(jù)庫(kù)VFP數(shù)據(jù)庫(kù)……AccessODBCDriverVFPODBCDriverOracleODBCDriver基本原理與流程當(dāng)前19頁(yè),總共67頁(yè)。小型網(wǎng)站常用Web數(shù)據(jù)庫(kù)軟件——AccessMicrosoftOffice家族中的一員,是一種數(shù)據(jù)庫(kù)軟件。其數(shù)據(jù)庫(kù)中有一個(gè)或多個(gè)表(table),表中又有一個(gè)或多個(gè)數(shù)據(jù)欄(field),數(shù)據(jù)欄中存放的是實(shí)際的數(shù)據(jù)(data)。除了可以用來(lái)生成和管理數(shù)據(jù)庫(kù),還有一個(gè)功能,即制作ASP網(wǎng)頁(yè)。Access數(shù)據(jù)庫(kù)(.mdb)生成的方法:新建→空Access數(shù)據(jù)庫(kù)→創(chuàng)建表→……可以將其他相關(guān)文件(如.dbf、.xls等文件)轉(zhuǎn)換為.mdb文件(獲取外部數(shù)據(jù)→導(dǎo)入)一個(gè)Access數(shù)據(jù)庫(kù)可以有多個(gè)表。彼此之間可通過(guò)主關(guān)鍵字關(guān)聯(lián)。當(dāng)前20頁(yè),總共67頁(yè)。實(shí)用技術(shù)外部數(shù)據(jù)轉(zhuǎn)入(使用其他文件的數(shù)據(jù))獲取外部數(shù)據(jù)→導(dǎo)入數(shù)據(jù)轉(zhuǎn)出導(dǎo)出復(fù)制數(shù)據(jù)(上圖)隨機(jī)密碼的生成(下圖)要產(chǎn)生一組介于上限和下限之間的隨機(jī)數(shù):(9999-1000)×Rnd(-Timer())+1000(上限-下限)
×隨機(jī)數(shù)+下限示例:"jdw%"+CStr(Int((9999-1000)*Rnd(-Timer())+1000))+"#"當(dāng)前21頁(yè),總共67頁(yè)。名詞解釋ODBC(OpenDataBaseConnectivity,開放式數(shù)據(jù)庫(kù)互聯(lián))由微軟公司制定的數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)接口。只要用戶使用的數(shù)據(jù)庫(kù)軟件提供了ODBC驅(qū)動(dòng)程序,就可讓應(yīng)用程序來(lái)存取這些數(shù)據(jù)庫(kù)。早期的數(shù)據(jù)庫(kù)程序開發(fā)者必須使用服務(wù)器數(shù)據(jù)庫(kù)廠商提供的開發(fā)工具才能實(shí)現(xiàn)數(shù)據(jù)庫(kù)的存取,因?yàn)槊糠N數(shù)據(jù)庫(kù)軟件建立的文件類型不同。通過(guò)ODBC則可以存取不同廠商所提供的服務(wù)器數(shù)據(jù)庫(kù)。當(dāng)前22頁(yè),總共67頁(yè)。創(chuàng)建ODBC數(shù)據(jù)源安裝數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序在Office套件安裝后,一般情況下Access的ODBC驅(qū)動(dòng)程序?yàn)橐寻惭b。創(chuàng)建系統(tǒng)數(shù)據(jù)源系統(tǒng)DSN→添加→選擇驅(qū)動(dòng)程序→ODBCMicrosoftAccess安裝→數(shù)據(jù)源名→選取數(shù)據(jù)庫(kù)→高級(jí)(設(shè)置存取密碼)當(dāng)前23頁(yè),總共67頁(yè)。檢查服務(wù)器的ASP是否正常IIS的默認(rèn)Web站點(diǎn)設(shè)置檢查主目錄文檔測(cè)試ASP工作是否正常編寫一個(gè)a.asp文檔,存放在主目錄下a.asp文件內(nèi)容<%=now%>/asp瀏覽器窗口上應(yīng)出現(xiàn)當(dāng)時(shí)日期和時(shí)間顯示當(dāng)前24頁(yè),總共67頁(yè)。相關(guān)的HTML知識(shí)(復(fù)習(xí))問(wèn)題:HTML(HyperTextMarkupLanguage,超文本標(biāo)記語(yǔ)言)——為什么如此稱呼?問(wèn)題:網(wǎng)頁(yè)基本構(gòu)成<html><head><title><body>問(wèn)題:常見標(biāo)記<br><p><table><tr><td><ahref=“url”>問(wèn)題:表單基本構(gòu)成<formname=“student”action=“url”method=*>……<inputtype=submit><inputtype=reset></form>問(wèn)題:表單元素——文本框、復(fù)選框、單選按鈕、列表框…當(dāng)前25頁(yè),總共67頁(yè)。當(dāng)前26頁(yè),總共67頁(yè)。常見表單元素(1)文本框<inputtype=textvalue=“name”size=10
maxlength=20>普通文本框顯示長(zhǎng)度為10字符、最大長(zhǎng)度為20個(gè)字符<inputtype=passwordname=“pwd”>密碼型文本框多行文本框(文本區(qū)域)<textareaname=comment
rows=5
cols=50></textarea>5行每行50個(gè)字符的多行文本框當(dāng)前27頁(yè),總共67頁(yè)。常見表單元素(2)復(fù)選框<inputtype=checkboxname=fruit1>香蕉<inputtype=checkboxname=fruit2checked>蘋果(已預(yù)選)多個(gè)復(fù)選框中的name不能同值單選框<inputtype=radioname=fruit1>香蕉<inputtype=radioname=fruit2checked>蘋果(已預(yù)選)當(dāng)前28頁(yè),總共67頁(yè)。常見表單元素(3)下拉列表框
<selectname=“xb"size="1"><optionvalue="jxx">電子信息工程學(xué)系</option><optionselectedvalue="wyx">外國(guó)語(yǔ)言學(xué)系</option><optionvalue="zwx">漢語(yǔ)言文學(xué)系</option><optionvalue="tyx">體育系</option></select>當(dāng)前29頁(yè),總共67頁(yè)。常見表單元素(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頁(yè),總共67頁(yè)。表單及其數(shù)據(jù)的讀取Form(表單)設(shè)計(jì)每一個(gè)輸入欄必須設(shè)定NAME屬性,當(dāng)數(shù)據(jù)被送出時(shí),NAME屬性的值會(huì)和其相對(duì)應(yīng)的VALUE屬性的值被轉(zhuǎn)換為“NAME=VALUE”的形式發(fā)送。不同的輸入欄中間會(huì)以“&”作分隔,即會(huì)形成“NAME1=VALUE1&NAME2=VALUE2”的形式兩種提交方法GET使用URL直接向服務(wù)器提交數(shù)據(jù)數(shù)據(jù)加在URL名后,用“?”分隔(總長(zhǎng)度不得超過(guò)1024個(gè)字節(jié))POST通過(guò)STDIN(標(biāo)準(zhǔn)輸入)提交數(shù)據(jù)數(shù)據(jù)編碼后隱密發(fā)送,且長(zhǎng)度不受限制當(dāng)前31頁(yè),總共67頁(yè)。METHOD=GETGET方法的含義Brower按HTTP(HyperTextTransferProtocol)將用戶提交的數(shù)據(jù)傳送出去,而Server會(huì)把數(shù)據(jù)存放在服務(wù)器環(huán)境變量QUERY_STRING中,供處理程序(由表單的action屬性指定)使用。適合于傳輸少量的非隱密性的數(shù)據(jù)。什么是環(huán)境變量?一些由WEB服務(wù)器軟件申明的、保存用戶信息的內(nèi)存區(qū)。當(dāng)服務(wù)器軟件一旦運(yùn)行,這些環(huán)境變量就存在于服務(wù)器內(nèi)存中。當(dāng)服務(wù)器收到一個(gè)客戶機(jī)的請(qǐng)求后,它首先要收集它能得到的所有相關(guān)信息,并把它放入內(nèi)存的環(huán)境變量中,等待ASP/PHP/CGI等程序去處理。當(dāng)前32頁(yè),總共67頁(yè)。METHOD=POSTPOST方法的含義把用戶在表單中填寫的數(shù)據(jù)變成一個(gè)數(shù)據(jù)包/數(shù)據(jù)流傳給表單的Action屬性指定的處理程序。適合傳輸較大量的或隱密性的數(shù)據(jù)最常用當(dāng)前33頁(yè),總共67頁(yè)。示例<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)于客戶機(jī)向服務(wù)器發(fā)出了一個(gè)如下的URL請(qǐng)求:http://xxx/a.asp?name1=aabb&name2=ccdd此時(shí)服務(wù)器端的環(huán)境變量QUERY_STRING和環(huán)境變量REQUEST_METHOD的值改變?yōu)椋篞UERY_STRING=“name1=aabb&name2=ccdd”
REQUEST_METHOD=GETASP程序可以用以下語(yǔ)句讀取表單元素的值Request(“表單元素名”)Request.QueryString(“表單元素名”)(僅用于GET方法)當(dāng)前34頁(yè),總共67頁(yè)。表單提交時(shí)字符的編碼規(guī)則變量之間用“&”分隔變量與其對(duì)應(yīng)值之間用“=”分隔空格以“+”代替特殊字符如“&”、“=”、ASCII碼128以上的字符及漢字,以“%XX”代替,其中“XX”為特殊字符的16進(jìn)制ASCII碼空格為非法數(shù)據(jù)任意不可打印的ASCII控制字符為非法字符當(dāng)前35頁(yè),總共67頁(yè)。示例表單(6-1.htm)元素:你的姓名(name):輸入“張三”你的密碼(pwd):輸入“abcd”性別(male):?jiǎn)芜x“男”(value=male)提交給服務(wù)器時(shí)將會(huì)顯現(xiàn):/test.asp?name=%D5%C5%C8%FD
&pwd=ab+cd&sex=male&Submit=%CC%E1%BD%BB解讀:%D5%C5“張”(一個(gè)漢字兩個(gè)字節(jié))%C8%FD“三”+空格(用“+”代替)把6-1.htm中的傳送方法GET改為POST試試(思考:為什么pwd值不會(huì)顯示)※當(dāng)前36頁(yè),總共67頁(yè)。注意:傳遞信息不僅是FORM利用Form在不同頁(yè)面之間傳遞用戶信息是最可靠的——適用于任何瀏覽器亦可通過(guò)其他方式,如ch6-1.1.htm<ahref=“member.asp?name=張三&sex=男&age=23”>張三</a><ahref=“member.asp?name=張三&sex=女&age=21”>李四</a>如果ASP文件主要針對(duì)Internet,以Form為佳當(dāng)前37頁(yè),總共67頁(yè)。登錄程序示例6-3.htm當(dāng)前38頁(yè),總共67頁(yè)。6.4ASP基礎(chǔ)——內(nèi)置對(duì)象當(dāng)前39頁(yè),總共67頁(yè)。ASP的內(nèi)置對(duì)象ASP包括7個(gè)內(nèi)置對(duì)象,這些內(nèi)置對(duì)象共同組成的ASP的基本框架。內(nèi)置對(duì)象的意義在于:它們?cè)贏SP頁(yè)內(nèi)生成且有腳本中使用它們前無(wú)須創(chuàng)建。編程者只要了解這些內(nèi)置對(duì)象的屬性、方法和事件,就可以非常方便地開發(fā)自己的Web應(yīng)用程序。Request獲取用戶通過(guò)瀏覽器表單向服務(wù)器發(fā)送的信息Response將執(zhí)行結(jié)果傳輸給用戶瀏覽器Session用來(lái)記錄連接者的信息(每個(gè)連接者都有一個(gè)獨(dú)立的Session
對(duì)象)Application用來(lái)記錄不同網(wǎng)頁(yè)的共用信息(所有用戶可共用該信息)Server與用于提供對(duì)服務(wù)器的訪問(wèn),如和其他對(duì)象配套(如與ADO
對(duì)象配套)使用,與庫(kù)文件產(chǎn)生鏈接。Asperror用于出錯(cuò)處理Objectcontext用于通過(guò)MicrosoftTransactionServer來(lái)提交或中止某項(xiàng)
交易最后兩項(xiàng)是ASP3.0新增的對(duì)象當(dāng)前40頁(yè),總共67頁(yè)。在ASP頁(yè)面中使用腳本<%%>IIS默認(rèn)的腳本語(yǔ)言是VBScript,必要時(shí)可改為JavaScript方法:IIS→默認(rèn)Web站點(diǎn)→屬性→主目錄→配置→應(yīng)用程序選項(xiàng)(右圖)當(dāng)前41頁(yè),總共67頁(yè)。Request對(duì)象用于處理HTTP協(xié)議的請(qǐng)求獲取用戶信息可以有多種常用形式Request(element)Request.Form(element)(index)Request.QueryString(element)Request.QueryString(index)實(shí)例分析EXAMexam6-1.1.htm及對(duì)應(yīng)的member.aspForm1.htm及對(duì)應(yīng)的form1.asp當(dāng)前42頁(yè),總共67頁(yè)。Response對(duì)象用于負(fù)責(zé)HTTP協(xié)議的響應(yīng),如將asp處理后的變量值等轉(zhuǎn)換為HTML元素輸出到用戶瀏覽器上常用形式Response.Write相當(dāng)于C語(yǔ)言中的printResponse.Redirect“URL”實(shí)現(xiàn)頁(yè)面的跳轉(zhuǎn)Response.End結(jié)束ASP運(yùn)行進(jìn)程并將執(zhí)行好的HTML文件送向用戶瀏覽器實(shí)例分析Register.htm及對(duì)應(yīng)的Redirect.asp當(dāng)前43頁(yè),總共67頁(yè)。Server對(duì)象提供對(duì)服務(wù)器相關(guān)的操作常用形式Server.CreatObject("ActiveX組件名")創(chuàng)建一個(gè)ActiveXServer組件對(duì)象的實(shí)例示例: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頁(yè),總共67頁(yè)。Session對(duì)象在一次用戶訪問(wèn)期間(“會(huì)話期間”),當(dāng)用戶在一個(gè)應(yīng)用程序的頁(yè)與頁(yè)之間跳轉(zhuǎn)時(shí),用戶信息(如用戶在登錄時(shí)輸入的密碼)無(wú)法保留,其結(jié)果要么某一頁(yè)可以繞過(guò)密碼檢查而任意訪問(wèn),要么每一頁(yè)都要重新輸入密碼。使用ASP的session對(duì)象,可以為每個(gè)用戶保存?zhèn)€人相關(guān)信息。例如用session變量來(lái)保存某個(gè)用戶的帳號(hào)和密碼,只要用戶沒(méi)有關(guān)掉瀏覽器,則這些信息會(huì)一直得以保存,并可以session變量的形式被調(diào)用。Session變量的有效執(zhí)行時(shí)間(用戶暫停動(dòng)作時(shí)間)默認(rèn)是20分鐘??捎靡韵抡Z(yǔ)句改變其值:Session.Timeout=分鐘數(shù)示例:session("usr")=Request.Form("xh")session("pwd")=Request.Form("pw")在本頁(yè)及以后各頁(yè)就可以通過(guò)下頁(yè)示例進(jìn)行密碼校驗(yàn),而不必讓用戶每頁(yè)都輸入密碼。當(dāng)前45頁(yè),總共67頁(yè)。<%Ifsession("pwd")<>"…"then%><ahref=“index.htm">返回上頁(yè)</a><p><%Response.Write"密碼輸入錯(cuò)誤,請(qǐng)返回上頁(yè)重新輸入!"Response.endEndif%><%IfSession("pwd")<>Session("RS").Fields(“password")Then%><ahref="xkxt.htm">返回選課系統(tǒng)首頁(yè)</a><p><%
Response.Write“學(xué)號(hào)、密碼輸入錯(cuò)誤或個(gè)人資料不正確,請(qǐng)返回選課系統(tǒng)首頁(yè)重新輸入!"Response.EndEndif%>session("RS").Fields(“password")是用變量session("usr")從數(shù)據(jù)庫(kù)中取出的用戶密碼字段值當(dāng)前46頁(yè),總共67頁(yè)。Application對(duì)象用于保存不同用戶之間共有的信息實(shí)例(見招生查詢首頁(yè)—2004zs.asp)最簡(jiǎn)單的“計(jì)數(shù)器”
當(dāng)前在線人數(shù):<%=Application(“whoison")%>人另一實(shí)例:<%IfApplication("whoison")>50thenresponse.write"當(dāng)前在線人數(shù)"+cstr(Application("whoison"))+"人。<br><br>"response.write"選課人數(shù)太多,請(qǐng)退回選課首頁(yè),稍后再試……<br><br>"%><ahref="95/cgi-bin/xk0412/xkxt.htm">返回上頁(yè)</a><p><%
response.endendif
%>變量Application(“whoison")由一個(gè)必須存放在網(wǎng)站根目錄下的global.asa文件定義當(dāng)前47頁(yè),總共67頁(yè)。小結(jié):網(wǎng)頁(yè)數(shù)據(jù)傳送方式比較讓用戶提交的信息通過(guò)瀏覽器跨頁(yè)傳送表單希望保存某一用戶相關(guān)的變量Session需要在一次訪問(wèn)多頁(yè)文件中使用時(shí)Cookie需要在客戶端長(zhǎng)期保存用戶信息以便多次訪問(wèn)使用時(shí)多個(gè)用戶共同使用某一共享變量Application當(dāng)前48頁(yè),總共67頁(yè)。VBScript常識(shí)變量命名類似于C語(yǔ)言,但首字符必須是字母。變量不必先聲明再使用變量名稱和關(guān)鍵字無(wú)大小寫之分字符串——用單引號(hào)或雙引號(hào)括起整數(shù)/小數(shù)型布爾型True/False日期型用#…#括起示例:#May12,2005#控制結(jié)構(gòu)(選擇\循環(huán))見后當(dāng)前49頁(yè),總共67頁(yè)。6.5ASP基礎(chǔ)——Web庫(kù)操作當(dāng)前50頁(yè),總共67頁(yè)。ADO(ActiveXDataObjects)ADO則是微軟公司提供的一組訪問(wèn)Internet數(shù)據(jù)庫(kù)專用技術(shù)。它為ASP提供了完整的站點(diǎn)數(shù)據(jù)庫(kù)解決方案,它作用在服務(wù)器端,可鏈接數(shù)據(jù)庫(kù)、操作數(shù)據(jù)庫(kù)、查詢數(shù)據(jù)庫(kù),并可將數(shù)據(jù)庫(kù)訪問(wèn)結(jié)果添加到Web頁(yè)面上。使用ADO可以輕松地完成對(duì)各種數(shù)據(jù)庫(kù)(SQLserver,Access,Oracle,Sybase)的查詢和存取操作,甚至可從Excel中讀取信息。ADO主要包括Connection,Recordset和Command三個(gè)對(duì)象,
它們的主要功能如下:
Connection對(duì)象:與DSN結(jié)合在ASP與數(shù)據(jù)庫(kù)間建立鏈接關(guān)系;
Recordset對(duì)象:用于數(shù)據(jù)查詢作業(yè)(形成記錄指針);
Command對(duì)象:用來(lái)對(duì)數(shù)據(jù)庫(kù)傳遞SQL指令,并對(duì)數(shù)據(jù)庫(kù)進(jìn)行存取操作。
ADO已集成于IIS或PWS中。當(dāng)前51頁(yè),總共67頁(yè)。WEB數(shù)據(jù)庫(kù)編程基本模塊建立數(shù)據(jù)庫(kù)打開數(shù)據(jù)庫(kù)(標(biāo)準(zhǔn)語(yǔ)句)□創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象□打開數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)操作(標(biāo)準(zhǔn)語(yǔ)句)
□提取記錄□查詢/新增/刪除/更新關(guān)閉數(shù)據(jù)庫(kù)(標(biāo)準(zhǔn)語(yǔ)句)其他常用技術(shù)□頁(yè)面間的參數(shù)傳遞□用戶間的參數(shù)傳遞當(dāng)前52頁(yè),總共67頁(yè)。“芝麻開門”:打開數(shù)據(jù)庫(kù)語(yǔ)句一:建立庫(kù)對(duì)象Set對(duì)象變量名=Server.CreatObject("ADODB.Connection")
示例:Set
MyCon=Server.CreateObject("ADODB.Connection")
CreatObject是Server對(duì)象中用于建立一個(gè)可與數(shù)據(jù)庫(kù)交換數(shù)據(jù)對(duì)象的函數(shù)。上句的功能是建立一個(gè)可與數(shù)據(jù)庫(kù)交換數(shù)據(jù)的對(duì)象。語(yǔ)句二:鏈接數(shù)據(jù)庫(kù)對(duì)象變量名.Open鏈接字符串,(用戶帳號(hào)),(密碼)示例(使用ODBC數(shù)據(jù)源時(shí)):MyCon.Open"DSN=address;UID=;PWD="
打開ODBC中的數(shù)據(jù)源address源(UID-用戶帳號(hào);PWD-密碼)
Open是Connection對(duì)象的一個(gè)方法。若所需數(shù)據(jù)庫(kù)有安全性管制,應(yīng)附加用戶帳號(hào)和密碼兩項(xiàng),否則不加。如:
MyCon.Open"DSN=address"
此句的作用類似于FoxBASE語(yǔ)句:
useaddress當(dāng)前53頁(yè),總共67頁(yè)。直接鏈接時(shí)的鏈接字符串如果不采用ODBC數(shù)據(jù)源,則鏈接字符串的形式如下:Provider=Microsoft.Jet.OLEDB4.0;DataSource=數(shù)據(jù)庫(kù)路徑名稱若所需數(shù)據(jù)庫(kù)有安全性管制,應(yīng)附加用戶帳號(hào)和密碼兩項(xiàng),否則不加。如對(duì)Access數(shù)據(jù)庫(kù)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頁(yè),總共67頁(yè)。經(jīng)驗(yàn):NTFS下ODBC數(shù)據(jù)源的使用服務(wù)器文件系統(tǒng)為NTFS格式時(shí),如果用戶通過(guò)瀏覽器對(duì)ODBC數(shù)據(jù)庫(kù)的記錄進(jìn)行更新、刪除等寫操作,會(huì)因權(quán)限不足而出現(xiàn)出錯(cuò)提示(但查詢正常)。解決方案:設(shè)置權(quán)限使IUSR_...(Internet來(lái)賓帳號(hào))對(duì)
c:\programfiles\commonfiles\ODBC
文件夾有寫入權(quán)設(shè)置權(quán)限使IUSR_...(Internet來(lái)賓帳號(hào))對(duì)c:\winnt\temp文件夾有寫入權(quán)設(shè)置權(quán)限使IUSR_...(Internet來(lái)賓帳號(hào))對(duì)ACCESS數(shù)據(jù)庫(kù)文件所在的文件夾有寫入權(quán)(讀取與寫入權(quán)限即夠了)當(dāng)前55頁(yè),總共67頁(yè)。提取數(shù)據(jù)庫(kù)中的記錄建立數(shù)據(jù)庫(kù)鏈接后,connection對(duì)象變量就將在ASP程序中代表所要操作的數(shù)據(jù)庫(kù)RecordSet的概念RecordSet用于儲(chǔ)存connetcion對(duì)象讀取的數(shù)據(jù)紀(jì)錄。每個(gè)RecordSet對(duì)象都相當(dāng)于一個(gè)數(shù)據(jù)表,保存著用該對(duì)象的Open指令讀取所需的全部記錄,并可通過(guò)記錄指針的移動(dòng)對(duì)這些記錄進(jìn)行各種庫(kù)操作(開始時(shí)記錄指針指在第一條記錄處)當(dāng)前56頁(yè),總共67頁(yè)。SetRS=Server.CreateObject(“ADODB.RecordSet”)建立一個(gè)名為RS的RecordSet對(duì)象此句的作用是產(chǎn)生一個(gè)可在數(shù)據(jù)表中移動(dòng)指針的ADO對(duì)象。Set
RS.ActiveConnection=MyCon將RS與Connection對(duì)象MyCon聯(lián)系起來(lái)。RS.Open"select*fromstudentwhere學(xué)號(hào)like'"&Request.Form("T1")&"'",,1,2
在MyCon代表的數(shù)據(jù)庫(kù)中打開數(shù)據(jù)表student,按where子句的要求提取記錄,存放在所建立的RecordSet對(duì)象RS中,以便進(jìn)行庫(kù)操作典型語(yǔ)句當(dāng)前57頁(yè),總共67頁(yè)。小結(jié):你明白了沒(méi)有?打開Web數(shù)據(jù)庫(kù)的操作不同于一般數(shù)據(jù)庫(kù)先建立一個(gè)庫(kù)對(duì)象,將它與服務(wù)器上的所需操作的某個(gè)數(shù)據(jù)庫(kù)鏈接。在程序中將用也只用該庫(kù)對(duì)象名代表所操作的數(shù)據(jù)庫(kù)。然后建立一個(gè)記錄集對(duì)象,用它存入所需操作的全部記錄。在程序中將用、也只用該記錄集對(duì)象代表所操作的數(shù)據(jù)。事實(shí)上還有其他一些語(yǔ)句可以實(shí)現(xiàn)以上功能。下學(xué)期諸位將會(huì)在專門的課程中學(xué)到。當(dāng)前58頁(yè),總共67頁(yè)。常用SQL查詢語(yǔ)句用法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頁(yè),總共67頁(yè)。典型ADOSQL查詢語(yǔ)句分析精確查找
Select*from數(shù)據(jù)表名where字段名=……例:Select*frompersonwherename=‘陳秀振’Select*fromchengjiwhere考試日期=#2000/6/8#Select*from
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中秋節(jié)習(xí)俗探究
- 專業(yè)國(guó)際貿(mào)易居間協(xié)議范本(2024版)
- 2025年度數(shù)據(jù)中心場(chǎng)地租賃及設(shè)施升級(jí)維護(hù)合同4篇
- 2025年度插班生入校社會(huì)實(shí)踐協(xié)議范本4篇
- 2025年度建筑安全施工安全監(jiān)督檢驗(yàn)合同范本3篇
- 專項(xiàng)協(xié)議:2024版研究報(bào)告服務(wù)條款版A版
- 2025年度產(chǎn)業(yè)園租賃及產(chǎn)業(yè)技術(shù)創(chuàng)新合同4篇
- 二零二四年事業(yè)單位工程技術(shù)崗位勞動(dòng)合同(含技術(shù)培訓(xùn))3篇
- 2025年叉車租賃服務(wù)與技術(shù)支持合同4篇
- 2024油漆涂料倉(cāng)庫(kù)租賃與管理合同
- 2024版智慧電力解決方案(智能電網(wǎng)解決方案)
- 公司SWOT分析表模板
- 小學(xué)預(yù)防流行性感冒應(yīng)急預(yù)案
- 肺癌術(shù)后出血的觀察及護(hù)理
- 生物醫(yī)藥大數(shù)據(jù)分析平臺(tái)建設(shè)-第1篇
- 基于Android的天氣預(yù)報(bào)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 沖鋒舟駕駛培訓(xùn)課件
- 美術(shù)家協(xié)會(huì)會(huì)員申請(qǐng)表
- 聚合收款服務(wù)流程
- 中石化浙江石油分公司中石化溫州靈昆油庫(kù)及配套工程項(xiàng)目環(huán)境影響報(bào)告書
- 搞笑朗誦我愛(ài)上班臺(tái)詞
評(píng)論
0/150
提交評(píng)論