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

下載本文檔

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

文檔簡介

網(wǎng)絡系統(tǒng)集成技術

NetworksSystemIntegrating

第六章Web數(shù)據(jù)庫開發(fā)基礎本章主要內(nèi)容6.1Web數(shù)據(jù)庫的概念6.2Web數(shù)據(jù)庫訪問技術6.3Web數(shù)據(jù)庫的技術實現(xiàn)6.4ASP基礎——內(nèi)置對象6.5ASP基礎——Web庫操作下學期有《Web數(shù)據(jù)庫程序設計》課,本章只結(jié)合實例作簡要介紹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ǎng)頁閱讀原理:閱讀器(client端)——用戶電腦發(fā)出HTTP懇求,并按HTML等形式顯示網(wǎng)頁文件內(nèi)容網(wǎng)站(server端)——Web服務器響應閱讀器懇求,傳送網(wǎng)頁文件給閱讀器網(wǎng)頁文件Web數(shù)據(jù)庫的存取方式(一)用戶電腦閱讀器返回存取結(jié)果Web服務器Web數(shù)據(jù)庫CGI程序執(zhí)行存取通過服務器端的CGI程序響應用戶查詢要求用戶通過表單提交后,指定的服務器端CGI程序?qū)eb數(shù)據(jù)庫進行存取操作,而后將結(jié)果以網(wǎng)頁(HTML)形式返回到客戶端用戶輸入數(shù)據(jù)Web數(shù)據(jù)庫的存取方式(二)用戶電腦閱讀器讀取asp網(wǎng)頁返回html碼結(jié)果Web服務器(IIS或PWS)Web數(shù)據(jù)庫ODBC驅(qū)動程序執(zhí)行存取通過服務器端的asp程序響應用戶的要求服務器接受用戶端懇求時會推斷要求下載的是否.asp文件,如不是,干脆發(fā)送網(wǎng)頁。如是,再推斷該文件是否含有運用ADO對象的script(JavaScript或VBScript)內(nèi)容。如有,啟動對應的ODBC驅(qū)動程序,通過ADO對象訪問數(shù)據(jù)庫。如需顯示結(jié)果,則Script會利用ASP供應的輸出對象送出數(shù)據(jù)傳送給閱讀器。含有ADO對象的ASP指令、VBScript、JavaScript程序段靜態(tài)網(wǎng)頁與動態(tài)網(wǎng)頁所謂靜態(tài)網(wǎng)頁,指的是網(wǎng)頁從服務器傳到客戶端時,網(wǎng)頁的內(nèi)容是“固定不變”的,也就是說,服務器只是把所存儲的網(wǎng)頁的內(nèi)容原封不動干脆傳遞給客戶端閱讀器,這種網(wǎng)頁一般是標準的HTML代碼。所謂動態(tài)網(wǎng)頁,它在由服務器傳遞給客戶端的時候?qū)⒂煞掌靼阉D(zhuǎn)換成相應的HTML格式,而且會依據(jù)用戶的要求和選擇在服務器端做出相應的變更和響應。動態(tài)網(wǎng)頁網(wǎng)頁的靜態(tài)和動態(tài),是指網(wǎng)頁的內(nèi)容是否可依據(jù)某種條件的變更而自動變更,與頁面是否有動畫性變更無關。網(wǎng)頁計數(shù)器:動態(tài)的,當有人點擊網(wǎng)頁時,計數(shù)器的值會自動增加BBS論壇:動態(tài)的,用戶發(fā)布信息時,網(wǎng)頁內(nèi)容會自動更新,顯示出新發(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)頁時,可以簡潔的認為,接受了以上語言編寫的網(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等常見形式6.2Web數(shù)據(jù)庫訪問技術ASP開發(fā)技術ASP(ActiveServerPages,活動服務器頁)微軟公司97年推出的一種網(wǎng)頁與數(shù)據(jù)庫解決方案,利用微軟的ActiveX技術在服務器端動態(tài)生成HTML頁面的一種腳本環(huán)境。ASP是一種運行于服務器端的Web應用程序開發(fā)技術,它接受封裝對象,程序調(diào)用對象的技術,簡化了編程。開發(fā)者無需進行困難編程,就可以開發(fā)出動態(tài)的、交互的、各種功能的Web應用程序。ASP應用程序必需運行在配備IIS(WindowsNT/2000/2003)或PWS(Windows9X)的服務器上。IIS(InternetInformationServer)PWS(PersonalWebServer)常用開發(fā)工具:MicrosoftVisualInterDevMacromediaDreamweaverUltraDev最新一代:ASP.NET(:///)ActiveXVC++MSDN的說明:Asetoftechnologiesthatenablessoftwarecomponentstointeractwithoneanotherinanetworkedenvironment,regardlessofthelanguageinwhichtheywerecreated.ActiveX?isbuiltontheComponentObjectModel(COM).《金山詞霸》的說明:微軟提倡的ActiveX網(wǎng)絡化多媒體對象技術關于ASP.NET由于ASP程序和網(wǎng)頁的HTML混合在一起,使得程序看上去相當?shù)碾s亂。而在現(xiàn)在的網(wǎng)站設計過程中,通常是由程序開發(fā)人員做后臺的程序開發(fā),前面有專業(yè)的美工設計頁面,這樣,在相互協(xié)作的過程中就會產(chǎn)生各種各樣的問題。同時,ASP頁面是有腳本語言說明執(zhí)行的,速度受到影響。受到腳本語言自身條件的限制,而且在編寫ASP程序的時候不得不調(diào)用COM組件來完成一些功能。由于以上種種限制,微軟推出了ASP.NET。ASP.NET供應了一個全新而強大的服務器控件結(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擁有了更高的效率。PHP(PersonalHomePageTools)類似于ASP的一種服務器端腳本語言,其語法大多從C、JAVA、PERL語言中借來,可更快速開發(fā)交互式動態(tài)網(wǎng)頁??缙脚_強大的數(shù)據(jù)庫集成功能(相同的PHP代碼無需更改即可在不同操作系統(tǒng)的Web服務器上運行),但供應的數(shù)據(jù)庫接口不統(tǒng)一(如對Oracle、Sybase和MySQL的接口不同)等緣由,不適合于電子商務類網(wǎng)站。最佳組合:Linux+Apache+MySQL+PHP目前Internet上流行的網(wǎng)站構(gòu)架方式,即運用Linux作為操作系統(tǒng),Apache作為Web服務器,MySQL作為數(shù)據(jù)庫,PHP作為服務器端腳本說明器。由于這四個軟件都是開放源碼軟件,因此運用這種方式不用花一分錢就可以建立起一個穩(wěn)定、免費的網(wǎng)站系統(tǒng)。常用開發(fā)工具:ZDE(ZENDDEVELOPMENTENVIORMENT)PHPED最新版本:PHP5.0.4(課件書目下可下載)主要網(wǎng)站:PHP開發(fā)技術JSP(JavaServerPages)JSP是由SunMicrosystems公司提倡、很多公司參與一起建立的一種動態(tài)網(wǎng)頁技術標準。在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP標記(tag),就構(gòu)成了JSP網(wǎng)頁(*.jsp)。Web服務器在遇到訪問JSP網(wǎng)頁的懇求時,首先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以HTML格式返回給客戶。程序片段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁以及發(fā)送email等等,這就是建立動態(tài)網(wǎng)站所須要的功能。全部程序操作都在服務器端執(zhí)行,網(wǎng)絡上傳送給客戶端的僅是得到的結(jié)果,對客戶閱讀器的要求最低,可以實現(xiàn)無Plugin,無ActiveX,無JavaApplet,甚至無Frame??缙脚_支持(國外電子商務類網(wǎng)站多采有JSP技術)通過JDBC實現(xiàn)與數(shù)據(jù)庫的連接JSP開發(fā)技術ASP主要適用于WindowsNT/2000/2003服務器平臺,與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技術的平臺性能比較表10-2ASP、PHP與JSP技術的應用性能比較ASP、PHP與JSP技術性能比較CGI開發(fā)技術CGI(CommonGatewayInterface,通用網(wǎng)關接口)用于連接主頁和應用程序的接口。HTML語言的功能比較貧乏,難以完成諸如訪問數(shù)據(jù)庫等一類的操作,假如須要先對數(shù)據(jù)庫進行操作(比如文件檢索系統(tǒng)),然后把訪問的結(jié)果動態(tài)地顯示在主頁上,只用HTML是無法做到的,所以CGI便應運而生。CGI是在WebServer端運行的一個可執(zhí)行程序,通過主頁鏈接激活進行調(diào)用,并對該程序的返回結(jié)果進行處理,顯示在主頁上。最常用的CGI編程語言有Perl,此外還有C,C++,shellScript和VB。Perl編程效率最高,功能最強,但程序調(diào)試性較差。CGI網(wǎng)頁的文件擴展名與所用編程語言有關。如Perl為.pl,VB為.bas等。缺點:平安性較差/繁多進程占用大量服務器資源/編程困難,而且沒有自動保留狀態(tài)信息的功能(如用戶狀態(tài)),已不多用此外運用CGI程序時,須要不斷地產(chǎn)生和銷毀進程(process),執(zhí)行效率不高,一般狀況:HTML100%ASP10%CGI1%6.3Web數(shù)據(jù)庫的技術實現(xiàn)建立數(shù)據(jù)庫安裝該數(shù)據(jù)庫所需的ODBC驅(qū)動程序創(chuàng)建ODBC數(shù)據(jù)源制作表單網(wǎng)頁和ASP網(wǎng)頁應用程序Access數(shù)據(jù)庫Oracle數(shù)據(jù)庫VFP數(shù)據(jù)庫……AccessODBCDriverVFPODBCDriverOracleODBCDriver基本原理與流程小型網(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)建表→……可以將其他相關文件(如.dbf、.xls等文件)轉(zhuǎn)換為.mdb文件(獲得外部數(shù)據(jù)→導入)一個Access數(shù)據(jù)庫可以有多個表。彼此之間可通過主關鍵字關聯(lián)。好用技術外部數(shù)據(jù)轉(zhuǎn)入(運用其他文件的數(shù)據(jù))獲得外部數(shù)據(jù)→導入數(shù)據(jù)轉(zhuǎn)出導出復制數(shù)據(jù)(上圖)隨機密碼的生成(下圖)要產(chǎn)生一組介于上限和下限之間的隨機數(shù):(9999-1000)×Rnd(-Timer())+1000(上限-下限)

×隨機數(shù)+下限示例:"jdw%"+CStr(Int((9999-1000)*Rnd(-Timer())+1000))+"#"名詞說明ODBC(OpenDataBaseConnectivity,開放式數(shù)據(jù)庫互聯(lián))由微軟公司制定的數(shù)據(jù)庫標準接口。只要用戶運用的數(shù)據(jù)庫軟件供應了ODBC驅(qū)動程序,就可讓應用程序來存取這些數(shù)據(jù)庫。早期的數(shù)據(jù)庫程序開發(fā)者必需運用服務器數(shù)據(jù)庫廠商供應的開發(fā)工具才能實現(xiàn)數(shù)據(jù)庫的存取,因為每種數(shù)據(jù)庫軟件建立的文件類型不同。通過ODBC則可以存取不同廠商所供應的服務器數(shù)據(jù)庫。創(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ù)庫→高級(設置存取密碼)檢查服務器的ASP是否正常IIS的默認Web站點設置檢查主書目文檔測試ASP工作是否正常編寫一個a.asp文檔,存放在主書目下a.asp文件內(nèi)容<%=now%>:///asp閱讀器窗口上應出現(xiàn)當時日期和時間顯示相關的HTML學問(復習)問題:HTML(HyperTextMarkupLanguage,超文本標記語言)——為什么如此稱呼?問題:網(wǎng)頁基本構(gòu)成<html><head><title><body>問題:常見標記<br><p><table><tr><td><ahref=“url”>問題:表單基本構(gòu)成<formname=“student”action=“url”method=*>……<inputtype=submit><inputtype=reset></form>問題:表單元素——文本框、復選框、單選按鈕、列表框…常見表單元素(1)文本框<inputtype=textvalue=“name”size=10maxlength=20>一般文本框顯示長度為10字符、最大長度為20個字符<inputtype=passwordname=“pwd”>密碼型文本框多行文本框(文本區(qū)域)<textareaname=commentrows=5cols=50></textarea>5行每行50個字符的多行文本框常見表單元素(2)復選框<inputtype=checkboxname=fruit1>香蕉<inputtype=checkboxname=fruit2checked>蘋果(已預選)多個復選框中的name不能同值單選框<inputtype=radioname=fruit1>香蕉<inputtype=radioname=fruit2checked>蘋果(已預選)常見表單元素(3)下拉列表框

<selectname=“xb"size="1"><optionvalue="jxx">電子信息工程學系</option><optionselectedvalue="wyx">外國語言學系</option><optionvalue="zwx">漢語言文學系</option><optionvalue="tyx">體育系</option></select>常見表單元素(4)單選列表框與多選列表框<selectname=“others"size="3"multiple><optionvalue="leader">系部領導</option><optionvalue="head“>學院領導</option><optionvalue=“student_head">學生干部</option><optionvalue="professors">高職稱老師</option></select>size="3”顯示三行multiple多選表單及其數(shù)據(jù)的讀取Form(表單)設計每一個輸入欄必需設定NAME屬性,當數(shù)據(jù)被送出時,NAME屬性的值會和其相對應的VALUE屬性的值被轉(zhuǎn)換為“NAME=VALUE”的形式發(fā)送。不同的輸入欄中間會以“&”作分隔,即會形成“NAME1=VALUE1&NAME2=VALUE2”的形式兩種提交方法GET運用URL干脆向服務器提交數(shù)據(jù)數(shù)據(jù)加在URL名后,用“?”分隔(總長度不得超過1024個字節(jié))POST通過STDIN(標準輸入)提交數(shù)據(jù)數(shù)據(jù)編碼后隱密發(fā)送,且長度不受限制METHOD=GETGET方法的含義Brower按HTTP(HyperTextTransferProtocol)將用戶提交的數(shù)據(jù)傳送出去,而Server會把數(shù)據(jù)存放在服務器環(huán)境變量QUERY_STRING中,供處理程序(由表單的action屬性指定)運用。適合于傳輸少量的非隱密性的數(shù)據(jù)。什么是環(huán)境變量?一些由WEB服務器軟件申明的、保存用戶信息的內(nèi)存區(qū)。當服務器軟件一旦運行,這些環(huán)境變量就存在于服務器內(nèi)存中。當服務器收到一個客戶機的懇求后,它首先要收集它能得到的全部相關信息,并把它放入內(nèi)存的環(huán)境變量中,等待ASP/PHP/CGI等程序去處理。METHOD=POSTPOST方法的含義把用戶在表單中填寫的數(shù)據(jù)變成一個數(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>提交后相當于客戶機向服務器發(fā)出了一個如下的URL懇求:://xxx/a.asp?name1=aabb&name2=ccdd此時服務器端的環(huán)境變量QUERY_STRING和環(huán)境變量REQUEST_METHOD的值變更為:QUERY_STRING=“name1=aabb&name2=ccdd”

REQUEST_METHOD=GETASP程序可以用以下語句讀取表單元素的值Request(“表單元素名”)Request.QueryString(“表單元素名”)(僅用于GET方法)表單提交時字符的編碼規(guī)則變量之間用“&”分隔變量與其對應值之間用“=”分隔空格以“+”代替特殊字符如“&”、“=”、ASCII碼128以上的字符及漢字,以“%XX”代替,其中“XX”為特殊字符的16進制ASCII碼空格為非法數(shù)據(jù)隨意不行打印的ASCII限制字符為非法字符示例表單(6-1.htm)元素:你的姓名(name):輸入“張三”你的密碼(pwd):輸入“abcd”性別(male):單選“男”(value=male)提交給服務器時將會顯現(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值不會顯示)※留意:傳遞信息不僅是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基礎——內(nèi)置對象ASP的內(nèi)置對象ASP包括7個內(nèi)置對象,這些內(nèi)置對象共同組成的ASP的基本框架。內(nèi)置對象的意義在于:它們在ASP頁內(nèi)生成且有腳本中運用它們前無須創(chuàng)建。編程者只要了解這些內(nèi)置對象的屬性、方法和事務,就可以特別便利地開發(fā)自己的Web應用程序。Request獲得用戶通過閱讀器表單向服務器發(fā)送的信息Response將執(zhí)行結(jié)果傳輸給用戶閱讀器Session用來記錄連接者的信息(每個連接者都有一個獨立的Session

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

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

交易最終兩項是ASP3.0新增的對象在ASP頁面中運用腳本<%%>IIS默認的腳本語言是VBScript,必要時可改為JavaScript方法:IIS→默認Web站點→屬性→主書目→配置→應用程序選項(右圖)Request對象用于處理HTTP協(xié)議的懇求獲得用戶信息可以有多種常用形式Request(element)Request.Form(element)(index)Request.QueryString(element)Request.QueryString(index)實例分析EXAMexam6-1.1.htm及對應的member.aspForm1.htm及對應的form1.aspResponse對象用于負責HTTP協(xié)議的響應,如將asp處理后的變量值等轉(zhuǎn)換為HTML元素輸出到用戶閱讀器上常用形式Response.Write相當于C語言中的printResponse.Redirect“URL”實現(xiàn)頁面的跳轉(zhuǎn)Response.End結(jié)束ASP運行進程并將執(zhí)行好的HTML文件送向用戶閱讀器實例分析Register.htm及對應的Redirect.aspServer對象供應對服務器相關的操作常用形式Server.CreatObject("ActiveX組件名")創(chuàng)建一個ActiveXServer組件對象的實例示例:Server.CreatObject("ADODB.Connection")Server.MapPath("文件路徑\文件名")將指定的路徑及文件映射到服務器網(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對象在一次用戶訪問期間(“會話期間”),當用戶在一個應用程序的頁與頁之間跳轉(zhuǎn)時,用戶信息(如用戶在登錄時輸入的密碼)無法保留,其結(jié)果要么某一頁可以繞過密碼檢查而隨意訪問,要么每一頁都要重新輸入密碼。運用ASP的session對象,可以為每個用戶保存?zhèn)€人相關信息。例如用session變量來保存某個用戶的帳號和密碼,只要用戶沒有關掉閱讀器,則這些信息會始終得以保存,并可以session變量的形式被調(diào)用。Session變量的有效執(zhí)行時間(用戶暫停動作時間)默認是20分鐘??捎靡韵抡Z句變更其值:Session.Timeout=分鐘數(shù)示例:session("usr")=Request.Form("xh")session("pwd")=Request.Form("pw")在本頁及以后各頁就可以通過下頁示例進行密碼校驗,而不必讓用戶每頁都輸入密碼。<%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“學號、密碼輸入錯誤或個人資料不正確,請返回選課系統(tǒng)首頁重新輸入!"Response.EndEndif%>session("RS").Fields(“password")是用變量session("usr")從數(shù)據(jù)庫中取出的用戶密碼字段值Application對象用于保存不同用戶之間共有的信息實例(見招生查詢首頁—2004zs.asp)最簡潔的“計數(shù)器”當前在線人數(shù):<%=Application(“whoison")%>人另一實例:<%IfApplication("whoison")>50thenresponse.write"當前在線人數(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文件定義小結(jié):網(wǎng)頁數(shù)據(jù)傳送方式比較讓用戶提交的信息通過閱讀器跨頁傳送表單希望保存某一用戶相關的變量Session須要在一次訪問多頁文件中運用時Cookie須要在客戶端長期保存用戶信息以便多次訪問運用時多個用戶共同運用某一共享變量ApplicationVBScript常識變量命名類似于C語言,但首字符必需是字母。變量不必先聲明再運用變量名稱和關鍵字無大小寫之分字符串——用單引號或雙引號括起整數(shù)/小數(shù)型布爾型True/False日期型用#…#括起示例:#May12,2005#限制結(jié)構(gòu)(選擇\循環(huán))見后6.5ASP基礎——Web庫操作ADO(ActiveXDataObjects)ADO則是微軟公司供應的一組訪問Internet數(shù)據(jù)庫專用技術。它為ASP供應了完整的站點數(shù)據(jù)庫解決方案,它作用在服務器端,可鏈接數(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ù)庫間建立鏈接關系;

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

Command對象:用來對數(shù)據(jù)庫傳遞SQL指令,并對數(shù)據(jù)庫進行存取操作。ADO已集成于IIS或PWS中。WEB數(shù)據(jù)庫編程基本模塊建立數(shù)據(jù)庫打開數(shù)據(jù)庫(標準語句)□創(chuàng)建數(shù)據(jù)庫對象□打開數(shù)據(jù)庫數(shù)據(jù)庫操作(標準語句)

□提取記錄□查詢/新增/刪除/更新關閉數(shù)據(jù)庫(標準語句)其他常用技術□頁面間的參數(shù)傳遞□用戶間的參數(shù)傳遞“芝麻開門”:打開數(shù)據(jù)庫語句一:建立庫對象Set對象變量名=Server.CreatObject("ADODB.Connection")示例:SetMyCon=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ù)庫有平安性管制,應附加用戶帳號和密碼兩項,否則不加。如:MyCon.Open"DSN=address"此句的作用類似于FoxBASE語句:useaddress干脆鏈接時的鏈接字符串假如不接受ODBC數(shù)據(jù)源,則鏈接字符串的形式如下:Provider=Microsoft.Jet.OLEDB4.0;DataSource=數(shù)據(jù)庫路徑名稱若所需數(shù)據(jù)庫有平安性管制,應附加用戶帳號和密碼兩項,否則不加。如對Access數(shù)據(jù)庫stu.mdb:SetMyCon=Server.CreatObject("ADODB.Connection")MyCon.Open"Provider=Microsoft.Jet.OLEDB4.0;

DataSource=stu.mdb"假如數(shù)據(jù)源路徑是網(wǎng)站所設定的虛擬書目(設為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ù)源的運用服務器文件系統(tǒng)為NTFS格式時,假如用戶通過閱讀器對ODBC數(shù)據(jù)庫的記錄進行更新、刪除等寫操作,會因權限不足而出現(xiàn)出錯提示(但查詢正常)。解決方案:設置權限使IUSR_...(Internet來賓帳號)對

c:\programfiles\commonfiles\ODBC

文件夾有寫入權設置權限使IUSR_...(Internet來賓帳號)對c:\winnt\temp文件夾有寫入權設置權限使IUSR_...(Internet來賓帳號)對ACCESS數(shù)據(jù)庫文件所在的文件夾有寫入權(讀取與寫入權限即夠了)提取數(shù)據(jù)庫中的記錄建立數(shù)據(jù)庫鏈接后,connection對象變量就將在ASP程序中代表所要操作的數(shù)據(jù)庫RecordSet的概念RecordSet用于儲存connetcion對象讀取的數(shù)據(jù)紀錄。每個RecordSet對象都相當于一個數(shù)據(jù)表,保存著用該對象的Open指令讀取所需的全部記錄,并可通過記錄指針的移動對這些記錄進行各種庫操作(起先時記錄指針指在第一條記錄處)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學號like'"&Request.Form("T1")&"'",,1,2

在MyCon代表的數(shù)據(jù)庫中打開數(shù)據(jù)表student,按where子句的要求提取記錄,存放在所建立的RecordSet對象RS中,以便進行庫操作典型語句小結(jié):你明白了沒有?打開Web數(shù)據(jù)庫的操作不同于一般數(shù)據(jù)庫先建立一個庫對象,將它與服務器上的所需操作的某個數(shù)據(jù)庫鏈接。在程序中將用也只用該庫對象名代表所操作的數(shù)據(jù)庫。然后建立一個記錄集對象,用它存入所需操作的全部記錄。在程序中將用、也只用該記錄集對象代表所操作的數(shù)據(jù)。事實上還有其他一些語句可以實現(xiàn)以上功能。下學期諸位將會在特地的課程中學到。常用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和通配符%、_表示%相當于DOS吩咐中的*_相

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論