版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
重慶正大軟件學(xué)院軟件系《MVC框架程序設(shè)計(jì)》電子教案重慶正大軟件學(xué)院軟件系《MVC框架程序設(shè)計(jì)》課程組重慶正大軟件職業(yè)技術(shù)學(xué)院教案(項(xiàng)目類)授課對(duì)象系別軟件系本次課學(xué)時(shí)4學(xué)時(shí)年級(jí)班次大二章節(jié)題目第1章struts框架驗(yàn)證目的要求(含技能要求)理解服務(wù)端校驗(yàn)與客戶端校驗(yàn)的區(qū)別理解Struts2的校驗(yàn)器掌握struts2驗(yàn)證配置文件的常用配置本節(jié)重點(diǎn)掌握struts2驗(yàn)證配置文件的常用配置本節(jié)難點(diǎn)理解Struts2的校驗(yàn)器教學(xué)方法項(xiàng)目教學(xué)法教學(xué)用具機(jī)房、屏幕廣播問題引入通過用戶登錄案例,從而引出本次課程。難點(diǎn)與重點(diǎn)講解方法引導(dǎo)、分析、講解、實(shí)作演示本次課小結(jié)課程小結(jié)Struts配置文件里邊存放了程序運(yùn)行中的相關(guān)參數(shù),最重要的參數(shù)就是程序的運(yùn)行流程,struts配置文件的產(chǎn)生,一定程度上減少了程序的耦合度,增加了程序的可維護(hù)性。教后禮記討論、思考題、作業(yè)(含實(shí)訓(xùn)作業(yè))完成本次課的課堂任務(wù)填寫實(shí)驗(yàn)報(bào)告任務(wù)介紹(5分鐘)使用struts2的驗(yàn)證框架實(shí)現(xiàn)注冊(cè)功能的輸入驗(yàn)證:1.會(huì)員登陸名不能為空,且長度在6到18位之間;2.密碼不能為空,且6到12位、只能為字母和數(shù)字;3.確認(rèn)密碼不能空,且與輸入密碼要匹配;4.年齡只能在1到150歲之間;5.生日日期只能在1900-01-01與2050-01-01之間;6.電子郵箱地址合法。如圖1.4-1、1.4-2、1.4-3:圖1.4-1驗(yàn)證字段是否為空?qǐng)D1.4-2驗(yàn)證字段范圍和郵箱的合法性圖1.4-3兩次密碼輸入不相等任務(wù)解析(50-60分鐘)前臺(tái)頁面加入錯(cuò)誤提示標(biāo)簽因?yàn)闆]有去修改struts2的主題,本實(shí)例仍使用默認(rèn)主題,所以該步驟省略。后臺(tái)action繼承ActionSupport使用戶注冊(cè)Action類繼承ActionSupport類,并導(dǎo)入該類對(duì)應(yīng)的包路徑。如下所示:importcom.opensymphony.xwork2.ActionSupport; ……publicclassRegisterActionextendsActionSupport{ ……}增加校驗(yàn)配置文件首先,在與RegisterAction類相同包下新建校驗(yàn)配置文件RegisterAction-validtion.xml。然后,在xwork-core-2.x.x.jar里找到xwork-validator-1.x.x.dtd文件并打開,復(fù)制下面代碼到RegisterAction-validtion.xml文件的最上部。<!DOCTYPEvalidatorsPUBLIC"-//OpenSymphonyGroup//XWorkValidator1.0.3//EN""/xwork/xwork-validator-1.0.3.dtd"><validators></validators>最后,在文件的<validators>與</validators>之間加入各個(gè)表單輸入項(xiàng)的驗(yàn)證規(guī)則,表單的輸入項(xiàng)包括會(huì)員登錄名、密碼、確認(rèn)密碼、年齡、生日及郵件地址。參考代碼如下所示:<!--會(huì)員登錄名驗(yàn)證--> <fieldname="name"> <!--會(huì)員登錄名必須輸入驗(yàn)證--> <field-validatortype="requiredstring"> <paramname="trim">true</param> <message>請(qǐng)輸入會(huì)員登陸名</message> </field-validator> <!--會(huì)員登錄名長度驗(yàn)證--> <field-validatortype="stringlength"> <paramname="minLength">6</param> <paramname="maxLength">18</param> <message>會(huì)員登陸名必須在${minLength}~${maxLength}位之間</message> </field-validator> </field> <!--密碼驗(yàn)證--> <fieldname="pass"> <!--密碼必須輸入驗(yàn)證--> <field-validatortype="requiredstring"> <paramname="trim">true</param> <message>請(qǐng)輸入密碼</message> </field-validator> <!--正則表達(dá)式驗(yàn)證密碼長度和類型--> <field-validatortype="regex"> <paramname="expression"><![CDATA[\w{6,12}]]></param> <message>密碼必須在6~12位之間且只能為字母和數(shù)字</message> </field-validator> </field> <!--確認(rèn)密碼驗(yàn)證--> <fieldname="repass"> <!--確認(rèn)密碼必須輸入驗(yàn)證--> <field-validatortype="requiredstring"> <paramname="trim">true</param> <message>請(qǐng)輸入確認(rèn)密碼</message> </field-validator> <!--字段表達(dá)式驗(yàn)證確認(rèn)密碼和密碼是否相等--> <field-validatortype="fieldexpression"> <paramname="expression"><![CDATA[pass==repass]]></param> <message>兩次密碼不相等</message> </field-validator> </field> <!--年齡范圍驗(yàn)證--> <fieldname="age"> <field-validatortype="int"> <paramname="min">1</param> <paramname="max">150</param> <message>年齡必須在${min}到${max}歲之間</message> </field-validator> </field> <!--生日日期驗(yàn)證--> <fieldname="birth"> <field-validatortype="date"> <paramname="min">1900-01-01</param> <paramname="max">2050-01-01</param> <message>生日日期必須在${min}到${max}之間</message> </field-validator> </field> <!--電子郵件地址驗(yàn)證--> <fieldname="email"> <field-validatortype="email"> <message>電子郵件地址輸入不合法。</message> </field-validator> </field>在struts.xml配置文件中配置錯(cuò)誤返回頁面地址在struts.xml文件,找到用戶注冊(cè)action的配置部分,添加一個(gè)名為input的result邏輯視圖結(jié)果,并指向注冊(cè)頁面,即發(fā)生校驗(yàn)錯(cuò)誤時(shí)返回的頁面: <actionname=“register” class="com.zdsoft.action.RegisterAction"method="regist"> <resultname="success">/result.jsp</result> <!--此處增加input結(jié)果--> <resultname="input">/regist.jsp</result> </action>通過實(shí)施以上步驟,完成整個(gè)輸入校驗(yàn)框架的配置,運(yùn)行該struts2校驗(yàn)實(shí)例。struts2應(yīng)用在運(yùn)行時(shí)會(huì)自動(dòng)加載action相對(duì)應(yīng)的校驗(yàn)規(guī)則文件,當(dāng)用戶提交請(qǐng)求action時(shí),struts2的校驗(yàn)框架會(huì)根據(jù)該校驗(yàn)規(guī)則文件對(duì)用戶請(qǐng)求進(jìn)行校驗(yàn)。如果用戶的輸入不滿足校驗(yàn)規(guī)則,將看到之前圖1.4-1,1.4-2,1.4-3所示的界面,提示用戶只有再次輸入符合校驗(yàn)規(guī)則的數(shù)據(jù),才能成功完成用戶注冊(cè)操作。根據(jù)任務(wù)提出問題(45-55分鐘)輸入校驗(yàn)是什么,它的作用是什么?輸入校驗(yàn)的種類有哪些,各自的特點(diǎn)又是什么?struts的驗(yàn)證框架該如何使用?問題解析(45-55分鐘)輸入校驗(yàn)是什么,它的作用是什么?對(duì)于一個(gè)Web應(yīng)用而言,所有的用戶數(shù)據(jù)都是通過瀏覽器收集的,用戶的輸入信息是非常復(fù)雜的:用戶操作不熟練,輸入出錯(cuò),硬件設(shè)備的不正常,網(wǎng)絡(luò)傳輸?shù)牟环€(wěn)定,另外加上Web應(yīng)用的開放性,網(wǎng)絡(luò)上所有的瀏覽者都可以自由使用該應(yīng)用,因此該應(yīng)用通過輸入頁面收集的數(shù)據(jù)是非常復(fù)雜的,不僅會(huì)包含正常用戶的誤輸入,還可能包含惡意輸入。這些都有可能導(dǎo)致系統(tǒng)異常。異常的輸入,輕則導(dǎo)致系統(tǒng)非正常中斷,重則導(dǎo)致系統(tǒng)崩潰。應(yīng)用程序必須能正常處理表現(xiàn)層接受的異常數(shù)據(jù),通常的做法是遇到異常輸入時(shí)應(yīng)用程序直接返回,提示瀏覽者必須重新輸入,也就是將那些異常輸入過濾掉。對(duì)異常輸入的過濾,這就是輸入校驗(yàn),也稱為數(shù)據(jù)校驗(yàn)。由此看來,輸入校驗(yàn)的作用其實(shí)就將非法輸入阻止在應(yīng)用之外,防止那些非法輸入進(jìn)入系統(tǒng),保證系統(tǒng)的安全穩(wěn)定性。輸入校驗(yàn)的種類有哪些,各自特點(diǎn)是什么?根據(jù)數(shù)據(jù)校驗(yàn)的處理場(chǎng)所的不同,可以將輸入校驗(yàn)分為客戶端校驗(yàn)和服務(wù)器端校驗(yàn)兩種??蛻舳诵r?yàn)顧名思義就是將輸入校驗(yàn)放在客戶端處理,主要是過濾正常用戶的誤操作,一般是通過JavaScript代碼在客戶端的瀏覽器中處理完成;而服務(wù)器端校驗(yàn)是將輸入校驗(yàn)放在客戶端,是整個(gè)應(yīng)用阻止非法數(shù)據(jù)的最后防線,主要通過編程方式實(shí)現(xiàn)。以上兩種校驗(yàn)的區(qū)別在于,客戶端校驗(yàn)是將校驗(yàn)放在了客戶端,相當(dāng)于減輕了服務(wù)器處理輸入校驗(yàn)的壓力,提高了系統(tǒng)性能,而服務(wù)器端校驗(yàn)是將校驗(yàn)放在應(yīng)用服務(wù)器端,雖然安全性高,但是過多的服務(wù)器端校驗(yàn)會(huì)加重應(yīng)用服務(wù)器的負(fù)荷,從而降低系統(tǒng)性能。所以,一般的系統(tǒng)會(huì)根據(jù)各個(gè)模塊不同的安全級(jí)別,綜合使用客戶端校驗(yàn)和服務(wù)器端校驗(yàn)兩種方式,以達(dá)到性能和安全兼顧的目的。注:本章著重服務(wù)器端校驗(yàn),客戶端校驗(yàn)略。struts的驗(yàn)證框架該如何使用?輸入校驗(yàn)是表現(xiàn)層數(shù)據(jù)處理的一種,因此往往會(huì)被MVC框架所提供。Struts2框架提供了非常強(qiáng)大的輸入校驗(yàn)體系,通過Struts2的內(nèi)建的輸入校驗(yàn)器,Struts2應(yīng)用無需書寫任何java代碼,即可完成絕大部分輸入校驗(yàn)。驗(yàn)證框架的使用分以下4個(gè)步驟:前臺(tái)頁面加入錯(cuò)誤提示標(biāo)簽在前臺(tái)jsp頁面中添加錯(cuò)誤提示標(biāo)簽,以便在發(fā)生校驗(yàn)錯(cuò)誤時(shí),頁面能顯示校驗(yàn)錯(cuò)誤信息,方便用戶根據(jù)提示重新輸入正確的數(shù)據(jù)。如果未更改過struts2的主題,該步驟可以省略,因?yàn)槟J(rèn)的struts2主題會(huì)為每個(gè)表單標(biāo)簽生成一個(gè)對(duì)應(yīng)的錯(cuò)誤提示標(biāo)簽。注:什么是struts2主題?struts2所有的UI標(biāo)簽都是基于主題和模板的,主題和模板是Struts2所有UI標(biāo)簽的核心。模板是一個(gè)UI標(biāo)簽的外在表示形式。如果為所有的UI標(biāo)簽都提供了對(duì)應(yīng)的模板,那么這系列的模板就形成了一個(gè)主題。struts2主題默認(rèn)具備自動(dòng)排版及添加信息提示標(biāo)簽等功能,例如之前的注冊(cè)頁面中,在默認(rèn)主題下會(huì)被自動(dòng)添加<tr>、<td>等表格元素。在實(shí)際的項(xiàng)目開發(fā)中,因?yàn)槟J(rèn)主題有它獨(dú)特的一套頁面模板,不一定適合實(shí)際項(xiàng)目的要求,往往會(huì)把主題設(shè)置為simple(簡單)主題,即不再使用任何模板,由開發(fā)人員自己控制表單的樣式。一般在struts.xml配置文件中設(shè)置如下配置,將默認(rèn)主題修改為簡單主題:<struts> <constantname="struts.ui.theme"value="simple"></constant> ……</struts>一旦不再使用struts2默認(rèn)主題,struts2便不會(huì)為每個(gè)表單標(biāo)簽自動(dòng)生成對(duì)應(yīng)的錯(cuò)誤提示標(biāo)簽。此時(shí)就必須在頁面顯式地寫出錯(cuò)誤提示標(biāo)簽。比如將其布局在表單標(biāo)簽上部,示例代碼如下所示:<s:fielderror/><s:formaction=“register”> ……</s:form>后臺(tái)action繼承ActionSupport類使待校驗(yàn)頁面對(duì)應(yīng)的后臺(tái)Action類需去繼承ActionSupport類。該類是一個(gè)工具類,它幫我們提供了數(shù)據(jù)校驗(yàn)、信息資源國際化等功能。通過繼承該ActionSupport類,可以簡化Action類的開發(fā)。增加校驗(yàn)配置文件在項(xiàng)目中增加一個(gè)校驗(yàn)配置文件,校驗(yàn)配置文件通過使用Struts2已有的內(nèi)建校驗(yàn)器,完成對(duì)表單的校驗(yàn)。該文件的命名應(yīng)該遵守以下兩條規(guī)范:①命名規(guī)范:ActionName-validation.xml:其中ActionName就是需要校驗(yàn)的Action的類名。例如,有一個(gè)RegisterAction的action,對(duì)應(yīng)的校驗(yàn)配置文件就應(yīng)該命名為“RegisterAction-validation.xml”。②位置規(guī)范:該文件應(yīng)該與Action類的文件位于同一個(gè)路徑下。注:struts2還支持一種通過代碼實(shí)現(xiàn)的校驗(yàn)方式,其實(shí)現(xiàn)方式是在待驗(yàn)證Action類中,添加一個(gè)validate()方法,在該方法中完成校驗(yàn)判斷后,添加addFieldError()等方法往校驗(yàn)框架保存校驗(yàn)錯(cuò)誤信息,最終同樣通過頁面的錯(cuò)誤顯示標(biāo)簽輸出相關(guān)錯(cuò)誤信息,雖然可以達(dá)到與校驗(yàn)配置文件一樣的校驗(yàn)?zāi)康?,但因其重用性及可維護(hù)性不高,一般不提倡使用,除非遇到通過內(nèi)建校驗(yàn)器很難實(shí)現(xiàn)的校驗(yàn)外。配置文件的編輯,首先需要在校驗(yàn)配置文件的最上部聲明對(duì)應(yīng)的文檔標(biāo)簽定義文件,即dtd文件,它是用于限制xml文件格式的文件,引入它是為了讓開發(fā)人員能在限定的規(guī)則下正確地配置該xml文件。聲明dtd部分代碼如下所示:<!DOCTYPEvalidatorsPUBLIC"-//OpenSymphonyGroup//XWorkValidator1.0.3//EN""/xwork/xwork-validator-1.0.3.dtd">接下來,配置具體每一個(gè)待校驗(yàn)項(xiàng)的校驗(yàn)規(guī)則。首先先詳細(xì)介紹“會(huì)員登陸名”文本框的校驗(yàn)規(guī)則的配置,其校驗(yàn)要求為:不能為空且長度必須在6到18位之間。示范代碼如下所示:<fieldname="name"> <!--會(huì)員登錄名必須輸入驗(yàn)證--> <field-validatortype="requiredstring"> <paramname="trim">true</param> <message>請(qǐng)輸入會(huì)員登陸名</message> </field-validator> <!--會(huì)員登錄名長度驗(yàn)證--> <field-validatortype="stringlength"> <paramname="minLength">6</param> <paramname="maxLength">18</param> <message>會(huì)員登陸名必須在${minLength}~${maxLength}位之間</message> </field-validator> </field>現(xiàn)逐條解析以上配置代碼:filed節(jié)點(diǎn):name屬性是聲明頁面中待校驗(yàn)項(xiàng)的名稱,即與jsp頁面中的表單項(xiàng)的name屬性一致。<s:textfieldname="name"label="*會(huì)員登陸名"></s:textfield>field-validator節(jié)點(diǎn):type屬性是指使用的校驗(yàn)器類型,在struts2框架中其實(shí)已為開發(fā)人員提供了大量的實(shí)現(xiàn)常見校驗(yàn)需求的校驗(yàn)器,如requiredstring為“必須輸入”,stringlength為“字符長度限制”等,更多常用內(nèi)建校驗(yàn)器如表1.4-1所示。表1.4-1常用內(nèi)建校驗(yàn)器列表名稱功能required校驗(yàn)指定字段是否為空requiredstring校驗(yàn)指定字符串字段非空int校驗(yàn)指定整數(shù)字段是否在一個(gè)范圍內(nèi)date校驗(yàn)指定的日期是否在一個(gè)范圍內(nèi)expression校驗(yàn)指定的表達(dá)式是否為真fieldexpression校驗(yàn)指定OGNL表達(dá)式字段email校驗(yàn)一個(gè)指定的字符字段如果非空是否是一個(gè)合法郵箱地址url校驗(yàn)一個(gè)指定的字段是否是字符串并且合法visitor將當(dāng)前校驗(yàn)推送到另一相關(guān)校驗(yàn)conversion校驗(yàn)指定字段是否發(fā)生轉(zhuǎn)換錯(cuò)誤stringlength校驗(yàn)指定字段是否發(fā)生轉(zhuǎn)換錯(cuò)誤reqex校驗(yàn)指定使用正規(guī)表達(dá)式的字符字段具體規(guī)則在xwork-core-2.x.x.jar包的com.opensymphoy.xwork2.validator.validators路徑下找到default.xml文件并打開,里面是所有的內(nèi)建校驗(yàn)器的定義。param節(jié)點(diǎn):為當(dāng)前使用校驗(yàn)器傳遞參數(shù),以實(shí)現(xiàn)更加靈活的校驗(yàn)配置,例如上例中的requiredstring校驗(yàn)器中,可以使用trim參數(shù),表示校驗(yàn)前是否去除掉輸入的字符串的左右空格,其值可以使用true和false,如果設(shè)置為true,那么校驗(yàn)前會(huì)去掉輸入字符串的前后空格。stringlength校驗(yàn)器中,可以使用minLength及maxLength兩個(gè)參數(shù),表示所允許的最大和最小字符長度。message節(jié)點(diǎn):為11發(fā)生校驗(yàn)錯(cuò)誤時(shí)頁面顯示的校驗(yàn)錯(cuò)誤提示信息。在錯(cuò)誤提示信息中,可以通過${}表達(dá)式引用校驗(yàn)器中的變量屬性,構(gòu)成動(dòng)態(tài)的錯(cuò)誤提示信息,如上例${minLength}和${maxLength}便動(dòng)態(tài)引用了參數(shù)中的最小最大長度屬性。在已經(jīng)了解校驗(yàn)規(guī)則各個(gè)節(jié)點(diǎn)的配置后,接下來通過完成本章實(shí)例其他校驗(yàn)任務(wù)的方式來熟悉其他常用校驗(yàn)器的使用方法。密碼驗(yàn)證:密碼不能為空,且6到12位、只能為字母和數(shù)字,示例代碼如下: <fieldname="pass"> <!--密碼必須輸入驗(yàn)證--> <field-validatortype="requiredstring"> <paramname="trim">true</param> <message>請(qǐng)輸入密碼</message> </field-validator> <!--正則表達(dá)式驗(yàn)證密碼長度和類型--> <field-validatortype="regex"> <paramname="expression"><![CDATA[\w{6,12}]]></param> <message>密碼必須在6~12位之間且只能為字母和數(shù)字</message> </field-validator> </field>備注:其中requiredstring非空校驗(yàn)器已講述,不再累述。reqex校驗(yàn)器:校驗(yàn)指定使用正規(guī)表達(dá)式的字符字段,其expression參數(shù)的值是一個(gè)正則表達(dá)式。通過正則表達(dá)式校驗(yàn)器,可以讓校驗(yàn)器判斷用戶輸入的字符串是否匹配已編寫好的正則表達(dá)式,如果匹配即意味校驗(yàn)通過,反之不匹配即意味校驗(yàn)失敗。例中的(\w{6,12})即表示由字母或數(shù)字組成的且長度為6到12的字符串。注:正則表達(dá)式(regularexpression)是指一個(gè)用來描述或者匹配一系列符合某個(gè)句法規(guī)則的字符串的單個(gè)字符串。它描述了一種字符串匹配的模式,往往被用來檢查一個(gè)串是否含有某種子串、將匹配的子串做替換或者從某個(gè)串中取出符合某個(gè)條件的子串。正則表達(dá)式的用法比較復(fù)雜,此處不做詳細(xì)說明。正則表達(dá)式需被作為CDATA部分被放入[CDATA[]]>中,于是寫為<![CDATA[\w{6,12}]]>。注:在各種表達(dá)式加入XML文件中時(shí),為避免表達(dá)式內(nèi)容被識(shí)別為XML的格式,往往會(huì)將表達(dá)式作為CDATA,CDATA指的是不應(yīng)由XML解析器進(jìn)行解析的文本數(shù)據(jù)(UnparsedCharacterData),CDATA部分由"<![CDATA["開始,由"]]>"結(jié)束。確認(rèn)密碼驗(yàn)證:確認(rèn)密碼不能空,且與輸入密碼要匹配,示例代碼如下: <!--確認(rèn)密碼驗(yàn)證--> <fieldname="repass"> <!--確認(rèn)密碼必須輸入驗(yàn)證--> <field-validatortype="requiredstring"> <paramname="trim">true</param> <message>請(qǐng)輸入確認(rèn)密碼</message> </field-validator> <!--字段表達(dá)式驗(yàn)證確認(rèn)密碼和密碼是否相等--> <field-validatortype="fieldexpression"> <paramname="expression"><![CDATA[pass==repass]]></param> <message>兩次密碼不相等</message> </field-validator> </field>其中requiredstring非空校驗(yàn)器已講述,不再累述。fieldexpression校驗(yàn)器:實(shí)現(xiàn)對(duì)指定OGNL表達(dá)式字段的校驗(yàn),其expression參數(shù)的值為指定需判斷的OGNL表達(dá)式(OGNL的基本概念請(qǐng)參閱第3章),pass==repass表達(dá)式便是判斷確認(rèn)密碼和密碼的是否相等的表達(dá)式,通正則表達(dá)式一樣,OGNL表達(dá)式也需被作為CDATA部分被放入[CDATA[]]>中,于是寫為<![CDATA[pass==repass]]>。年齡驗(yàn)證:年齡只能在1到150歲之間,示例代碼如下:<!--年齡范圍驗(yàn)證--><fieldname="age"><field-validatortype="int"> <paramname="min">1</param> <paramname="max">150</param> <message>年齡必須在${min}到${max}歲之間</message></field-validator></field>int校驗(yàn)器:實(shí)現(xiàn)對(duì)整數(shù)的校驗(yàn),其min和max參數(shù),分別代表該整數(shù)所允許的最小值和最大值,同時(shí)在錯(cuò)誤提示信息中可以使用${}符號(hào),完成類似之前stringlength校驗(yàn)器所提到的動(dòng)態(tài)引用參數(shù),構(gòu)成動(dòng)態(tài)的錯(cuò)誤信息提示。生日驗(yàn)證:生日日期只能
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年江蘇省鹽城市聯(lián)盟校高一下學(xué)期第二次階段性考試歷史試題(解析版)
- 2026年經(jīng)濟(jì)類考研綜合模擬考試題目
- 2026年環(huán)保產(chǎn)業(yè)發(fā)展與碳中和認(rèn)證考試題庫
- 2026年網(wǎng)絡(luò)安全法規(guī)與政策預(yù)測(cè)模擬題
- 2026年現(xiàn)代物流業(yè)運(yùn)營模式與技術(shù)創(chuàng)新考試
- 2026年網(wǎng)絡(luò)通信安全研究方法及安全防護(hù)試題庫
- 2026年應(yīng)屆畢業(yè)生軟件測(cè)試筆試題目
- 2026年護(hù)理操作技能等級(jí)考試操作流程規(guī)范安全防范訓(xùn)練手冊(cè)
- 2026年航空航天材料選擇成本分析知識(shí)測(cè)試
- 2026年金融投資知識(shí)初級(jí)測(cè)試題
- 研一上年終總結(jié)組會(huì)
- DB51∕T 1492-2022 農(nóng)區(qū)畜禽養(yǎng)殖負(fù)荷風(fēng)險(xiǎn)評(píng)估技術(shù)規(guī)程
- 2025年農(nóng)業(yè)供應(yīng)鏈金融解決方案可行性分析報(bào)告
- 支氣管哮喘急性發(fā)作期護(hù)理查房
- 高級(jí)消防設(shè)施操作員試題及答案-3
- 反三違安全知識(shí)培訓(xùn)課件
- 柴油發(fā)電機(jī)組原理課件
- 2025年國家公務(wù)員考試申論試題(行政執(zhí)法卷)及參考答案
- 2025年住院醫(yī)師規(guī)培-廣西-廣西住院醫(yī)師規(guī)培(骨科)歷年參考題庫含答案解析(5卷套題【單選100題】)
- 醫(yī)院收費(fèi)員個(gè)人年終總結(jié)范文(2篇)
- 低空經(jīng)濟(jì)發(fā)展白皮書-深圳方案
評(píng)論
0/150
提交評(píng)論