




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
異常處理和驗(yàn)證控件第一頁(yè),共四十一頁(yè),2022年,8月28日本章內(nèi)容錯(cuò)誤處理使用驗(yàn)證服務(wù)控件第二頁(yè),共四十一頁(yè),2022年,8月28日5.1錯(cuò)誤處理一.異常處理異常:發(fā)生不同類型的錯(cuò)誤。拋出異常:系統(tǒng)或程序本身向外聲明一個(gè)異常發(fā)生。異常類:錯(cuò)誤的種類,都是特定類的對(duì)象。錯(cuò)誤頁(yè)面:一個(gè)特定的錯(cuò)誤頁(yè)面。處理異常:出現(xiàn)錯(cuò)誤時(shí)不希望只是出現(xiàn)錯(cuò)誤頁(yè)面,而是能對(duì)錯(cuò)誤直接處理。處理錯(cuò)誤的方法(級(jí)別):
1.在類級(jí)
2.在頁(yè)面級(jí)
3.在應(yīng)用程序級(jí)第三頁(yè),共四十一頁(yè),2022年,8月28日二.在類級(jí)(程序中)使用try…catch語(yǔ)句塊處理異常try{doubledVal1=Convert.ToDouble(txtValue1.Text);doubledVal2=Convert.ToDouble(txtValue2.Text);doubleresult=dVal1/dVal2;labMessage.Text=txtValue1.Text+"/"+txtValue2.Text;labMessage.Text+="="+result;}catch(FormatExceptionex1){labMessage.Text="Pleaseenteravalidnumber";}catch(Exceptionex2){labMessage.Text="Unabletocomputeavaluewiththesevalues";}第四頁(yè),共四十一頁(yè),2022年,8月28日有時(shí)需要使用finally做最后的處理,無(wú)論是否發(fā)生異常。try{//Openadatabaseconnection//ExecuteSQLstatement}catch(DbExceptionex){//Handledatabaseexception}finally{//Closedatabaseconnectionifitexists}第五頁(yè),共四十一頁(yè),2022年,8月28日1.異常開銷不是多有的問(wèn)題都需要使用異常來(lái)對(duì)待,如接受用戶數(shù)據(jù)的輸入。下面的處理方法并不是很合適:try{SomeBusinessObject.Login(email);
//Othercodedependentuponasuccessfullogin}catch(Exceptionex){//Displaymessagethatemailwasnotfound}使用下面的處理方法程序?qū)⒏咏眩篵oolokay=SomeBusinessObject.Login(email);if(!okay){//Displayerrormessageonpage}else{//Othercodedependentuponasuccessfullogin}第六頁(yè),共四十一頁(yè),2022年,8月28日2.可能的異常處理策略當(dāng)有異常出現(xiàn)時(shí)有四種處理策略:通過(guò)捕獲異常來(lái)吞掉它,并且繼續(xù)正常執(zhí)行而忽略異常。在catch語(yǔ)句塊中完全處理異常。不捕獲異常而忽略它(讓其他類來(lái)處理它)。捕獲異常并重新拋出它,以便某個(gè)其它的類來(lái)處理它。說(shuō)明:第一種方法根本不合適。屬于典型的不負(fù)責(zé)任。第二種方法最理想,但難以做到,不是什么問(wèn)題自己都能夠解決。第三種方法也比較多見,有時(shí)候自己無(wú)能力處理,只好交給別人處理。第四種方法也比較多見,根據(jù)情況進(jìn)行處理,并將錯(cuò)誤上報(bào)。第七頁(yè),共四十一頁(yè),2022年,8月28日try{//Othercodethatcausesanexception}catch(Exceptionex){//Dosomethingwithexception//Rethrowexceptionthrow;
或thrownewException(myMessage,ex);}第八頁(yè),共四十一頁(yè),2022年,8月28日三.頁(yè)面級(jí)的異常處理ASP.NET提供了一個(gè)Page_Error事件,專門處理頁(yè)面級(jí)異常。看下面的事例。{ protectedvoidPage_Load(objectsender,EventArgse){BuggyMethod();}privatevoidBuggyMethod(){//Deliberatelythrowanexceptiontosimulate//uncaughtexceptionthrownewApplicationException("Yourbuggycodecausedanexception.");}
privatevoidPage_Error(objectsender,EventArgse){Exceptionex=Server.GetLastError();Response.Write("<h1>Anerrorhasoccurred</h1>");Response.Write("<h2>"+ex.Message+"</h2>");Response.Write("<pre>"+ex.StackTrace+"</pre>");Context.ClearError();//防止缺省錯(cuò)誤頁(yè)面顯示
}}Page_Error中不允許使用控件,所以只能使用Response.Write輸出數(shù)據(jù)。第九頁(yè),共四十一頁(yè),2022年,8月28日通常不使用Page_Error事件處理器,一般使用Application_Error處理器,它屬于應(yīng)用程序一級(jí),比頁(yè)面級(jí)更有優(yōu)勢(shì)。第十頁(yè),共四十一頁(yè),2022年,8月28日四、應(yīng)用程序級(jí)的異常處理有兩種方法:使用Application_Error處理器使用錯(cuò)誤頁(yè)面重定向1.使用Application_Error處理器Application_Error處理器比Page_Error更有優(yōu)勢(shì),它能處理所有頁(yè)面級(jí)的錯(cuò)誤。需要說(shuō)明的是,Application_Error處理器定義在Global.asax文件中(可通過(guò)添加全局應(yīng)用程序類添加)。第十一頁(yè),共四十一頁(yè),2022年,8月28日下面例子把接收到的任何異常輸出到WindowsEventLog,可通過(guò)事件查看器瀏覽。voidApplication_Error(objectsender,EventArgse){ stringmsg="Url"+Request.Path+"Error:"+ Server.GetLastError().ToString(); try{//createtheWebErrorseventsourceifweneedtostringlogName="WebErrors";
if(!EventLog.SourceExists(logName))EventLog.CreateEventSource(logName,logName);//addanewerroreventtothelogEventLoglog=newEventLog();log.Source=logName;log.WriteEntry(msg,EventLogEntryType.Error);}catch(Exceptionex){//notmuchwecandowiththisexceptoutputittodebuggerDebug.WriteLine(ex.Message);}}第十二頁(yè),共四十一頁(yè),2022年,8月28日也可以把錯(cuò)誤形成郵件發(fā)送到指定的郵件中或把信息記錄到自定義文件中。見教材P180。第十三頁(yè),共四十一頁(yè),2022年,8月28日2.使用自定義錯(cuò)誤頁(yè)面如果在Page_Error和Application_Error中不使用Context.ClearError方法,則錯(cuò)誤會(huì)重定向到缺省的錯(cuò)誤頁(yè)面。錯(cuò)誤的頁(yè)面在開發(fā)環(huán)境和非開發(fā)環(huán)境下是不同的,開發(fā)環(huán)境下可以看到錯(cuò)誤的詳細(xì)信息。也可以將錯(cuò)誤頁(yè)面重定向到一個(gè)自定義的頁(yè)面,這需要修改配置文件。<system.web><customErrors
mode="On"defaultRedirect="FriendlyErrorPage.aspx"><error
statusCode="404"redirect="custom404.aspx"/><error
statusCode="500"redirect="custom500.aspx"/></customErrors></system.web>第十四頁(yè),共四十一頁(yè),2022年,8月28日5.2使用驗(yàn)證服務(wù)器控件驗(yàn)證控件用來(lái)測(cè)試用戶的輸入并設(shè)置輸入是否通過(guò)測(cè)試的屬性。驗(yàn)證控件需要引用頁(yè)面上其他的輸入控件。在用戶輸入時(shí),ASP.NET頁(yè)框架將用戶輸入傳遞到一個(gè)或多個(gè)適當(dāng)?shù)尿?yàn)證控件,由驗(yàn)證控件對(duì)輸入的信息進(jìn)行驗(yàn)證。ASP.NET提供了五種基本的驗(yàn)證類型控件和一個(gè)驗(yàn)證總結(jié)控件(ValidationSummary),它們分別由不同的驗(yàn)證控件來(lái)實(shí)現(xiàn)。第十五頁(yè),共四十一頁(yè),2022年,8月28日驗(yàn)證控件控件名稱說(shuō)明RequiredFieldValidator確保輸入控件的值不為空,即必須輸入了數(shù)據(jù)CompareValidator使用比較運(yùn)算符(小于、等于、大于等)將用戶的輸入與另一控件的常數(shù)值或?qū)傩灾颠M(jìn)行比較。RangeValidator檢查用戶的輸入是否在指定的上下邊界之間??梢詸z查數(shù)字、字母或日期對(duì)內(nèi)的范圍??梢詫⑦吔绫硎緸槌?shù)。RegularExpressionValidator檢查輸入是否與正則表達(dá)式定義的模式匹配。該驗(yàn)證類型允許檢查可預(yù)知的字符序列,如社會(huì)保障號(hào)、電子郵件地址、電話號(hào)碼、郵政編碼等中的字符序列。CustomValidator使用您自己編寫的驗(yàn)證邏輯檢查用戶的輸入。ValidationSummary以摘要的形式顯示頁(yè)上所有驗(yàn)證程序的驗(yàn)證錯(cuò)誤。第十六頁(yè),共四十一頁(yè),2022年,8月28日下面展示了RequiredFieldValidator控件的使用<asp:TextBoxID="txtUserName"runat="server"/><asp:RequiredFieldValidatorId="reqUser"runat="server"
ControlToValidate="txtUserName"
Text="PleaseenteraUserName"/>其中兩個(gè)重要屬性ControlToValidate用來(lái)建立關(guān)聯(lián),Text顯示錯(cuò)誤提示。第十七頁(yè),共四十一頁(yè),2022年,8月28日一、表單驗(yàn)證過(guò)程表單數(shù)據(jù)的驗(yàn)證包括客戶端驗(yàn)證和服務(wù)器端驗(yàn)證客戶端驗(yàn)證:瀏覽器通過(guò)本地JavaScript腳本進(jìn)行驗(yàn)證,不需要與服務(wù)器交互,減少往返時(shí)間。效率高。服務(wù)器端驗(yàn)證:有些驗(yàn)證必須在服務(wù)器端進(jìn)行,因?yàn)樾枰c服務(wù)器上的數(shù)據(jù)進(jìn)行比較。兩種驗(yàn)證不是絕對(duì)分開的。有時(shí)因?yàn)榭蛻舳瞬恢С?,客戶端?yàn)證可能行不通,另外也存在一定的風(fēng)險(xiǎn)(存在腳本漏洞)。所以服務(wù)器端驗(yàn)證會(huì)更加安全。第十八頁(yè),共四十一頁(yè),2022年,8月28日1.客戶端驗(yàn)證過(guò)程客戶端驗(yàn)證就是驗(yàn)證的程序是在客戶端執(zhí)行,即控件轉(zhuǎn)換成相關(guān)的HTML元素和一些JavaScript程序,例如RequiredFieldValidator控件轉(zhuǎn)換后會(huì)有許多JavaScript代碼。見實(shí)例:ValidationSample.aspx UsingRequired.aspx可通過(guò)在瀏覽器查看源代碼,觀察生成的JavaScript代碼。第十九頁(yè),共四十一頁(yè),2022年,8月28日2.服務(wù)器端驗(yàn)證過(guò)程服務(wù)器端的驗(yàn)證需要在服務(wù)器端編寫相關(guān)驗(yàn)證程序。有時(shí)除了控件本身的驗(yàn)證以外,還需要編寫一定的程序進(jìn)行數(shù)據(jù)的檢查,例如和數(shù)據(jù)庫(kù)內(nèi)容的匹配比較,檢查用戶名是否已注冊(cè)等。見第5章實(shí)例:DisableClientValidation.aspx注意:Page.IsValid是頁(yè)面的屬性,當(dāng)為tue時(shí),說(shuō)明客戶端控件合法,即驗(yàn)證控件驗(yàn)證通過(guò)。第二十頁(yè),共四十一頁(yè),2022年,8月28日3.常用驗(yàn)證屬性ControlToValidate:控件IDDisplay:錯(cuò)誤消息的顯示行為??赡艿闹凳牵篘one(不顯示驗(yàn)證消息),Static(占用固定的空間并顯示錯(cuò)誤消息),Dynamic(只有當(dāng)有錯(cuò)誤消息時(shí)分配空間并顯示消息).缺省值是Static.EnableClientScript:指示客戶端驗(yàn)證是否可用.缺省值是true.Enabled:驗(yàn)證控件是否可用ErrorMessage:驗(yàn)證失效,將要顯示在ValidationSummary控件中的錯(cuò)誤消息文本.ForeColor:驗(yàn)證實(shí)效,將要顯示錯(cuò)誤文本的顏色。缺省為Color.Red.IsValid:驗(yàn)證失效是否傳遞它的驗(yàn)證檢查,一般通過(guò)程序檢驗(yàn)時(shí)設(shè)置。SetFocusOnError:驗(yàn)證失敗,焦點(diǎn)是否移動(dòng)到相關(guān)控件。缺省為false.Text:驗(yàn)證失敗時(shí)顯示的錯(cuò)誤信息.ValidationGroup:指定驗(yàn)證控件所屬的驗(yàn)證組的名字.第二十一頁(yè),共四十一頁(yè),2022年,8月28日二、RequiredFieldValidator控件RequiredFieldValidator控件用于在Web窗體頁(yè)面上保證用戶非空輸入,即對(duì)必填數(shù)據(jù)項(xiàng)已輸入數(shù)據(jù)而不會(huì)跳過(guò)。相關(guān)屬性:ControlToValidate屬性:設(shè)置相關(guān)聯(lián)控件。Display屬性:設(shè)置顯示方式,默認(rèn)為Static,可設(shè)置為Dynamic以保證多個(gè)相關(guān)聯(lián)驗(yàn)證控件的顯示信息都能動(dòng)態(tài)地顯示相關(guān)信息(即位置不固定)。ErrorMessages屬性:顯示的提示信息!InitialValue屬性:初始值,如果輸入控件的值與該值匹配,則驗(yàn)證失敗。見實(shí)例:UsingRequired.aspx第二十二頁(yè),共四十一頁(yè),2022年,8月28日三、CompareValidator驗(yàn)證控件
比較兩個(gè)控件的輸入是否符合程序設(shè)定。同樣該控件也必須設(shè)置一個(gè)需要驗(yàn)證的控件與之關(guān)聯(lián)。如比較兩次輸入的口令是否一致。CompareValidator相關(guān)屬性ControlToValidate:需比較的控件之一。ControlToCompare:比較的控件之二(可省,使用屬性ValueToCompare)Operator:定義要執(zhí)行的比較類型。包括:EqualNotEqualGreaterThanGreaterThanEqualLessThanLessThanEqualDataTypeCheck檢查數(shù)據(jù)類型是否與Type屬性指定的類型一致。Type:分為String、Integer、Double、Date和Currency。ErrorMessage:設(shè)置當(dāng)驗(yàn)證失敗時(shí)出現(xiàn)的錯(cuò)誤信息。ValueToCompare:指定控件將要比較的常量見實(shí)例:UsingCompare.aspx第二十三頁(yè),共四十一頁(yè),2022年,8月28日四、RangeValidator驗(yàn)證控件用于計(jì)算輸入控件的值,以確定該值是否在指定的上限與下限之間。RangeValidator相關(guān)屬性ControlToValidate屬性:指定要驗(yàn)證的輸入控件。MinimumValue和MaximumValue屬性:分別指定有效范圍的最小值和最大值。Type屬性:用于指定要比較的值的數(shù)據(jù)類型。在執(zhí)行任何比較之前,先將要比較的值轉(zhuǎn)換為該數(shù)據(jù)類型。類型同前。見實(shí)例:UsingRange.aspx第二十四頁(yè),共四十一頁(yè),2022年,8月28日五、RegularExpressionValidator驗(yàn)證控件用于確定輸入控件的值是否與某個(gè)正則表達(dá)式所定義的模式相匹配。該驗(yàn)證類型允許檢查可預(yù)知的字符序列,如身份證號(hào)、電子郵件地址、電話號(hào)碼、郵政編碼等中的字符序列。RegularExpressionValidator相關(guān)屬性:屬性ValidationExpression指定用于驗(yàn)證輸入控件的正則表達(dá)式。正則表達(dá)式是一種語(yǔ)言,它可以明確描述文本字符串中的模式。通過(guò)特定的表達(dá)式語(yǔ)法規(guī)則驗(yàn)證表達(dá)式的合法性。例如:下面是正則表達(dá)式的一些示例
http(s)?://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?用于驗(yàn)證InternetURL\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*用于驗(yàn)證EMAL[a-zA-Z]{4,8}必須為英文字母,最少四個(gè)字符,最多八個(gè)字符
\d{6}6位的整型數(shù)據(jù)
ASP.NET關(guān)于正則表達(dá)式的說(shuō)明見P195。在有些網(wǎng)站提供相關(guān)資源。見實(shí)例:UsingRegExp.aspx第二十五頁(yè),共四十一頁(yè),2022年,8月28日使用正則表達(dá)式1.使用RegEx類有時(shí)需要在程序中使用正則表達(dá)式,通過(guò)程序來(lái)對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證。這就需要使用到RegEx類。RegEx類包含在命名空間。見教材實(shí)例:ScrapeHeadings.aspx注意:實(shí)例對(duì)于中文頁(yè)面將顯示亂碼,需要增加第二行的語(yǔ)句:WebClientclient=newWebClient();client.Encoding=Encoding.UTF8;stringcontent=client.DownloadString(txtUrl.Text);第二十六頁(yè),共四十一頁(yè),2022年,8月28日2.正則表達(dá)式和安全SQL注入攻擊是常見的一種服務(wù)器攻擊手段。利用網(wǎng)站合法的SQL語(yǔ)句進(jìn)行注入,以達(dá)到竊取數(shù)據(jù)的、控制服務(wù)器的目的。例如,認(rèn)證網(wǎng)頁(yè)中會(huì)有型如:
select*fromadminwhereusername='XXX'and password='YYY'
的語(yǔ)句,若在正式運(yùn)行此句之前,沒(méi)有進(jìn)行必要的字符過(guò)濾,則很容易實(shí)施SQL注入。如在用戶名文本框內(nèi)輸入: abc’or1=1
在密碼框內(nèi)輸入:123則SQL語(yǔ)句變成:
select*fromadminwhereusername='abc’or1=1andpassword='123’
不管用戶輸入任何用戶名與密碼,此語(yǔ)句永遠(yuǎn)都能正確執(zhí)行,用戶輕易騙過(guò)系統(tǒng),獲取合法身份。防止注入的有效方法是對(duì)用戶輸入的數(shù)據(jù)進(jìn)行驗(yàn)證,確保數(shù)據(jù)是合法的。第二十七頁(yè),共四十一頁(yè),2022年,8月28日看下面的示例<asp:TextBoxID="txtName"runat="server"></asp:TextBox><asp:RegularExpressionValidatorID="regName"runat="server"ControlToValidate="txtName"ValidationExpression="^[a-zA-Z'.\s]{1,50}"Text="Enteravalidname"/>
此處對(duì)輸入的數(shù)據(jù)做了要求,即匹配任何小寫字母大寫字母、單引號(hào)、逗點(diǎn)、空格,最少1個(gè),最多50個(gè)字符。第二十八頁(yè),共四十一頁(yè),2022年,8月28日也可以在程序中作出檢驗(yàn)stringsource=(string)Cookie["someValue"];RegExreg=newRegEx("^[a-zA-Z'.\s]{1,50}");if(!reg.IsMatch(source)){//Sometypeoferrorhandlingwouldgohere}第二十九頁(yè),共四十一頁(yè),2022年,8月28日六、CustomValidator控件自定義驗(yàn)證邏輯,需要?jiǎng)?chuàng)建一個(gè)服務(wù)器端驗(yàn)證函數(shù)用于執(zhí)行驗(yàn)證。如驗(yàn)證注冊(cè)用戶名在數(shù)據(jù)庫(kù)中是否已經(jīng)存在。用戶可以雙擊CustomValidator控件,也可以雙擊該控件的ServerValidate事件來(lái)完成自定義驗(yàn)證的代碼??聪旅娴氖纠?/p>
第三十頁(yè),共四十一頁(yè),2022年,8月28日下面這段代碼是用戶用于驗(yàn)證數(shù)據(jù)庫(kù)里的學(xué)生學(xué)號(hào)是否存在的函數(shù)。protectedvoidCustomValidator1_ServerValidate(objectsource,ServerValidateEventArgsargs){SqlConnectionconn=newSqlConnection("DataSource=LDB;InitialCatalog=Students;UserID=sa");conn.Open();intStuNO=args.Value;SqlCommandcmd=newSqlCommand("selectcount(*)fromstudentwherestuid="+StuNO,conn);intcount=Convert.ToInt32(cmd.ExecuteScalar());
if(count>0){args.IsValid=false;}else{args.IsValid=true;}}第三十一頁(yè),共四十一頁(yè),2022年,8月28日下面方法檢查用戶輸入的是否是一個(gè)有效的未來(lái)日期protectedvoidcustDate_ServerValidate(objectsource,ServerValidateEventArgsargs){ stringsEnteredDate=args.Value; DateTimedt; boolconvertSuccessful=DateTime.TryParse(sEnteredDate,outdt); if(convertSuccessful&&dt>=DateTime.Today) args.IsValid=true;//validdateelse args.IsValid=false;//notavaliddate}args對(duì)象包含兩個(gè)屬性,Value保存了將要驗(yàn)證控件的字符串,IsValid用來(lái)設(shè)置輸入是否有效。第三十二頁(yè),共四十一頁(yè),2022年,8月28日下面例子實(shí)現(xiàn)了對(duì)兩個(gè)文本框的驗(yàn)證。Enterusername:<br/><asp:TextBoxID="txtUser"runat="server"/><br/>Enteremail:<br/><asp:TextBoxID="txtEmail"runat="server"/><asp:CustomValidatorID="OrFieldValidator"runat="server"Text="Entereitherausernameoraemail"OnServerValidate="OrFieldValidator_ServerValidate"/>上面兩個(gè)文本框只用了一個(gè)驗(yàn)證控件,下面是驗(yàn)證控件的事件處理程序:protectedvoidOrFieldValidator_ServerValidate(objectsource,ServerValidateEventArgsargs){if(txtUser.Text.Length<=0&&txtEmail.Text.Length<=0)args.IsValid=false;elseargs.IsValid=true;}第三十三頁(yè),共四十一頁(yè),2022年,8月28日自定義客戶端驗(yàn)證可通過(guò)設(shè)置控件的ClientValidationFunction屬性使驗(yàn)證在客戶端進(jìn)行。例如<asp:CustomValidatorID="OrFieldValidator"runat="server"Text="Entereitherausernameoraemail"
ClientValidationFunction="validateOrFields"OnServerValidate="OrFieldValidator_ServerValidate"/>此處既有服務(wù)器端驗(yàn)證,也增加了客戶端驗(yàn)證??蛻舳蓑?yàn)證不需要回傳,效率更高。第三十四頁(yè),共四十一頁(yè),2022年,8月28日使用客戶端驗(yàn)證需要定義客戶端驗(yàn)證函數(shù),并保證函數(shù)的簽名如下:
functionname(source,args)例如<scripttype="text/javascript">functionvalidateOrFields(source,args){varsUser=document.form1.<%=txtUser.ClientID%>.value;varsEmail=document.form1.<%=txtEmail.ClientID%>.value;
if(sUser==""&&sEmail==""){args.IsValid=false;}else
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務(wù)中包合同范本
- 課題立項(xiàng)申報(bào)書查重率
- 代理英文合同范本
- 加快老舊農(nóng)機(jī)更新?lián)Q代的實(shí)施方案
- 代寫招標(biāo)文件合同范例
- 合同范本買賣協(xié)議書
- 雙方合作店鋪合同范本
- 咨詢顧問(wèn)合同范本 英文縮寫
- 保安兼職合同范本
- 倉(cāng)庫(kù)代發(fā)服務(wù)合同范本
- 硬化性肺泡細(xì)胞瘤-課件
- 裕興新概念英語(yǔ)第二冊(cè)筆記第42課
- 簡(jiǎn)明新疆地方史趙陽(yáng)
- 狹窄性腱鞘炎中醫(yī)臨床路徑及表單
- Q∕SY 19001-2017 風(fēng)險(xiǎn)分類分級(jí)規(guī)范
- 智慧消防綜合解決方案
- 市場(chǎng)營(yíng)銷組合策略及營(yíng)銷戰(zhàn)略課件
- 信息技術(shù)基礎(chǔ)ppt課件(完整版)
- DGJ 08-70-2021 建筑物、構(gòu)筑物拆除技術(shù)標(biāo)準(zhǔn)
- 2022年義務(wù)教育語(yǔ)文課程標(biāo)準(zhǔn)(2022版)解讀【新課標(biāo)背景下的初中名著閱讀教學(xué)質(zhì)量提升思考】
- 屋面網(wǎng)架結(jié)構(gòu)液壓提升施工方案(50頁(yè))
評(píng)論
0/150
提交評(píng)論