




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 B/S 體系結(jié)構(gòu)中數(shù)據(jù)庫接口技術(shù) ASP技術(shù) 9.3 數(shù)據(jù)庫訪問組件ADO9.4 習(xí)題 u9.1.1 CGI(Common Gateway Interface)CGI即通用網(wǎng)關(guān)接口,是早期建立應(yīng)用程序與Web服務(wù)器之間接口的標準,其工作方式是:用戶通過瀏覽器用HTTP以Form(表單)向Web服務(wù)器發(fā)出請求;Web服務(wù)器接收用戶的請求,用一個子進程啟動CGI,將用戶的請求傳給CGI;CGI向數(shù)據(jù)庫服務(wù)器發(fā)出請求,數(shù)據(jù)庫服務(wù)器執(zhí)行相應(yīng)的查詢操作;數(shù)據(jù)庫服務(wù)器將服務(wù)請求返回給CGI;CGI將查詢結(jié)果轉(zhuǎn)換成網(wǎng)頁形式返回給Web服務(wù)器,Web服務(wù)器再通過HTTP將網(wǎng)頁傳給用戶的瀏覽器顯示出來,其工作
2、示意圖如圖9-1所示:u9.1.1 CGI(Common Gateway Interface)圖9-1u9.1.1 CGI(Common Gateway Interface)CGI的功能是在超文本文件與Web服務(wù)器應(yīng)用程序之間傳遞信息。CGI程序可用Visual Basic、C、C+、和Perl等語言來編寫。CGI的跨平臺性能極佳,幾乎可以不加任何修改即可移植到絕大多數(shù)操作系統(tǒng)上。但其缺點是運行速度慢。CGI交互性差,因為HTTP協(xié)議無狀態(tài)限制,CGI不能保持當前狀態(tài),所以缺少交互性。 最后由于只要來訪就可執(zhí)行CGI,所以安全性差。u9.1.2 服務(wù)器API 目前最流行的兩種API分別是Mic
3、rosoft的ISAPI(Internet Server Application Program Interface)和Netscape的NSAPI(Netscape Server Application Program Interface)。這兩種接口可讓程序設(shè)計人員以標準方式編寫Web服務(wù)器交互的應(yīng)用程序。目前Netscape宣布其NSAPI也支持ISAPI標準,則意味著只有一種Web API標準了。ISAPI由兩類組件組成:提供縱向功能層的ISAPI應(yīng)用程序和提供橫向功能層的ISAPI過濾器。u9.1.2 服務(wù)器API用ISAPI編制的程序以動態(tài)連接庫(DLL)的形式存在,可實現(xiàn)CGI所
4、能提供的全部功能,二者的工作原理大體相同,都是通過交互式主頁取得用戶輸入信息,然后交給服務(wù)器后臺處理。二者的區(qū)別在于:在ISAPI下建立的應(yīng)用程序都是以DLL形式存在,而CGI的應(yīng)用程序一般為可執(zhí)行文件。在ISAPI調(diào)用方式中,被用戶激活的DLL和Web服務(wù)處于同一進程中,在處理完某用戶的請求后不會馬上消失,而是和Web服務(wù)器一起繼續(xù)駐留在內(nèi)存中,等待其他用戶的HTTP請求,直到過了指定的時間仍直無用戶輸入為止。由于ISAPI的所有進程都可獲得HTTP Server上的任何資源,而且當它調(diào)用外部CGI Script時需要的開銷也較單純的CGI少,所以ISAPI的運行效率顯著高于CGI程序。服務(wù)
5、器API的工作示意圖如圖9-2所示:u9.1.2 服務(wù)器API圖9-2u9.1.3 ASP由于服務(wù)器API開發(fā)的難度大,于是微軟推出ASP(Active Service Pages,即動態(tài)服務(wù)器網(wǎng)頁技術(shù)),用以取代CGI技術(shù)。ASP是開放式Web服務(wù)器應(yīng)用程序開發(fā)技術(shù),它既不是一種編程語言,也不是一種開發(fā)工具,而是一種服務(wù)器端的腳本運行環(huán)境。ASP的主要功能是生成動態(tài)、交互式的高效Web服務(wù)器應(yīng)用程序。它能夠把腳本、HTML、組件和數(shù)據(jù)庫訪問功能結(jié)合在一起,形成一個在服務(wù)器端運行的應(yīng)用程序,并按用戶請求,把結(jié)果轉(zhuǎn)換成標準的HTML頁面返回客戶端。ASP通過ADO訪問數(shù)據(jù)庫。ASP使用腳本語言進
6、行ASP程序的開發(fā),自身提供VBScript和JavaScript兩種腳本引擎,缺省為VBScript。ASP工作示意圖如圖9-3所示。u9.1.3 ASP圖9-3u9.2.1 ASP的運行環(huán)境 ASP的運行需要服務(wù)器來解釋。微軟推出的服務(wù)器是u(即)。uMicrosoft Personal Web Server on Windows 95/98(即PWS) 。u9.2.2 ASP的工作流程ASP程序是以.asp為擴展名的文本文件,其控制部分是用VBScript或JavaScript等腳本語言來編寫的。一個ASP文件相當于一個可執(zhí)行文件,因此必須放在Web服務(wù)器上有可執(zhí)行權(quán)限的目錄下。ASP程
7、序只能在Web服務(wù)器端執(zhí)行,當瀏覽器向Web服務(wù)器請求調(diào)用ASP文件時,就啟動了ASP。Web服務(wù)器響應(yīng)該HTTP請求,調(diào)用ASP引擎,解釋被申請的文件。當遇到與ActiveX Script兼容的腳本(VBScript,JavaScript)時,ASP引擎調(diào)用相應(yīng)的腳本引擎進行解釋處理。若腳本指令中涉及到對數(shù)據(jù)庫的訪問,就調(diào)用ADO組件與后臺數(shù)據(jù)庫進行連接,并將執(zhí)行結(jié)果動態(tài)生成一個HTML頁面返回Web服務(wù)器端,然后與頁面中非腳本的HTML合并成一個完整的HTML頁面送至客戶端瀏覽器。ASP的工作流程如圖9-4所示:u9.2.2 ASP的工作流程數(shù)據(jù)庫Web服務(wù)器ADOJavaScriptVB
8、Script(ActiveX腳本引擎)瀏覽器HTTP響應(yīng)HTTP請求ASP文件圖9-4u9.2.3 ASP文件的結(jié)構(gòu)任何可以放在HTML中的東西Java applets、VBScript或者JavaScript等腳本語言、ActiveX控件等都可以放入ASP中;ASP還提供了內(nèi)置對象,可以使用許多附加的組件,這大大擴展了ASP的功能。VBScript是ASP的默認腳本程序引擎,除了VBScript,ASP也允許網(wǎng)頁編寫者使用其他熟悉的語言。ASP的腳本語言代碼可以放在程序的任何位置,只需用標記將其括起來即可,且不須事先說明。u9.2.3 ASP文件的結(jié)構(gòu)一般一個ASP文件可以包含以下四個部分:
9、u普通HTML文件,普通Web頁面的編程。u客戶端腳本程序代碼,通常用和定界符括起來。u服務(wù)器端ASP腳本程序代碼,用“” 定界符括起來。uServer_SideInclude語句,使用#INCLUDE語句在Web頁面中嵌入其他Web頁面,其中“”是標準的ASP定界符,而和是客戶端腳本或服務(wù)器端腳本的定界符。u9.2.3 ASP文件的結(jié)構(gòu)一【例9-1】ASP程序?qū)嵗齝hap9-1.asp:以不同的字體輸出“Welcome!”。 ASP程序?qū)嵗?Font Size= u9.2.3 ASP文件的結(jié)構(gòu)以上程序可以用文本編輯器(Notepad)或?qū)S瞄_發(fā)工具(Visual InterDev 6.0)來
10、輸入,并將其放在Web服務(wù)器的虛擬目錄下,然后在瀏覽器的地址欄中輸入http:/localhostchap9-1.asp,運行結(jié)果如圖9-5所示: 圖9-5u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件ASP的內(nèi)置對象如表9-1所示:內(nèi)置對象功 能Request從瀏覽器(用戶端)發(fā)送到服務(wù)器端的所有信息Response將HTML和各種其他信息返回到用戶端瀏覽器Server為ASP的應(yīng)用程序提供服務(wù)器的功能Session在此對象中維護每個用戶的信息Application對給定應(yīng)用程序的所有用戶共享信息ObjectContext提供分布式事務(wù)處理ASPError獲取發(fā)生在ASP頁面中的錯誤信息u9.2.
11、4 ASP的內(nèi)置對象和應(yīng)用組件ASP的內(nèi)置組件如表9-2所示:內(nèi)置對象功 能Request從瀏覽器(用戶端)發(fā)送到服務(wù)器端的所有信息Response將HTML和各種其他信息返回到用戶端瀏覽器Server為ASP的應(yīng)用程序提供服務(wù)器的功能Session在此對象中維護每個用戶的信息Application對給定應(yīng)用程序的所有用戶共享信息ObjectContext提供分布式事務(wù)處理ASPError獲取發(fā)生在ASP頁面中的錯誤信息u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件1Request對象- Request對象用于訪問用HTTP請求傳遞的信息,也就是客戶在請求頁面或提交表單時提供的所有信息。- 通常來說
12、,Request對象所得到的信息是從瀏覽器傳遞給服務(wù)器的,傳遞的方式有兩種:Get和PostRequest對象包括五個數(shù)據(jù)集合、一個屬性和一個方法。Request對象的語法格式為: Request.數(shù)據(jù)集合|屬性|方法(變量) Request擁有以下五個數(shù)據(jù)集合,分別是:Form:取得客戶端表格元素中所填入的信息。QueryString:取回URL請求字符串。Cookies:取得客戶端瀏覽器的Cookies值。ServerVariable:取得服務(wù)器端環(huán)境變量的值。ClientCertificate:從客戶端取得身份驗證的信息。 u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件(1)Form數(shù)據(jù)集合-
13、 在ASP Web頁面上,可以使用Request對象的Form集合收集來自客戶端的以表單形式發(fā)往服務(wù)器的信息。- 語法格式為: Request.Form(String參數(shù))(索引.計數(shù)) 其中,String參數(shù)是用來指定集合要檢索的表格元素名稱(如:Text,Radio等)。索引是一個可選的參數(shù),可以取得Form下名稱相同的表格元素,它的值是由0Request.Form(String參數(shù)).Count之間的任意整數(shù)。Request.Form(String參數(shù)).Count屬性值代表所有名稱相同的表格元素的數(shù)目,如果不存在名稱相同的表格元素其返回值為1,若該表格元素不存在則返回值為0。需要注意的
14、是Form集合對應(yīng)的方法為Post,而QueryString集合對應(yīng)的方法為Get。u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件【例9-2】Form數(shù)據(jù)集合應(yīng)用實例,從客戶端獲取表單信息。客戶端腳本程序chap9-2.html代碼如下,運行結(jié)果如圖9-6所示: Form數(shù)據(jù)集合演示實例客戶端程序 系統(tǒng)登錄 用戶名稱 登錄密碼 u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件圖9-6u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件當單擊“登錄”按鈕以后,由chap9-3.asp程序讀取表單中的數(shù)據(jù)。服務(wù)器端腳本程序chap9-3.asp代碼如下,運行結(jié)果如圖9-7所示: Form數(shù)據(jù)集合演示實例服務(wù)器端程序 用戶名
15、稱: 用戶密碼: u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件圖9-7u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件(2)QueryString數(shù)據(jù)集合uQueryString集合的功能就是從查詢字符串中讀取用戶提交的數(shù)據(jù)。一般來講,查詢字符串變量直接定義在超級鏈接的URL中,即接在“?”字符之后。例如:http:/ex/query.asp?txtusername=sau語法格式為:Request.QueryString(變量名稱)(索引.計數(shù)) 其中,索引是一個任選的參數(shù),可以取得“?”字符后名稱相同的變量名,而且在“?”字符之后還可以用符號“&”來連接兩個不同的參數(shù)。例如:http:/ex/
16、answer.asp?Y=yes&N=no計數(shù)是一個整數(shù),是從0Request.QueryString(變量名稱).Count的任意值。 Request.QueryString(變量名稱).Count表示所有名稱相同的變量數(shù),如果不存在名稱相同的變量,其值為1,若該變量不存在,其值為0 。u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件【例9-3】QueryString數(shù)據(jù)集合應(yīng)用實例,獲取客戶端信息。運行此程序時,注意在瀏覽器的地址欄中輸入:http:/localhost/chap9-4.asp?QS=歡迎登錄本站點。運行結(jié)果如圖9-8所示 : QueryString數(shù)據(jù)集合演示實例 %Fo
17、r Each Item In Request.Querystring(QS) Response.Write Item & Next% u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件圖9-8u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件(3) ServerVariables數(shù)據(jù)集合uServerVariables數(shù)據(jù)集合可用于提供有關(guān)隨HTTP請求一起傳遞的HTTP頭信息。u語法格式為: Request.ServerVariables(服務(wù)器環(huán)境變量)u服務(wù)器環(huán)境變量是只讀變量,只能查閱,不能設(shè)置。u服務(wù)器環(huán)境變量如教材中表9-3所示:u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件【例9-4】Server
18、Variables 數(shù)據(jù)集合應(yīng)用實例,只有從連接過來的才被允許訪問。運行結(jié)果如圖9-9所示(此處省略圖顯示): Servervariables數(shù)據(jù)集合演示實例 u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件(4)ClientCertificate數(shù)據(jù)集合uClientCertificate數(shù)據(jù)集合從瀏覽器發(fā)出的請求中獲取認證字段。一般情況下,IIS和PWS都默認為不向客戶端要求身份驗證的命令。u語法格式為:Request.ClientCertificate(KeySubField) Key:指定要獲取的驗證字段名稱。u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件涉及到的關(guān)鍵字如表9-4所示:關(guān) 鍵 字含義
19、描述Subject包含了使用證書的客戶信息Issuers包含可信任的第三方的有關(guān)信息ValidFrom證書有效的起始時間ValidUntil證書有效的終止時間SerialNumber一個包含認證的串行數(shù)字的字符串,由四組十六進制ASCII碼表示Certificate一個包含整個認證信息的二進制流的字符串Flags提供其他額外的身份驗證信息的標識u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件Subfield:可選參數(shù),用于按Subject或Issuers關(guān)鍵字檢索單獨的字段。附屬參數(shù)如表9-5所示:子參數(shù)意 義C指定國家的名稱O指定公司或組織的名稱OU指定組織部門的名稱 CN指定客戶端的一般名稱L指定
20、客戶端的位置S指定州名或省名T指定個人的職位頭銜GN指定姓名的名I指定姓名的姓u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件(5) Cookies數(shù)據(jù)集合uCookies數(shù)據(jù)集合是用來記錄客戶端信息的,當訪問一個需要惟一標識地址的Web站點時,它會在硬盤上留下一個標記,下一次當訪問同一個站點時,站點的頁面會查找這個標記。每個Web站點都有自己的標記,標記的內(nèi)容可以隨時讀取,但只能由該站點的頁面完成。u語法格式:Request.Cookies(String)(Key)|.Attribute 其中,參數(shù)String指要檢索其值的Cookie。 Key為可選參數(shù),用于從Cookies字典中檢索子關(guān)鍵字的值
21、。 Attribute屬性指定Cookies自身的有關(guān)信息。u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件 Attribute參數(shù)見表9-6所示 :屬 性說 明Domain 只寫,若被指定,則Cookie將被發(fā)送到對該域的請求中去Expires只寫,指定Cookie的過期日期。為了在會話結(jié)束后將Cookie存儲在客戶的磁盤上,必須設(shè)置該日期。若此項屬性的設(shè)置未超過當前日期,則在任務(wù)結(jié)束后Cookie將到期HasKeys只讀,確定Cookie是否包含多個關(guān)鍵字。若包含多個,則HasKeys返回True,否則為FalsePath只寫,若被指定,則Cookie將只發(fā)送到對該路徑的請求中。若未設(shè)置該屬性,則
22、使用應(yīng)用程序的路徑Secure 只寫。設(shè)置該Cookie的安全性u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件【例9-5】假設(shè)建立了一個名為BookCookies的Cookies字典,代碼如下: Response.Cookies(“ BookCookies”)(“ SF” ) =“數(shù)學(xué)分析” Response.Cookies(“ BookCookies”)(“XD”) =“線性代數(shù)” Response.Cookies(BookCookies )(GS) =高等數(shù)學(xué)u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件 應(yīng)用實例:使用Cookies數(shù)據(jù)集合讀取BookCookies字典的值,代碼如下: If Not
23、 Request.Cookies(Cookie).Haskeys Then Response.Write&Cookie&= &Request.Cookies(Cookie) Else Response.Write“”&Cookie&“包含以下鍵值:” For Each Key In Request.Cookies(Cookie) Response.Write&Key&=&Request.Cookies(Cookie)(Key) Next End If Next % u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件(6)Request對象的
24、屬性u其中counter變量會取回客戶端送回的數(shù)據(jù)字節(jié)大小,本屬性一般與BinaryRead方法配合使用。(7)Request對象的方法uRequest對象只有一個方法:BinaryRead方法,語法格式為:Variant=Request.BinaryRead(counter)u其中,counter變量是利用TotalBytes屬性取回客戶端送回的數(shù)據(jù)字節(jié)大小。u注意注意:該方法與方法合用可能會造成執(zhí)行上的錯誤。u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件2Response對象 uResponse對象的功能與Request對象的功能正好相反,用于向客戶端瀏覽器發(fā)送信息,從而通過腳本代碼中的HTTP
25、變量識別服務(wù)器及其容量、發(fā)送到客戶端的有關(guān)信息及該范圍內(nèi)將要保存到客戶端瀏覽器中的一些新的Cookie。該對象與Request對象相互配合,可以實現(xiàn)服務(wù)器端和瀏覽器端的數(shù)據(jù)傳輸,這是網(wǎng)頁實現(xiàn)動態(tài)功能的基礎(chǔ)。uResponse對象的語法格式為: Response.數(shù)據(jù)集合|屬性|方法u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件(1) Response對象的數(shù)據(jù)集合uCookies是Response對象中唯一的數(shù)據(jù)集合。使用Cookies可以設(shè)置客戶端瀏覽器內(nèi)的Cookie值。Cookie的語法格式為:Response.Cookies(Var)(Key)|.Attribute=Cookie值u這里,V
26、ar代表Cookie的名稱。如果指定了Key,則該Cookie就是一個字典。Attribute指定Cookie自身的有關(guān)信息。可取Domain,Expires,Path,HasKeys值,意義同前。u【例9-6】建立名為user的Cookie字典,其中,關(guān)鍵字分別為name、password u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件(2) Response對象的的屬性 Buffer屬性:Buffer屬性用來設(shè)置是否把Web頁面輸出到緩沖區(qū)。 Buffer屬性語法格式為: Response.Buffer=Boolean Value(布爾值) 注意注意:當Buffer屬性設(shè)置為True時,如果調(diào)用
27、了End方法,緩沖區(qū)的內(nèi)容也會發(fā)送給客戶。當Buffer屬性值為False時,Web服務(wù)器在處理每一句腳本時都向客戶發(fā)送信息,而不是一直等到所有的腳本處理完才發(fā)送。u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件 Expires屬性:控制頁面在緩沖區(qū)中的有效時間。 Expires屬性語法格式為: Response.Expires=Intnum 其中,參數(shù)Intnum是用來設(shè)置保留的時間長度,單 位是min(分鐘) ExpiresAbsolute屬性:用來指定緩存于瀏覽器中的頁面的確切到期日期和時間。 語法格式為: Response.ExpiresAbsolute=日期時間 其中,日期的值用標準的月/日
28、/年格式表示 注意注意:Expires屬性采用相對時間來實現(xiàn)(即再過多長時間該頁面失效),而ExpiresAbsolute屬性采用絕對時間來實現(xiàn)(即在某一特定時間該頁面失效)。 u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件(3) Response對象的方法 Write方法:可以把信息從服務(wù)器端直接送到客戶端。 其中,參數(shù)String為變量或字符串,變量可以是所使用的腳本語言中的任意數(shù)據(jù)類型?!纠?-7】Write方法應(yīng)用實例chap9-7.asp,運行結(jié)果如圖9-10所示。 Write方法演示實例 u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件圖9-10u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件 Redi
29、rect方法:引導(dǎo)客戶端的瀏覽器立即重定向到程序指定的URL位置,也就是進入另一個Web頁面,類似于HTML中的超鏈接。 語法格式為:Response.Redirect String 其中,參數(shù)String為網(wǎng)址變量或URL字符串 Write【例9-8】Redirect方法應(yīng)用實例:根據(jù)客戶的不同身份,為不同的客戶指定不同的頁面??蛻舳四_本程序chap9-8.html代碼如下,運行結(jié)果如圖9-11所示。 W r i t e 方 法 演 示 實 例 u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件圖9-11u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件當用戶在文本框內(nèi)輸入待查找的關(guān)鍵字,并選擇相應(yīng)的搜索引擎后
30、,單擊“搜索”按鈕,將執(zhí)行程序chap9-9.asp,代碼如下,運行結(jié)果如圖9-12所示(此處省略圖顯示)。 Redirect方法服務(wù)器端腳本演示實例 u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件 Clear方法:清除Web Server緩沖區(qū)中的內(nèi)容,但不能清除HTTP首部。 其語法格式為:Response.Clear 注意注意:在使用這一方法時,Response對象的Buffer 屬性必須設(shè)置為True,否則,將會導(dǎo)致程序執(zhí)行時 的錯誤。 End方法:使Web服務(wù)器立即停止處理ASP程序, 在調(diào)用End方法之后出現(xiàn)的所有代碼都不會被執(zhí)行, 包括純HTML代碼的顯示。 語法格式為:Respons
31、e.End Flush方法:立即將緩存在服務(wù)器端的Response 輸出信息發(fā)送到客戶端顯示。 u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件3Session對象u使用Session對象可以存儲特定的用戶會話所需的信息。當用戶在應(yīng)用程序的不同頁面之間切換時,存儲在Session對象中的變量不被清除,始終存在。u可以使用Session方法顯式地結(jié)束一個會話和設(shè)置空閑會話的超時時間。uSession數(shù)據(jù)存儲在服務(wù)器端,Cookie數(shù)據(jù)存儲在客戶端,因此不能通過查看Cookie來得到用戶Session里的內(nèi)容。u如果瀏覽器不支持使用Cookie,或者瀏覽器設(shè)置為拒絕接受Cookie,則不能使用Sessio
32、n。uSession對象的語法格式為: Session.屬性|方法|事件 u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件(1) Session對象的屬性 SessionID屬性:當用戶第一次在一個應(yīng)用程序中申請一個ASP頁面時,ASP將使用一個復(fù)雜的算法賦予Session一個值,然后將這個值以Cookie的形式保存在用戶的計算機上。隨后,每當用戶向Web服務(wù)器請求一個頁面,該Cookie就被放在HTTP請求的首部中發(fā)送到服務(wù)器上,這樣服務(wù)器就能夠根據(jù)SessionID識別用戶。創(chuàng)建和檢查這些Cookie需要一定的系統(tǒng)開銷,可以使用標記來禁用Web服務(wù)器或特定頁面的Cookie。SessionID屬性
33、就是用來訪問這一值的,它以長整型數(shù)據(jù)類型返回。u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件【例9-9】SessionID屬性應(yīng)用實例chap9-10.asp,運行結(jié)果如圖9-13所示。 SessionID屬性演示實例 當前的SessionID為: 創(chuàng)建一個Session(“Counters”)變量,并且將內(nèi)容設(shè)置為2 u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件圖9-13u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件 Timeout屬性:如果用戶在指定時間內(nèi)沒有請求或刷新應(yīng)用程序中的任何頁,會話將自動結(jié)束。這段時間的默認值是20min。對于一個特定的會話,如果想設(shè)置一個與默認的超時值不同的值,可以設(shè)置Ses
34、sion對象的Timeout屬性。Timeout屬性以min為單位,為該應(yīng)用程序中的Session對象指定超時時限,其語法格式為:Session.Timeout=IntNumu9.2.4 ASP的內(nèi)置對象和應(yīng)用組件(2) Session對象的方法 Session對象只有一個方法,就是Abandon方法。該方法用于釋放Web服務(wù)器用于保存某個用戶會話信息的存儲空間。(3) Session對象的事件 Session_OnStart事件:在服務(wù)器創(chuàng)建新會話時發(fā)生,服務(wù)器在執(zhí)行請求的頁之前先處理該腳本。Session對象的OnStar事件中的代碼(如果有的話)保存在global.asa文件中。 語法格
35、式為: Sub Session_OnStart End Sub u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件 Session_OnEnd事件 Session_OnEnd事件在用戶會話結(jié)束時或腳本中調(diào)用了Session對象的Abandon方法時被觸發(fā)。Session_OnEnd事件過程同樣保存在global.asa文件里。 語法格式為: Sub Session_OnEndt End Sub u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件4Application對象u可以使用Application對象在給定的應(yīng)用程序的所有用戶之間共享信息,并在服務(wù)器運行期間持久地保存數(shù)據(jù)。u當一個缺省的Web站點應(yīng)用程序或
36、虛擬目錄應(yīng)用程序的個頁面接收到第一個請求時,則產(chǎn)生個Application對象,緊接著會為該用戶產(chǎn)生一個Session對象,并開始該用戶的會話。u當更多會話開始時,單個的Application對象仍會保持在作用域內(nèi)。只有當Web服務(wù)器停止工作,或這個應(yīng)用程序真正從服務(wù)器上卸載時,該應(yīng)用程序才會關(guān)閉,Application對象也就被銷毀uApplication對象的語法格式為: Application.屬性|方法|事件 u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件(1) Application對象的屬性uApplication對象沒有內(nèi)置的屬性,但用戶可以創(chuàng)建自己的屬性,又稱為Application
37、變量。u語法格式為:Application(“屬性|集合名稱”)=屬性值u由于存儲在Application對象中的數(shù)據(jù)可以被所有用戶讀取,所以Application對象的屬性特別適合在應(yīng)用程序的用戶之間傳遞信息。u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件(2) Application對象的方法 Lock()方法:用于鎖定對象,禁止其他用戶修改Application中的屬性。這樣在同一時刻只有一個用戶對Application對象進行操作,以保證數(shù)據(jù)的一致性和完整性。直到調(diào)用Application對象的Unlock方法,才允許下一個用戶修改Application的屬性。如果用戶沒有明確地調(diào)用Unlo
38、ck方法,則服務(wù)器將在ASP文件結(jié)束或超時后解除對Application對象的鎖定。 Unlock方法:用于解除對Application對象的鎖定,允許其他用戶修改Application對象的屬性。u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件(3) Application對象的事件 Application_OnStart事件:僅在第一個用戶請求時發(fā)生,并且只被每個應(yīng)用觸發(fā)一次。如果隨后還有第二、第三用戶訪問該站點,Application_OnStart事件都不會再發(fā)生,因為應(yīng)用已處于運行狀態(tài)。語法格式為: Sub Application_OnStart End Sub u9.2.4 ASP的內(nèi)置對
39、象和應(yīng)用組件 Application_OnEnd事件:在退出應(yīng)用時或Web服務(wù)器被關(guān)閉時,于Session_OnEnd事件之后發(fā)生。同樣對每個應(yīng)用來說,Application_OnEnd事件也僅被觸發(fā)一次。語法格式為: Sub Application_OnEnd End Sub u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件【例9-10】Application應(yīng)用實例chap9-11.asp,運行結(jié)果如圖9-14所示: Application演示實例 Application(“Counters”)=0 到訪人數(shù)初始化 End If Application.Lock 進入網(wǎng)頁的次數(shù)加一 Applica
40、tion(Counters)=Application(Counters)+1 Application.Unlock% 來訪人數(shù)共計: u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件圖9-14u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件(4) Session與Application的比較u兩者都允許用戶自定義屬性,對象中的變量都可以進行存取,都有生命周期和作用域,但它們的生命周期和作用范圍卻是完全不同的。uSession對象是每位連接者自己所擁有的,每有一個連接就為它單獨產(chǎn)生一個Session對象,有多少個連接就有多少個對象,結(jié)束一個連接就終止一個Session對象。而Application對象是所有該網(wǎng)
41、頁連接者共有的一個對象。它是當有第一個連接時產(chǎn)生,直至所有連接都斷開或Web服務(wù)器被關(guān)閉而終止。uSession對象通常被用來記錄單個用戶的信息,如:身份密碼、個人喜好等。Application對象則被用來記錄所有用戶的公共信息,如:主頁訪問記數(shù)器、公共討論區(qū)的信息等。 u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件5Server對象uServer對象提供對服務(wù)器訪問的基本方法,主要包括創(chuàng)建ActiveX組件實例對象、映射目錄和編碼解碼。 語法格式為:Server.屬性|方法(1) Server對象的屬性uServer對象的屬性只有一個,即ScriptTimeOut。該屬性的主要功能就是用于設(shè)置一個
42、腳本文件執(zhí)行的最長時間。u語法格式為:Server.ScriptTimeOut=n 其中,參數(shù)n為指定的延時時間長度,單位是s而不是min。系統(tǒng)的默認值為90s。用戶可以通過設(shè)置參數(shù)n的值來改變某個腳本文件執(zhí)行的最長時間,但不能低于90s,否則仍以默認值作為腳本文件執(zhí)行的最長時間。u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件(2) Server對象的方法 HTMLEncode方法:允許對特定的字符串進行HTML編碼。如果想顯示某個HTML頁面中涉及到的實際HTML代碼或ASP腳本,必須使用Server對象的HTMLEncode方法。這樣,當在瀏覽器中顯示HTML字符串時,就不會把它解釋為文本格式的
43、指令。語法格式為:Server.HTMLEncode(String)。 其中,參數(shù)String是指欲編碼的字符串,它的功能是將字符串編碼為ASCII形式的HTML文件。u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件 URLEncode方法:類似于HTMLEncode方法,但它將URL編碼規(guī)則應(yīng)用到指定的字符串中。當字符串數(shù)據(jù)以URL的形式傳遞到服務(wù)器時,在字符串中不允許出現(xiàn)空格,也不允許出現(xiàn)特殊字符。如果有空白字符,在結(jié)果中會使用“+”字符來代替,特殊字符則用%、數(shù)值與字符的方式表示。URLEncode方法的語法格式為:Server.URLEncode(String) 其中,參數(shù)String是指UR
44、L字符串。u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件 MapPath方法:是將指定的虛擬路徑(當前服務(wù)器上的絕對路徑或相對于當前頁面的路徑)映射到物理路徑上去。MapPath方法的語法格式為:Server.MapPath(String) 其中,參數(shù)String是指虛擬路徑字符串。語句中String以一個正斜杠(/)或反斜杠()開始,則MapPath方法將返回服務(wù)器端的宿主目錄。該方法通常被用來打開一個數(shù)據(jù)庫文件或文本文件。u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件 CreateObject方法:可以用來創(chuàng)建已經(jīng)注冊到服務(wù)器上的ActiveX組件實例。CreateObject方法的語法格式為:Ser
45、ver.CreateObjec(ProgID) 這里,ProgID指定了組件標識。組件可以是各種形式的可執(zhí)行程序(DLL、EXE等),不必考慮它的位置,只要在Windows NT(或98)中登記注冊了這些程序,COM就會在系統(tǒng)注冊表(Registry)里維護這些資料,讓程序員調(diào)用。注意注意:CreateObiect方法僅能用來創(chuàng)建外置對象實例,不能用來創(chuàng)建系統(tǒng)的內(nèi)置對象實例。CreateObiect方法建立的對象實例僅在創(chuàng)建它的頁面中有效。u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件 Transfer方法:將請求從正在執(zhí)行的ASP文件發(fā)送到另一個文件中。在傳輸過程中,原來請求的ASP文件立即終止執(zhí)
46、行,但并不清除輸出緩沖區(qū)。請求信息然后在目標文件中變得可用并開始執(zhí)行。執(zhí)行過程中,該文件與原來請求的文件訪問同一組內(nèi)部對象。Transfer方法的語法格式為: Server.Transfer(String) 其中,參數(shù)String是指包含了新文件URL的字符串?!纠?-11】Transfer方法應(yīng)用實例:假若有兩個.asp文件,chap9-12.asp和chap9-13.asp,運行結(jié)果如圖9-15所示(此處省略圖顯示): u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件u代碼如下:Transfer方法演示實例%Response.Write 歡迎進入文件 Response.Write ()Respon
47、se.Write 正準備進入文件“Server.Transfer(chap9-13.asp)%u代碼如下:Transfer方法演示實例Response.Write()Response.Write 歡迎進入文件“% u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件 Execute方法:用于停止當前文件的運行,并將控制權(quán)交給作為一個參數(shù)傳遞過來的另一個文件,執(zhí)行其內(nèi)容,然后再將控制權(quán)交給原始的文件。該方法類似于許多編程語言的過程調(diào)用,只不過過程調(diào)用是執(zhí)行一個過程,而Execute方法是執(zhí)行一個完整的ASP文件。語法格式為:Server.Execute(String) 其中,參數(shù)String是指控制權(quán)變換文
48、件的相對URL。u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件【例9-12】Execute方法應(yīng)用實例:假若有兩個.asp文件,和,運行結(jié)果如圖9-16所示(此處省略圖顯示):uChap9-14.asp代碼如下:Execute方法演示實例%Response.Write 正在執(zhí)行chap9-14.asp文件 Response.Write 正準備進入chap9-15.asp文件“Server.Execute(chap9-15.asp)Response.Write 退出chap9-15.asp文件,返回chap9-14.asp文件%uchap9-15.asp代碼如下:Transfer方法演示實例%Resp
49、onse.Write 歡迎進入chap9-15.asp文件“%u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件 GetLastError方法:用于發(fā)現(xiàn)執(zhí)行文件的ASP程序過程中最后產(chǎn)生的錯誤信息。返回一個ASPError對象的參考實例,包括產(chǎn)生錯誤的文件、錯誤行號及錯誤代碼等。u語法格式為:Server.GetLastError() u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件6ObjectContext對象u使用ObjectContext對象可以提交或放棄一項由MTS(Microsoft Transaction Server)管理的事務(wù)。uASP給出了“”標識,用來標識事務(wù)處理要求,運行時如果遇到“”就
50、知道這個Web頁面要使用分布式事務(wù)處理來運行。這時數(shù)據(jù)的傳輸必須在每一個數(shù)據(jù)傳輸點都成功,否則,所有的數(shù)據(jù)更新都將無效。u TRANSACTION標識可以聲明該Web頁面以MTS分布式處理事務(wù),其語法格式為: 其中的功能參數(shù)說明見表9-7所示:u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件TRANCTION標識使用的參數(shù)見表9-7所示:參 數(shù) 名功能簡述Required將Web頁面初始化為分布式事務(wù)處理型SupportedWeb頁面需要分布式事務(wù)Not_SupportedWeb頁面并不需要分布式事務(wù)u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件(1) ObjectContext對象的方法 SetAbort
51、方法:立即終止該Web頁面所進行的事務(wù)處理,但該次事務(wù)處理被聲明為失敗,所有處理的數(shù)據(jù)都無效,必須被還原。該方法的語法格式為:ObjectContext.SetAbort()u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件(2) ObjectContext對象的事件 OnTransactionCommit事件:在一個腳本事務(wù)成功提交后發(fā)生,當該事件發(fā)生時,如果腳本中有OnTransactionCommit子例程,服務(wù)器將處理該子例程。 OnTransacfionAbort事件:當事務(wù)處理失敗時,該事件將發(fā)生。如果腳本中有OnTransactionAbort子例程,當該事件發(fā)生時,Web服務(wù)器將執(zhí)行它。
52、在ObjectContext實現(xiàn)的兩種方法中,SetAbort方法完全終止事務(wù)。這樣,MTS不更新在第一階段所進行的操作。事務(wù)終止時,將處理腳本的OnTransactionAbort事件。u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件7ASPError對象uASPError對象是ASP 3.0中的新對象,用來獲取發(fā)生在ASP頁面中最后的錯誤細節(jié),這些錯誤信息通過Server.GetLastError方法返回。 (1) ASPError對象的屬性 ASPCode屬性:該屬性返回一個包含了由ASP或IIS產(chǎn)生的錯誤號的字符串,主要用于顯示一些引用外部組件的錯誤。其語法格式為: ASPDescriptio
53、n屬性:該屬性的值由ASP預(yù)處理器產(chǎn)生,將返回包含了錯誤信息的字符串,對大部分的腳本錯誤該值為空。其語法格式為:u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件 Category屬性:該屬性是表示錯誤根源的字符串,該錯誤可能由ASP、腳本語言或外部對象產(chǎn)生。其語法格式為: Column屬性:該屬性返回頁面中產(chǎn)生錯誤的字符位置。其語法格式為: Description屬性:當錯誤出現(xiàn)時,該屬性總有一個值,該值是一個對錯誤進行描述的短字符串。其語法格式為: File屬性:該屬性在產(chǎn)生錯誤時返回正在處理頁面的名字。其語法格式為: Line屬性:該屬性在產(chǎn)生錯誤時返回頁面中錯誤檢測位置的行號。其語法格式為:u9
54、.2.4 ASP的內(nèi)置對象和應(yīng)用組件 Number屬性:對于發(fā)生的錯誤,Number屬性返回標準的COM錯誤代碼。其語法格式為: Source屬性:該屬性在產(chǎn)生錯誤時返回出現(xiàn)錯誤行的實際源代碼。其語法格式為:u9.2.4 ASP的內(nèi)置對象和應(yīng)用組件(2) 配置定制的錯誤頁 當ASP頁面出現(xiàn)錯誤并且該頁無法發(fā)送到瀏覽器上時,IIS將發(fā)送一個包含錯誤信息的頁面來代替該頁面,該頁面可以是一般的HTML頁面,也可以是ASP頁面。IIS安裝了許多缺省的處理錯誤的頁面,這些頁面通常保存在winnthelpiishelpcommon目錄下,它們像其他頁面一樣,可以在瀏覽器中打開,也可以在文本編輯器中分析它們
55、的源代碼。除了這些缺省的錯誤處理頁面,可以指示IIS裝載其他的頁面來代替這些頁面,這些錯誤頁面通常稱為定制的錯誤頁面。u.1 ADO對象模型 ADO是Web數(shù)據(jù)庫應(yīng)用的最佳選擇,目前許多基于Web的應(yīng)用系統(tǒng)都使用ADO技術(shù)來實現(xiàn)對Web數(shù)據(jù)庫的訪問。ADO是一個ASP內(nèi)置的服務(wù)器組件,是一座連接Web應(yīng)用程序和OLE DB的橋梁,運用它結(jié)合ASP技術(shù)可以在網(wǎng)頁中執(zhí)行SQL命令,達到數(shù)據(jù)庫訪問的目的。ADO技術(shù)是通過ADO對象的屬性、方法來完成相應(yīng)的數(shù)據(jù)庫訪問。ADO共有以下七種獨立的對象,如教材表9-8所示。u.1 ADO對象模型 ADO的對象模型如圖9-17所示:圖9-17u 用Connec
56、tion對象連接數(shù)據(jù)庫 Connection對象用于建立和管理應(yīng)用程序與數(shù)據(jù)源間的連接,也可用它來執(zhí)行一個命令。 Connection對象的屬性和方法可用來打開和關(guān)閉數(shù)據(jù)庫連接,并發(fā)布對更新信息的查詢。1創(chuàng)建Connection對象u在使用Connection對象之前必須創(chuàng)建該對象,語法格式為: 字符串“ADODB.Connection”是用來創(chuàng)建Connection對象的ProgID。conn是創(chuàng)建的Connection對象。u也可以使用標記來創(chuàng)建對象,語法格式為:uConnection對象的屬性見教材表9-9所示,方法見教材表9-10所示:u 用Connection對象連接數(shù)據(jù)庫2連接數(shù)據(jù)
57、源: 使用DSN連接數(shù)據(jù)源u先用“ODBC數(shù)據(jù)源管理器”創(chuàng)建系統(tǒng)DSN,才能確保所有的Web用戶可以使用相應(yīng)的數(shù)據(jù)庫。 例如:假設(shè)已經(jīng)為books_management數(shù)據(jù)庫創(chuàng)建系 統(tǒng)DSN,名稱為books,登錄賬戶為sa,密碼為123。 方法為:u也可以先設(shè)置Connection.String屬性,再調(diào)用Open 方法。u或者直接將連接串作為參數(shù)來調(diào)用: u 用Connection對象連接數(shù)據(jù)庫 使用連接字符串:通過一個包含數(shù)據(jù)提供者連接數(shù)據(jù)源所需的信息的字符串實現(xiàn)與數(shù)據(jù)源的連接。這些信息包括兩部分:數(shù)據(jù)提供者的名字和數(shù)據(jù)源的位置。u例如:使用該方法來實現(xiàn)與Microsoft SQL Se
58、rver中Server服務(wù)器上的books_management數(shù)據(jù)庫的連接。u 其中,Provider指出數(shù)據(jù)提供者。Database指出在SQL Server上的待訪問的數(shù)據(jù)庫。Data Source指出SQL Server的計算機名或IP地址。u 用Connection對象連接數(shù)據(jù)庫3執(zhí)行SQL查詢:uConnection對象的Execute方法用來執(zhí)行。uExecute方法的語法格式是:conn.Execute(CommandText,RecordAffected,Options)其中,CommandText是包含表名、SQL語句或存儲過程等的字符串。 RecordAffected是可
59、選參數(shù),返回本次操作所影響到的記錄數(shù)。 Options是可選參數(shù),用來指定CommandText參數(shù)的類型。系統(tǒng)提供如下常量參數(shù):uAdCMDTable:被執(zhí)行的字符串是一個表的名字。uAdCMDText:被執(zhí)行的字符串是一個命令文本。uAdCMDStoredProc:被執(zhí)行的字符串是一個存儲過程名。uAdCMDUnknown:不指定字符串的內(nèi)容(默認值)。u 用Connection對象連接數(shù)據(jù)庫【例9-13】從數(shù)據(jù)庫books_management中的數(shù)據(jù)表reader中查詢所有記錄。代碼如下: u 用Connection對象連接數(shù)據(jù)庫【例9-14】從數(shù)據(jù)庫books_management中
60、的數(shù)據(jù)表reader中刪除姓名為“余華”這一讀者。代碼如下: u 用RecordSet對象控制數(shù)據(jù)Recordset對象是一個記錄的集合,是按字段(或列)和記錄(或行)的形式構(gòu)成的二維表。每個Recordset對象表示表中的記錄或運行一次查詢所得到的結(jié)果??梢栽诜秋@式打開Connection對象的情況下,打開一個Recordset對象(如執(zhí)行一次查詢),或者創(chuàng)建一個Connection對象,然后在該Connection對象上打開多個Recordset對象。使用Recordset對象,可以在記錄一級上對數(shù)據(jù)庫中的數(shù)據(jù)進行各種操作,如增刪記錄、更新數(shù)據(jù)庫、在記錄中移動等。Recordset對象的屬性見教材表9-11所示,方法見教材表9-12所示。典型Web數(shù)據(jù)庫應(yīng)用程序都是用
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 菊花種植收購事宜合同
- 基于大數(shù)據(jù)驅(qū)動的企業(yè)轉(zhuǎn)型升級合作協(xié)議
- 企業(yè)廣告牌制作合同
- 塔吊租賃協(xié)議樣本
- 環(huán)境監(jiān)測與評估合同
- 防雷裝置檢測技術(shù)服務(wù)合同
- 場地轉(zhuǎn)讓合同協(xié)議書
- 房地產(chǎn)項目合作協(xié)議
- 自動化生產(chǎn)線改造項目合作合同
- 美食外賣平臺食品質(zhì)量免責(zé)協(xié)議
- 《我國國有企業(yè)股權(quán)融資效率實證研究》相關(guān)概念及國內(nèi)外文獻綜述2600字
- 2025年湖南交通職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年常考版參考題庫含答案解析
- 成本合約規(guī)劃培訓(xùn)
- 山東省濟寧市2025屆高三歷史一輪復(fù)習(xí)高考仿真試卷 含答案
- 五年級數(shù)學(xué)(小數(shù)乘法)計算題專項練習(xí)及答案
- 交通法規(guī)教育課件
- 產(chǎn)前診斷室護理工作總結(jié)
- 6S管理知識培訓(xùn)課件
- 小學(xué)校長任期五年工作目標(2024年-2029年)
- 醫(yī)院培訓(xùn)課件:《猴痘流行病學(xué)特點及中國大陸首例猴痘病例調(diào)查處置》
- 氫氣-安全技術(shù)說明書MSDS
評論
0/150
提交評論