![網(wǎng)絡(luò)系統(tǒng)集成技術(shù)6_第1頁](http://file4.renrendoc.com/view/6509246abbe6c73553a6c1b3bf431695/6509246abbe6c73553a6c1b3bf4316951.gif)
![網(wǎng)絡(luò)系統(tǒng)集成技術(shù)6_第2頁](http://file4.renrendoc.com/view/6509246abbe6c73553a6c1b3bf431695/6509246abbe6c73553a6c1b3bf4316952.gif)
![網(wǎng)絡(luò)系統(tǒng)集成技術(shù)6_第3頁](http://file4.renrendoc.com/view/6509246abbe6c73553a6c1b3bf431695/6509246abbe6c73553a6c1b3bf4316953.gif)
![網(wǎng)絡(luò)系統(tǒng)集成技術(shù)6_第4頁](http://file4.renrendoc.com/view/6509246abbe6c73553a6c1b3bf431695/6509246abbe6c73553a6c1b3bf4316954.gif)
![網(wǎng)絡(luò)系統(tǒng)集成技術(shù)6_第5頁](http://file4.renrendoc.com/view/6509246abbe6c73553a6c1b3bf431695/6509246abbe6c73553a6c1b3bf4316955.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
網(wǎng)絡(luò)系統(tǒng)集成技術(shù)
NetworksSystemIntegrating
第六章Web數(shù)據(jù)庫開發(fā)基礎(chǔ)本章主要內(nèi)容6.1Web數(shù)據(jù)庫的概念6.2Web數(shù)據(jù)庫訪問技術(shù)6.3Web數(shù)據(jù)庫的技術(shù)實(shí)現(xiàn)6.4ASP基礎(chǔ)——內(nèi)置對象6.5ASP基礎(chǔ)——Web庫操作下學(xué)期有《Web數(shù)據(jù)庫程序設(shè)計(jì)》課,本章只結(jié)合實(shí)例作簡要介紹6.1Web數(shù)據(jù)庫的概念WhatisaWebDatabase?AdatabaseinawebsiteThreelayerstructure:Browser/Server/DatabaseServerClient:Browser+HTMLstandardServer:HomePage+Programming+DatabaseHomePage:FormsDesigninganinteractinguserinterfaceProgramming:CGI/ASP/PHP/JSP/…WritingprogramstoaccessadatabaseinawebsiteDatabase:Access/SQLserver/…Buildingadatastorageandmanagementsystem地址欄中的網(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)頁文件Web數(shù)據(jù)庫的存取方式(一)用戶電腦閱讀器返回存取結(jié)果Web服務(wù)器Web數(shù)據(jù)庫CGI程序執(zhí)行存取通過服務(wù)器端的CGI程序響應(yīng)用戶查詢要求用戶通過表單提交后,指定的服務(wù)器端CGI程序?qū)eb數(shù)據(jù)庫進(jìn)行存取操作,而后將結(jié)果以網(wǎng)頁(HTML)形式返回到客戶端用戶輸入數(shù)據(jù)Web數(shù)據(jù)庫的存取方式(二)用戶電腦閱讀器讀取asp網(wǎng)頁返回html碼結(jié)果Web服務(wù)器(IIS或PWS)Web數(shù)據(jù)庫ODBC驅(qū)動(dòng)程序執(zhí)行存取通過服務(wù)器端的asp程序響應(yīng)用戶的要求服務(wù)器接受用戶端懇求時(shí)會(huì)推斷要求下載的是否.asp文件,如不是,干脆發(fā)送網(wǎng)頁。如是,再推斷該文件是否含有運(yùn)用ADO對象的script(JavaScript或VBScript)內(nèi)容。如有,啟動(dòng)對應(yīng)的ODBC驅(qū)動(dòng)程序,通過ADO對象訪問數(shù)據(jù)庫。如需顯示結(jié)果,則Script會(huì)利用ASP供應(yīng)的輸出對象送出數(shù)據(jù)傳送給閱讀器。含有ADO對象的ASP指令、VBScript、JavaScript程序段靜態(tài)網(wǎng)頁與動(dòng)態(tài)網(wǎng)頁所謂靜態(tài)網(wǎng)頁,指的是網(wǎng)頁從服務(wù)器傳到客戶端時(shí),網(wǎng)頁的內(nèi)容是“固定不變”的,也就是說,服務(wù)器只是把所存儲(chǔ)的網(wǎng)頁的內(nèi)容原封不動(dòng)干脆傳遞給客戶端閱讀器,這種網(wǎng)頁一般是標(biāo)準(zhǔn)的HTML代碼。所謂動(dòng)態(tài)網(wǎng)頁,它在由服務(wù)器傳遞給客戶端的時(shí)候?qū)⒂煞?wù)器把它轉(zhuǎn)換成相應(yīng)的HTML格式,而且會(huì)依據(jù)用戶的要求和選擇在服務(wù)器端做出相應(yīng)的變更和響應(yīng)。動(dòng)態(tài)網(wǎng)頁網(wǎng)頁的靜態(tài)和動(dòng)態(tài),是指網(wǎng)頁的內(nèi)容是否可依據(jù)某種條件的變更而自動(dòng)變更,與頁面是否有動(dòng)畫性變更無關(guān)。網(wǎng)頁計(jì)數(shù)器:動(dòng)態(tài)的,當(dāng)有人點(diǎn)擊網(wǎng)頁時(shí),計(jì)數(shù)器的值會(huì)自動(dòng)增加BBS論壇:動(dòng)態(tài)的,用戶發(fā)布信息時(shí),網(wǎng)頁內(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)頁,要用到一些動(dòng)態(tài)語言,如ASP、PHP、CGI、JSP、ASP.NET等。因此我們推斷動(dòng)態(tài)、靜態(tài)網(wǎng)頁時(shí),可以簡潔的認(rèn)為,接受了以上語言編寫的網(wǎng)頁,確定是動(dòng)態(tài)的,而只接受了html文件的網(wǎng)頁,則是靜態(tài)的。靜態(tài)網(wǎng)頁文件名后綴有.htm、.html、.shtml、.xml等常見形式,而動(dòng)態(tài)網(wǎng)頁文件名后綴有.asp、.jsp、.php、.pl、.cgi等常見形式6.2Web數(shù)據(jù)庫訪問技術(shù)ASP開發(fā)技術(shù)ASP(ActiveServerPages,活動(dòng)服務(wù)器頁)微軟公司97年推出的一種網(wǎng)頁與數(shù)據(jù)庫解決方案,利用微軟的ActiveX技術(shù)在服務(wù)器端動(dòng)態(tài)生成HTML頁面的一種腳本環(huán)境。ASP是一種運(yùn)行于服務(wù)器端的Web應(yīng)用程序開發(fā)技術(shù),它接受封裝對象,程序調(diào)用對象的技術(shù),簡化了編程。開發(fā)者無需進(jìn)行困難編程,就可以開發(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(:///)ActiveXVC++MSDN的說明:Asetoftechnologiesthatenablessoftwarecomponentstointeractwithoneanotherinanetworkedenvironment,regardlessofthelanguageinwhichtheywerecreated.ActiveX?isbuiltontheComponentObjectModel(COM).《金山詞霸》的說明:微軟提倡的ActiveX網(wǎng)絡(luò)化多媒體對象技術(shù)關(guān)于ASP.NET由于ASP程序和網(wǎng)頁的HTML混合在一起,使得程序看上去相當(dāng)?shù)碾s亂。而在現(xiàn)在的網(wǎng)站設(shè)計(jì)過程中,通常是由程序開發(fā)人員做后臺(tái)的程序開發(fā),前面有專業(yè)的美工設(shè)計(jì)頁面,這樣,在相互協(xié)作的過程中就會(huì)產(chǎn)生各種各樣的問題。同時(shí),ASP頁面是有腳本語言說明執(zhí)行的,速度受到影響。受到腳本語言自身?xiàng)l件的限制,而且在編寫ASP程序的時(shí)候不得不調(diào)用COM組件來完成一些功能。由于以上種種限制,微軟推出了ASP.NET。ASP.NET供應(yīng)了一個(gè)全新而強(qiáng)大的服務(wù)器控件結(jié)構(gòu)。從外觀上看,ASP.NET和ASP是相近的,但是從本質(zhì)上是完全不同的。ASP.NET幾乎全是基于組件和模塊化,每一個(gè)頁、對象和HTML元素都是一個(gè)運(yùn)行的組件對象。在開發(fā)語言上,ASP.NET拋棄了VBScript和JScript,而運(yùn)用.NETFramework所支持的VB.NET,C#.NET等語言做為其開發(fā)語言,這些語言生成的網(wǎng)頁在后臺(tái)被轉(zhuǎn)換成了類并編譯成了一個(gè)DLL。由于ASP.NET是編譯執(zhí)行的,所以它比ASP擁有了更高的效率。PHP(PersonalHomePageTools)類似于ASP的一種服務(wù)器端腳本語言,其語法大多從C、JAVA、PERL語言中借來,可更快速開發(fā)交互式動(dòng)態(tài)網(wǎng)頁??缙脚_(tái)強(qiáng)大的數(shù)據(jù)庫集成功能(相同的PHP代碼無需更改即可在不同操作系統(tǒng)的Web服務(wù)器上運(yùn)行),但供應(yīng)的數(shù)據(jù)庫接口不統(tǒng)一(如對Oracle、Sybase和MySQL的接口不同)等緣由,不適合于電子商務(wù)類網(wǎng)站。最佳組合:Linux+Apache+MySQL+PHP目前Internet上流行的網(wǎng)站構(gòu)架方式,即運(yùn)用Linux作為操作系統(tǒng),Apache作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫,PHP作為服務(wù)器端腳本說明器。由于這四個(gè)軟件都是開放源碼軟件,因此運(yùn)用這種方式不用花一分錢就可以建立起一個(gè)穩(wěn)定、免費(fèi)的網(wǎng)站系統(tǒng)。常用開發(fā)工具:ZDE(ZENDDEVELOPMENTENVIORMENT)PHPED最新版本:PHP5.0.4(課件書目下可下載)主要網(wǎng)站:PHP開發(fā)技術(shù)JSP(JavaServerPages)JSP是由SunMicrosystems公司提倡、很多公司參與一起建立的一種動(dòng)態(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)頁的懇求時(shí),首先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以HTML格式返回給客戶。程序片段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁以及發(fā)送email等等,這就是建立動(dòng)態(tài)網(wǎng)站所須要的功能。全部程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,對客戶閱讀器的要求最低,可以實(shí)現(xiàn)無Plugin,無ActiveX,無JavaApplet,甚至無Frame??缙脚_(tái)支持(國外電子商務(wù)類網(wǎng)站多采有JSP技術(shù))通過JDBC實(shí)現(xiàn)與數(shù)據(jù)庫的連接JSP開發(fā)技術(shù)ASP主要適用于WindowsNT/2000/2003服務(wù)器平臺(tái),與IIS配套,無須特地安裝即可運(yùn)用;PHP和JSP在大多數(shù)Linux、微軟Windows平臺(tái)、UNIX平臺(tái)上均可用,但需特地安裝。ASP網(wǎng)頁的文件擴(kuò)展名為.asp,PHP網(wǎng)頁的文件擴(kuò)展名為.php,JSP網(wǎng)頁的文件擴(kuò)展名為.jsp性能比較(循環(huán)性能和數(shù)據(jù)庫存取測試)循環(huán)性能:JSP20000×20000次循環(huán)(4秒)/ASP和PHP2000×2000次循環(huán)(相差100倍)分別為63秒和84秒數(shù)據(jù)庫存?。▽racle8進(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ù)性能比較CGI開發(fā)技術(shù)CGI(CommonGatewayInterface,通用網(wǎng)關(guān)接口)用于連接主頁和應(yīng)用程序的接口。HTML語言的功能比較貧乏,難以完成諸如訪問數(shù)據(jù)庫等一類的操作,假如須要先對數(shù)據(jù)庫進(jìn)行操作(比如文件檢索系統(tǒng)),然后把訪問的結(jié)果動(dòng)態(tài)地顯示在主頁上,只用HTML是無法做到的,所以CGI便應(yīng)運(yùn)而生。CGI是在WebServer端運(yùn)行的一個(gè)可執(zhí)行程序,通過主頁鏈接激活進(jìn)行調(diào)用,并對該程序的返回結(jié)果進(jìn)行處理,顯示在主頁上。最常用的CGI編程語言有Perl,此外還有C,C++,shellScript和VB。Perl編程效率最高,功能最強(qiáng),但程序調(diào)試性較差。CGI網(wǎng)頁的文件擴(kuò)展名與所用編程語言有關(guān)。如Perl為.pl,VB為.bas等。缺點(diǎn):平安性較差/繁多進(jìn)程占用大量服務(wù)器資源/編程困難,而且沒有自動(dòng)保留狀態(tài)信息的功能(如用戶狀態(tài)),已不多用此外運(yùn)用CGI程序時(shí),須要不斷地產(chǎn)生和銷毀進(jìn)程(process),執(zhí)行效率不高,一般狀況:HTML100%ASP10%CGI1%6.3Web數(shù)據(jù)庫的技術(shù)實(shí)現(xiàn)建立數(shù)據(jù)庫安裝該數(shù)據(jù)庫所需的ODBC驅(qū)動(dòng)程序創(chuàng)建ODBC數(shù)據(jù)源制作表單網(wǎng)頁和ASP網(wǎng)頁應(yīng)用程序Access數(shù)據(jù)庫Oracle數(shù)據(jù)庫VFP數(shù)據(jù)庫……AccessODBCDriverVFPODBCDriverOracleODBCDriver基本原理與流程小型網(wǎng)站常用Web數(shù)據(jù)庫軟件——AccessMicrosoftOffice家族中的一員,是一種數(shù)據(jù)庫軟件。其數(shù)據(jù)庫中有一個(gè)或多個(gè)表(table),表中又有一個(gè)或多個(gè)數(shù)據(jù)欄(field),數(shù)據(jù)欄中存放的是實(shí)際的數(shù)據(jù)(data)。除了可以用來生成和管理數(shù)據(jù)庫,還有一個(gè)功能,即制作ASP網(wǎng)頁。Access數(shù)據(jù)庫(.mdb)生成的方法:新建→空Access數(shù)據(jù)庫→創(chuàng)建表→……可以將其他相關(guān)文件(如.dbf、.xls等文件)轉(zhuǎn)換為.mdb文件(獲得外部數(shù)據(jù)→導(dǎo)入)一個(gè)Access數(shù)據(jù)庫可以有多個(gè)表。彼此之間可通過主關(guān)鍵字關(guān)聯(lián)。好用技術(shù)外部數(shù)據(jù)轉(zhuǎn)入(運(yù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))+"#"名詞說明ODBC(OpenDataBaseConnectivity,開放式數(shù)據(jù)庫互聯(lián))由微軟公司制定的數(shù)據(jù)庫標(biāo)準(zhǔn)接口。只要用戶運(yùn)用的數(shù)據(jù)庫軟件供應(yīng)了ODBC驅(qū)動(dòng)程序,就可讓應(yīng)用程序來存取這些數(shù)據(jù)庫。早期的數(shù)據(jù)庫程序開發(fā)者必需運(yùn)用服務(wù)器數(shù)據(jù)庫廠商供應(yīng)的開發(fā)工具才能實(shí)現(xiàn)數(shù)據(jù)庫的存取,因?yàn)槊糠N數(shù)據(jù)庫軟件建立的文件類型不同。通過ODBC則可以存取不同廠商所供應(yīng)的服務(wù)器數(shù)據(jù)庫。創(chuàng)建ODBC數(shù)據(jù)源安裝數(shù)據(jù)庫驅(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ù)庫→高級(設(shè)置存取密碼)檢查服務(wù)器的ASP是否正常IIS的默認(rèn)Web站點(diǎn)設(shè)置檢查主書目文檔測試ASP工作是否正常編寫一個(gè)a.asp文檔,存放在主書目下a.asp文件內(nèi)容<%=now%>:///asp閱讀器窗口上應(yīng)出現(xiàn)當(dāng)時(shí)日期和時(shí)間顯示相關(guān)的HTML學(xué)問(復(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ù)選框、單選按鈕、列表框…常見表單元素(1)文本框<inputtype=textvalue=“name”size=10maxlength=20>一般文本框顯示長度為10字符、最大長度為20個(gè)字符<inputtype=passwordname=“pwd”>密碼型文本框多行文本框(文本區(qū)域)<textareaname=commentrows=5cols=50></textarea>5行每行50個(gè)字符的多行文本框常見表單元素(2)復(fù)選框<inputtype=checkboxname=fruit1>香蕉<inputtype=checkboxname=fruit2checked>蘋果(已預(yù)選)多個(gè)復(fù)選框中的name不能同值單選框<inputtype=radioname=fruit1>香蕉<inputtype=radioname=fruit2checked>蘋果(已預(yù)選)常見表單元素(3)下拉列表框
<selectname=“xb"size="1"><optionvalue="jxx">電子信息工程學(xué)系</option><optionselectedvalue="wyx">外國語言學(xué)系</option><optionvalue="zwx">漢語言文學(xué)系</option><optionvalue="tyx">體育系</option></select>常見表單元素(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多選表單及其數(shù)據(jù)的讀取Form(表單)設(shè)計(jì)每一個(gè)輸入欄必需設(shè)定NAME屬性,當(dāng)數(shù)據(jù)被送出時(shí),NAME屬性的值會(huì)和其相對應(yīng)的VALUE屬性的值被轉(zhuǎn)換為“NAME=VALUE”的形式發(fā)送。不同的輸入欄中間會(huì)以“&”作分隔,即會(huì)形成“NAME1=VALUE1&NAME2=VALUE2”的形式兩種提交方法GET運(yùn)用URL干脆向服務(wù)器提交數(shù)據(jù)數(shù)據(jù)加在URL名后,用“?”分隔(總長度不得超過1024個(gè)字節(jié))POST通過STDIN(標(biāo)準(zhǔn)輸入)提交數(shù)據(jù)數(shù)據(jù)編碼后隱密發(fā)送,且長度不受限制METHOD=GETGET方法的含義Brower按HTTP(HyperTextTransferProtocol)將用戶提交的數(shù)據(jù)傳送出去,而Server會(huì)把數(shù)據(jù)存放在服務(wù)器環(huán)境變量QUERY_STRING中,供處理程序(由表單的action屬性指定)運(yùn)用。適合于傳輸少量的非隱密性的數(shù)據(jù)。什么是環(huán)境變量?一些由WEB服務(wù)器軟件申明的、保存用戶信息的內(nèi)存區(qū)。當(dāng)服務(wù)器軟件一旦運(yùn)行,這些環(huán)境變量就存在于服務(wù)器內(nèi)存中。當(dāng)服務(wù)器收到一個(gè)客戶機(jī)的懇求后,它首先要收集它能得到的全部相關(guān)信息,并把它放入內(nèi)存的環(huán)境變量中,等待ASP/PHP/CGI等程序去處理。METHOD=POSTPOST方法的含義把用戶在表單中填寫的數(shù)據(jù)變成一個(gè)數(shù)據(jù)包/數(shù)據(jù)流傳給表單的Action屬性指定的處理程序。適合傳輸較大量的或隱密性的數(shù)據(jù)最常用示例<FORMMETHOD=GETaction=“://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懇求:://xxx/a.asp?name1=aabb&name2=ccdd此時(shí)服務(wù)器端的環(huán)境變量QUERY_STRING和環(huán)境變量REQUEST_METHOD的值變更為:QUERY_STRING=“name1=aabb&name2=ccdd”
REQUEST_METHOD=GETASP程序可以用以下語句讀取表單元素的值Request(“表單元素名”)Request.QueryString(“表單元素名”)(僅用于GET方法)表單提交時(shí)字符的編碼規(guī)則變量之間用“&”分隔變量與其對應(yīng)值之間用“=”分隔空格以“+”代替特殊字符如“&”、“=”、ASCII碼128以上的字符及漢字,以“%XX”代替,其中“XX”為特殊字符的16進(jìn)制ASCII碼空格為非法數(shù)據(jù)隨意不行打印的ASCII限制字符為非法字符示例表單(6-1.htm)元素:你的姓名(name):輸入“張三”你的密碼(pwd):輸入“abcd”性別(male):單選“男”(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ì)顯示)※留意:傳遞信息不僅是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為佳登錄程序示例6-3.htm6.4ASP基礎(chǔ)——內(nèi)置對象ASP的內(nèi)置對象ASP包括7個(gè)內(nèi)置對象,這些內(nèi)置對象共同組成的ASP的基本框架。內(nèi)置對象的意義在于:它們在ASP頁內(nèi)生成且有腳本中運(yùn)用它們前無須創(chuàng)建。編程者只要了解這些內(nèi)置對象的屬性、方法和事務(wù),就可以特別便利地開發(fā)自己的Web應(yīng)用程序。Request獲得用戶通過閱讀器表單向服務(wù)器發(fā)送的信息Response將執(zhí)行結(jié)果傳輸給用戶閱讀器Session用來記錄連接者的信息(每個(gè)連接者都有一個(gè)獨(dú)立的Session
對象)Application用來記錄不同網(wǎng)頁的共用信息(全部用戶可共用該信息)Server與用于供應(yīng)對服務(wù)器的訪問,如和其他對象配套(如與ADO
對象配套)運(yùn)用,與庫文件產(chǎn)生鏈接。Asperror用于出錯(cuò)處理Objectcontext用于通過MicrosoftTransactionServer來提交或中止某項(xiàng)
交易最終兩項(xiàng)是ASP3.0新增的對象在ASP頁面中運(yùn)用腳本<%%>IIS默認(rèn)的腳本語言是VBScript,必要時(shí)可改為JavaScript方法:IIS→默認(rèn)Web站點(diǎn)→屬性→主書目→配置→應(yīng)用程序選項(xiàng)(右圖)Request對象用于處理HTTP協(xié)議的懇求獲得用戶信息可以有多種常用形式Request(element)Request.Form(element)(index)Request.QueryString(element)Request.QueryString(index)實(shí)例分析EXAMexam6-1.1.htm及對應(yīng)的member.aspForm1.htm及對應(yīng)的form1.aspResponse對象用于負(fù)責(zé)HTTP協(xié)議的響應(yīng),如將asp處理后的變量值等轉(zhuǎn)換為HTML元素輸出到用戶閱讀器上常用形式Response.Write相當(dāng)于C語言中的printResponse.Redirect“URL”實(shí)現(xiàn)頁面的跳轉(zhuǎn)Response.End結(jié)束ASP運(yùn)行進(jìn)程并將執(zhí)行好的HTML文件送向用戶閱讀器實(shí)例分析Register.htm及對應(yīng)的Redirect.aspServer對象供應(yīng)對服務(wù)器相關(guān)的操作常用形式Server.CreatObject("ActiveX組件名")創(chuàng)建一個(gè)ActiveXServer組件對象的實(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.mdbSession對象在一次用戶訪問期間(“會(huì)話期間”),當(dāng)用戶在一個(gè)應(yīng)用程序的頁與頁之間跳轉(zhuǎn)時(shí),用戶信息(如用戶在登錄時(shí)輸入的密碼)無法保留,其結(jié)果要么某一頁可以繞過密碼檢查而隨意訪問,要么每一頁都要重新輸入密碼。運(yùn)用ASP的session對象,可以為每個(gè)用戶保存?zhèn)€人相關(guān)信息。例如用session變量來保存某個(gè)用戶的帳號和密碼,只要用戶沒有關(guān)掉閱讀器,則這些信息會(huì)始終得以保存,并可以session變量的形式被調(diào)用。Session變量的有效執(zhí)行時(shí)間(用戶暫停動(dòng)作時(shí)間)默認(rèn)是20分鐘??捎靡韵抡Z句變更其值:Session.Timeout=分鐘數(shù)示例:session("usr")=Request.Form("xh")session("pwd")=Request.Form("pw")在本頁及以后各頁就可以通過下頁示例進(jìn)行密碼校驗(yàn),而不必讓用戶每頁都輸入密碼。<%Ifsession("pwd")<>"…"then%><ahref=“index.htm">返回上頁</a><p><%Response.Write"密碼輸入錯(cuò)誤,請返回上頁重新輸入!"Response.endEndif%><%IfSession("pwd")<>Session("RS").Fields(“password")Then%><ahref="xkxt.htm">返回選課系統(tǒng)首頁</a><p><%
Response.Write“學(xué)號、密碼輸入錯(cuò)誤或個(gè)人資料不正確,請返回選課系統(tǒng)首頁重新輸入!"Response.EndEndif%>session("RS").Fields(“password")是用變量session("usr")從數(shù)據(jù)庫中取出的用戶密碼字段值A(chǔ)pplication對象用于保存不同用戶之間共有的信息實(shí)例(見招生查詢首頁—2004zs.asp)最簡潔的“計(jì)數(shù)器”當(dāng)前在線人數(shù):<%=Application(“whoison")%>人另一實(shí)例:<%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")由一個(gè)必需存放在網(wǎng)站根書目下的global.asa文件定義小結(jié):網(wǎng)頁數(shù)據(jù)傳送方式比較讓用戶提交的信息通過閱讀器跨頁傳送表單希望保存某一用戶相關(guān)的變量Session須要在一次訪問多頁文件中運(yùn)用時(shí)Cookie須要在客戶端長期保存用戶信息以便多次訪問運(yùn)用時(shí)多個(gè)用戶共同運(yùn)用某一共享變量ApplicationVBScript常識(shí)變量命名類似于C語言,但首字符必需是字母。變量不必先聲明再運(yùn)用變量名稱和關(guān)鍵字無大小寫之分字符串——用單引號或雙引號括起整數(shù)/小數(shù)型布爾型True/False日期型用#…#括起示例:#May12,2005#限制結(jié)構(gòu)(選擇\循環(huán))見后6.5ASP基礎(chǔ)——Web庫操作ADO(ActiveXDataObjects)ADO則是微軟公司供應(yīng)的一組訪問Internet數(shù)據(jù)庫專用技術(shù)。它為ASP供應(yīng)了完整的站點(diǎn)數(shù)據(jù)庫解決方案,它作用在服務(wù)器端,可鏈接數(shù)據(jù)庫、操作數(shù)據(jù)庫、查詢數(shù)據(jù)庫,并可將數(shù)據(jù)庫訪問結(jié)果添加到Web頁面上。運(yùn)用ADO可以輕松地完成對各種數(shù)據(jù)庫(SQLserver,Access,Oracle,Sybase)的查詢和存取操作,甚至可從Excel中讀取信息。ADO主要包括Connection,Recordset和Command三個(gè)對象,
它們的主要功能如下:
Connection對象:與DSN結(jié)合在ASP與數(shù)據(jù)庫間建立鏈接關(guān)系;
Recordset對象:用于數(shù)據(jù)查詢作業(yè)(形成記錄指針);
Command對象:用來對數(shù)據(jù)庫傳遞SQL指令,并對數(shù)據(jù)庫進(jìn)行存取操作。ADO已集成于IIS或PWS中。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ù)傳遞“芝麻開門”:打開數(shù)據(jù)庫語句一:建立庫對象Set對象變量名=Server.CreatObject("ADODB.Connection")示例:SetMyCon=Server.CreateObject("ADODB.Connection")CreatObject是Server對象中用于建立一個(gè)可與數(shù)據(jù)庫交換數(shù)據(jù)對象的函數(shù)。上句的功能是建立一個(gè)可與數(shù)據(jù)庫交換數(shù)據(jù)的對象。語句二:鏈接數(shù)據(jù)庫對象變量名.Open鏈接字符串,(用戶帳號),(密碼)示例(運(yùn)用ODBC數(shù)據(jù)源時(shí)):MyCon.Open"DSN=address;UID=;PWD="打開ODBC中的數(shù)據(jù)源address源(UID-用戶帳號;PWD-密碼)Open是Connection對象的一個(gè)方法。若所需數(shù)據(jù)庫有平安性管制,應(yīng)附加用戶帳號和密碼兩項(xiàng),否則不加。如:MyCon.Open"DSN=address"此句的作用類似于FoxBASE語句:useaddress干脆鏈接時(shí)的鏈接字符串假如不接受ODBC數(shù)據(jù)源,則鏈接字符串的形式如下:Provider=Microsoft.Jet.OLEDB4.0;DataSource=數(shù)據(jù)庫路徑名稱若所需數(shù)據(jù)庫有平安性管制,應(yīng)附加用戶帳號和密碼兩項(xià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閱歷:NTFS下ODBC數(shù)據(jù)源的運(yùn)用服務(wù)器文件系統(tǒng)為NTFS格式時(shí),假如用戶通過閱讀器對ODBC數(shù)據(jù)庫的記錄進(jìn)行更新、刪除等寫操作,會(huì)因權(quán)限不足而出現(xiàn)出錯(cuò)提示(但查詢正常)。解決方案:設(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)限即夠了)提取數(shù)據(jù)庫中的記錄建立數(shù)據(jù)庫鏈接后,connection對象變量就將在ASP程序中代表所要操作的數(shù)據(jù)庫RecordSet的概念RecordSet用于儲(chǔ)存connetcion對象讀取的數(shù)據(jù)紀(jì)錄。每個(gè)RecordSet對象都相當(dāng)于一個(gè)數(shù)據(jù)表,保存著用該對象的Open指令讀取所需的全部記錄,并可通過記錄指針的移動(dòng)對這些記錄進(jìn)行各種庫操作(起先時(shí)記錄指針指在第一條記錄處)SetRS=Server.CreateObject(“ADODB.RecordSet”)建立一個(gè)名為RS的RecordSet對象此句的作用是產(chǎn)生一個(gè)可在數(shù)據(jù)表中移動(dòng)指針的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中,以便進(jìn)行庫操作典型語句小結(jié):你明白了沒有?打開Web數(shù)據(jù)庫的操作不同于一般數(shù)據(jù)庫先建立一個(gè)庫對象,將它與服務(wù)器上的所需操作的某個(gè)數(shù)據(jù)庫鏈接。在程序中將用也只用該庫對象名代表所操作的數(shù)據(jù)庫。然后建立一個(gè)記錄集對象,用它存入所需操作的全部記錄。在程序中將用、也只用該記錄集對象代表所操作的數(shù)據(jù)。事實(shí)上還有其他一些語句可以實(shí)現(xiàn)以上功能。下學(xué)期諸位將會(huì)在特地的課程中學(xué)到。常用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中模糊查找格式有所不同(見下)典型ADOSQL查詢語句分析精確查找
Select*from數(shù)據(jù)表名where字段名=……例:Select*frompersonwherename=‘陳秀振’Select*fromchengjiwhere考試日期=#2000/6/8#Select*fromabcwherewages=‘“&Request.Form(“T1”)&”’模糊查找在where子句中用like和通配符%、_表示%相當(dāng)于DOS吩咐中的*_相
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人力資源全日制勞動(dòng)合同樣本
- 2025年餐飲合作伙伴協(xié)議示范文本
- 業(yè)委會(huì)物業(yè)承包合同模板大全
- 中日合作度假村項(xiàng)目合同
- 臨時(shí)保潔服務(wù)合同范本
- 財(cái)務(wù)顧問承銷協(xié)議書三篇
- 建筑工程分包2025年協(xié)議書
- 個(gè)人土地抵押融資合同范本
- 事業(yè)單位外包服務(wù)合同范本
- 個(gè)人購銷合同范本標(biāo)準(zhǔn)
- 快遞代收點(diǎn)合作協(xié)議
- 食堂項(xiàng)目組織架構(gòu)圖
- 食材配送公司機(jī)構(gòu)設(shè)置及崗位職責(zé)
- 2023年版一級建造師-水利工程實(shí)務(wù)電子教材
- 房地產(chǎn)工程管理 -中建八局機(jī)電工程質(zhì)量通病治理辦法
- GB/T 6403.4-2008零件倒圓與倒角
- GB/T 2518-2019連續(xù)熱鍍鋅和鋅合金鍍層鋼板及鋼帶
- 企業(yè)合規(guī)管理-課件
- 火電廠安全工作規(guī)程
- GB∕T 33047.1-2016 塑料 聚合物熱重法(TG) 第1部分:通則
- 特發(fā)性肺纖維化IPF
評論
0/150
提交評論