筆試題之框架與新技術(shù)部分_第1頁
筆試題之框架與新技術(shù)部分_第2頁
筆試題之框架與新技術(shù)部分_第3頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、筆試題之框架與新技術(shù)部分答 :1. struts 是一個(gè)按 MVC 模式設(shè)計(jì)的 Web 層框架,其實(shí)它就是一個(gè)大大的 servlet ,這個(gè) Servlet 名為 ActionServlet ,或是ActionServlet 的子類。我們可以在 web.xml 文件中將符合某種特征的所有請(qǐng)求交給這個(gè) Servlet 處理,這個(gè) Servlet 再參照一個(gè)配置文件(通常為 /WEB-INF/struts-config.xml)將各個(gè)請(qǐng)求分別分配給不同的 action去處理。一個(gè)擴(kuò)展知識(shí)點(diǎn): struts 的配置文件可以有多個(gè), 可以按模塊配置各自的配置文件,這樣可以防止配置文件的過度膨脹;2.

2、ActionServlet 把請(qǐng)求交給 action 去處理之前,會(huì)將請(qǐng)求參數(shù)封裝成一個(gè) formbean 對(duì)象(就是一個(gè) java 類,這個(gè)類中的每個(gè)屬性對(duì)應(yīng)一個(gè)請(qǐng)求參數(shù)),封裝成一個(gè)什么樣的 formbean 對(duì)象呢 看配置文件。3. 要說明的是, ActionServlet把 formbean對(duì)象傳遞給 action的 execute 方法之前,可能會(huì)調(diào)用formbean的 validate方法進(jìn)行校驗(yàn),只有校驗(yàn)通過后才將這個(gè) formbean 對(duì)象傳遞給 action 的 execute 方法,否則,它將返回一個(gè)錯(cuò)誤頁面, 這個(gè)錯(cuò)誤頁面由 input 屬性指定,(看配置文件)作者為什么

3、將這里命名為 input 屬性,而不是 error 屬性,我們后面結(jié)合實(shí)際的運(yùn)行效果進(jìn)行分析。14.action執(zhí)行完后要返回顯示的結(jié)果視圖, 這個(gè)結(jié)果視圖是用一個(gè)ActionForward對(duì)象 來 表 示 的, actionforward對(duì) 象通 過struts-config.xml配置文件中的配置關(guān)聯(lián)到某個(gè)jsp 頁面,因?yàn)槌绦蛑惺褂玫氖窃趕truts-config.xml配置文件為 jsp 頁面設(shè)置的邏輯名,這樣可以實(shí)現(xiàn)action程序代碼與返回的jsp 頁面名稱的解耦。你對(duì) struts可能還有自己的應(yīng)用方面的經(jīng)驗(yàn),那也要一并說出來。談?wù)勀銓?duì) Hibernate的理解。答 :1. 面向

4、對(duì)象設(shè)計(jì)的軟件內(nèi)部運(yùn)行過程可以理解成就是在不斷創(chuàng)建各種新對(duì)象、 建立對(duì)象之間的關(guān)系, 調(diào)用對(duì)象的方法來改變各個(gè)對(duì)象的狀態(tài)和對(duì)象消亡的過程, 不管程序運(yùn)行的過程和操作怎么樣, 本質(zhì)上都是要得到一個(gè)結(jié)果, 程序上一個(gè)時(shí)刻和下一個(gè)時(shí)刻的運(yùn)行結(jié)果的差異就表現(xiàn)在內(nèi)存中的對(duì)象狀態(tài)發(fā)生了變化。2. 為了在關(guān)機(jī)和內(nèi)存空間不夠的狀況下,保持程序的運(yùn)行狀態(tài),需要將內(nèi)存中的對(duì)象狀態(tài)保存到持久化設(shè)備和從持久化設(shè)備中恢復(fù)出對(duì)象的狀態(tài), 通常都是保存到關(guān)系數(shù)據(jù)庫來保存大量對(duì)象信息。從Java 程序的運(yùn)行功能上來講,保存對(duì)象狀態(tài)的功能相比系統(tǒng)運(yùn)行的其他功能來說,應(yīng)該是一個(gè)很不起眼的附屬功能,java 采用 jdbc 來實(shí)現(xiàn)

5、這個(gè)功能, 這個(gè)不起眼的功能卻要編寫大量的代碼,而做的事情僅僅是保存對(duì)象和恢復(fù)對(duì)象,并且那些大量的jdbc 代碼并沒有什么技術(shù)含量,基本上是采用一套例行公事的標(biāo)準(zhǔn)代碼模板來編寫,是一2種苦活和重復(fù)性的工作。3. 通過數(shù)據(jù)庫保存 java 程序運(yùn)行時(shí)產(chǎn)生的對(duì)象和恢復(fù)對(duì)象,其實(shí)就是實(shí)現(xiàn)了 java 對(duì)象與關(guān)系數(shù)據(jù)庫記錄的映射關(guān)系,稱為 ORM(即 Object Relation Mapping),人們可以通過封裝JDBC 代碼來實(shí)現(xiàn)了這種功能, 封裝出來的產(chǎn)品稱之為ORM 框架,Hibernate就是其中的一種流行ORM 框架。使用 Hibernate框架,不用寫 JDBC代碼,僅僅是調(diào)用一個(gè)sa

6、ve 方法,就可以將對(duì)象保存到關(guān)系數(shù)據(jù)庫中,僅僅是調(diào)用一個(gè)get 方法,就可以從數(shù)據(jù)庫中加載出一個(gè)對(duì)象。4. 使用 Hibernate的基本流程是:配置Configuration對(duì)象、產(chǎn)生 SessionFactory 、創(chuàng)建 session 對(duì)象,啟動(dòng)事務(wù),完成CRUD操作,提交事務(wù),關(guān)閉session 。5. 使用 Hibernate時(shí),先要配置 文件,其中配置數(shù)據(jù)庫連接信息和方言等,還要為每個(gè)實(shí)體配置相應(yīng)的hbm.xml文件,文件中需要登記每個(gè)hbm.xml文件。6. 在應(yīng)用 Hibernate 時(shí),重點(diǎn)要了解 Session 的緩存原理,級(jí)聯(lián),延遲加載和 hql 查詢。AOP 的作用。

7、你對(duì) Spring 的理解。1.Spring實(shí)現(xiàn)了工廠模式的工廠類(在這里有必要解釋清楚什么是工廠模式),這個(gè)類名為 BeanFactory (實(shí)際上是一個(gè)接口),在程序中通常BeanFactory的子類 ApplicationContext。Spring相3當(dāng)于一個(gè)大的工廠類, 在其配置文件中通過元素配置用于創(chuàng)建實(shí)例對(duì)象的類名和實(shí)例對(duì)象的屬性。2. Spring 提供了對(duì) IOC 良好支持, IOC 是一種編程思想,是一種架構(gòu)藝術(shù),利用這種思想可以很好地實(shí)現(xiàn)模塊之間的解耦。 IOC 也稱為 DI(Depency Injection),什么叫依賴注入呢譬如, Class ProgrammerC

8、omputer computer = null;public void code()/Computer computer = new IBMComputer(); /Computer computer = beanfacotry.getComputer(); computer.write();public void setComputer(Computer computer)puter = computer;另外兩種方式都由依賴, 第一個(gè)直接依賴于目標(biāo)類, 第二個(gè)把依賴轉(zhuǎn)移到工廠上,第三個(gè)徹底與目標(biāo)和工廠解耦了。在spring的配置文件中配置片段如下:43. Spring 提供了對(duì) AOP 技

9、術(shù)的良好封裝, AOP 稱為面向切面編程,就是系統(tǒng)中有很多各不相干的類的方法, 在這些眾多方法中要加入某種系統(tǒng)功能的代碼,例如,加入日志,加入權(quán)限判斷,加入異常處理,這種應(yīng)用稱為 AOP 。實(shí)現(xiàn) AOP 功能采用的是代理技術(shù),客戶端程序不再調(diào)用目標(biāo), 而調(diào)用代理類, 代理類與目標(biāo)類對(duì)外具有相同的方法聲明, 有兩種方式可以實(shí)現(xiàn)相同的方法聲明, 一是實(shí)現(xiàn)相同的接口,二是作為目標(biāo)的子類在, JDK 中采用 Proxy 類產(chǎn)生動(dòng)態(tài)代理的方式為某個(gè)接口生成實(shí)現(xiàn)類, 如果要為某個(gè)類生成子類, 則可以用 CGLI B。在生成的代理類的方法中加入系統(tǒng)功能和調(diào)用目標(biāo)類的相應(yīng)方法,系統(tǒng)功能的代理以 Advice

10、對(duì)象進(jìn)行提供,顯然要?jiǎng)?chuàng)建出代理對(duì)象,至少需要目標(biāo)類和 Advice 類。 spring 提供了這種支持,只需要在 spring 配置文件中配置這兩個(gè)元素即可實(shí)現(xiàn)代理和 aop 功能,例如,談?wù)?Struts 中的 Action servlet。Struts 優(yōu)缺點(diǎn)優(yōu)點(diǎn):1. 實(shí)現(xiàn) MVC 模式,結(jié)構(gòu)清晰 ,使開發(fā)者只關(guān)注業(yè)務(wù)邏輯的實(shí)現(xiàn) . 2 有豐富的 tag 可以用 ,Struts 的標(biāo)記庫 (Taglib) ,如能靈活動(dòng)用,則能大大提高開發(fā)效率3. 頁面導(dǎo)航使系統(tǒng)的脈絡(luò)更加清晰。 通過一個(gè)配置文件, 即可把握整個(gè)系統(tǒng)各部分之間的聯(lián)系, 這對(duì)于后期的維護(hù)有著莫大的好處。尤其是當(dāng)另5一批開發(fā)者

11、接手這個(gè)項(xiàng)目時(shí),這種優(yōu)勢體現(xiàn)得更加明顯。4. 提供 Exception 處理機(jī)制 .5. 數(shù)據(jù)庫鏈接池管理6. 支持 I18N缺點(diǎn)一、轉(zhuǎn)到展示層時(shí),需要配置 forward ,如果有十個(gè)展示層的jsp ,需要配置十次 struts ,而且還不包括有時(shí)候目錄、文件變更,需要重新修改 forward ,注意,每次修改配置之后, 要求重新部署整個(gè)項(xiàng)目,而 tomcate這樣的服務(wù)器,還必須重新啟動(dòng)服務(wù)器二、二、 Struts的 Action必需是 thread safe 方式,它僅僅允許一個(gè)實(shí)例去處理所有的請(qǐng)求。所以action用到的所有的資源都必需統(tǒng)一同步,這個(gè)就引起了線程安全的問題。三、 測試不

12、方便 . Struts 的每個(gè) Action都同 Web 層耦合在一起,這樣它的測試依賴于Web 容器,單元測試也很難實(shí)現(xiàn)。不過有一個(gè) Junit 的擴(kuò)展工具 Struts TestCase可以實(shí)現(xiàn)它的單元測試。四、 類型的轉(zhuǎn)換 . Struts 的 FormBean 把所有的數(shù)據(jù)都作為 String 類型,它可以使用工具 Commons-Beanutils 進(jìn)行類型轉(zhuǎn)化。但它的轉(zhuǎn)化都是在 Class 級(jí)別,而且轉(zhuǎn)化的類型是不可配置的。 類型轉(zhuǎn)化時(shí)的錯(cuò)誤信息返回給用戶也是非常困難的。五、對(duì) Servlet 的依賴性過強(qiáng) . Struts 處理 Action 時(shí)必需要依賴 ServletRequ

13、est 和 ServletResponse ,所有它擺脫不了 Servlet 容器。6六、 前端表達(dá)式語言方面 .Struts 集成了 JSTL,所以它主要使用 JSTL 的表達(dá)式語言來獲取數(shù)據(jù)。可是 JSTL 的表達(dá)式語言在 Collection 和索引屬性方面處理顯得很弱。七、 對(duì) Action 執(zhí)行的控制困難 . Struts 創(chuàng)建一個(gè) Action ,如果想控制它的執(zhí)行順序?qū)?huì)非常困難。 甚至你要重新去寫 Servlet 來實(shí)現(xiàn)你的這個(gè)功能需求。八、 對(duì) Action執(zhí)行前和后的處理 . Struts 處理 Action的時(shí)候是基于 class 的 hierarchies ,很難在 a

14、ction處理前和后進(jìn)行操作。九、 對(duì)事件支持不夠 . 在 struts 中,實(shí)際是一個(gè)表單Form 對(duì)應(yīng)一個(gè) Action類(或 DispatchAction),換一句話說:在 Struts 中實(shí)際是 一個(gè)表單只能對(duì)應(yīng)一個(gè)事件, struts這種事件方式稱 為application event,application event和 component event相比是一種粗粒度的事件STRUTS 的應(yīng)用 (如 STRUTS 架構(gòu) )Struts 是采用 Java Servlet/JavaServer Pages技術(shù),開發(fā) Web應(yīng)用程序的開放源碼的framework。 采用Struts能開發(fā)

15、出基于MVC(Model-View-Controller)設(shè)計(jì)模式的應(yīng)用構(gòu)架。 Struts 有如下的主要功能: 一.包含一個(gè) controller servlet,能將用戶的請(qǐng)求發(fā)送到相應(yīng)的 Action 對(duì)象。二.JSP 自由 tag庫,并且在 controllerservlet 中提供關(guān)聯(lián)支持,幫助開發(fā)員創(chuàng)建交互式表單應(yīng)用。三 .提供了一系列實(shí)用對(duì)象: XML處理、通過 Java reflection APIs自動(dòng)處理 JavaBeans 屬性、國際化的提示和消息。7說說 struts1 與 struts2 的區(qū)別。1. 都是 MVC 的 WEB 框架 ,2 struts1 的老牌框架,

16、應(yīng)用很廣泛,有很好的群眾基礎(chǔ),使用它開發(fā)風(fēng)險(xiǎn)很小,成本更低! struts2 雖然基于這個(gè)框架,但是應(yīng)用群眾并多,相對(duì)不成熟,未知的風(fēng)險(xiǎn)和變化很多,開發(fā)人員相對(duì)不好招,使用它開發(fā)項(xiàng)目的風(fēng)險(xiǎn)系數(shù)更大,用人成本更高!3.struts2 畢竟是站在前輩的基礎(chǔ)設(shè)計(jì)出來,它會(huì)改善和完善 struts1 中的一些缺陷, struts1 中一些懸而未決問題在 struts2 得到了解決。4.struts1的前端控制器是一個(gè)Servlet ,名稱為 ActionServlet,struts2的 前 端 控 制 器 是 一 個(gè)filter, 在struts2.0中 叫FilterDispatcher,在stru

17、ts2.1中叫StrutsPrepareAndExecuteFilter。5.struts1的 action需要繼承 Action類, struts2的 action可以不繼承任何類; struts1對(duì)同一個(gè)路徑的所有請(qǐng)求共享一個(gè)Action實(shí)例, struts2對(duì)同一個(gè)路徑的每個(gè)請(qǐng)求分別使用一個(gè)獨(dú)立Action實(shí)例對(duì)象,所有對(duì)于struts2的 Action不用考慮線程安全問題。6. 在 struts1 中使用 formbean 封裝請(qǐng)求參數(shù),在 struts2 中直接使用 action 的屬性來封裝請(qǐng)求參數(shù)。7.struts1中的多個(gè)業(yè)務(wù)方法放在一個(gè)Action中時(shí)(即繼承Dispatch

18、Action時(shí)),要么都校驗(yàn),要么都不校驗(yàn);對(duì)于struts2 ,可 以 指 定 只 對(duì) 某 個(gè) 方 法 進(jìn) 行 校 驗(yàn) , 當(dāng) 一 個(gè)Action繼 承 了8ActionSupport且在這個(gè)類中只編寫了validateXxx() 方法,那么則只對(duì) Xxx() 方法進(jìn)行校驗(yàn)。(一個(gè)請(qǐng)求來了的執(zhí)行流程進(jìn)行分析,struts2是自動(dòng)支持分模塊開發(fā),并可以不同模塊設(shè)置不同的url 前綴,這是通過package的 namespace 來實(shí)現(xiàn)的; struts2 是支持多種類型的視圖; struts2的視圖地址可以是動(dòng)態(tài)的,即視圖的名稱是支持變量方式的,舉例,論壇發(fā)帖失敗后回來還要傳遞boardid

19、。視圖內(nèi)容顯示方面: 它的標(biāo)簽用 ognl ,要 el 強(qiáng)大很多,在國際化方面支持分模塊管理,兩個(gè)模塊用到同樣的 key ,對(duì)應(yīng)不同的消息;)與 Struts1 不同, Struts2 對(duì)用戶的每一次請(qǐng)求都會(huì)創(chuàng)建一個(gè) Action ,所以 Struts2 中的 Action 是線程安全的。給我印象最深刻的是:struts 配置文件中的redirect視圖的 url不能接受參數(shù),而 struts2 配置文件中的 redirect視圖可以接受參數(shù)。hibernate中的 update() 和 saveOrUpdate()的區(qū)別, session的 load() 和 get() 的區(qū)別。簡述Hibe

20、rnate和 JDBC 的優(yōu)缺點(diǎn)如何書寫一個(gè)onetomany配置文件 .iBatis 與 Hibernate有什么不同相同點(diǎn):屏蔽jdbc api的底層訪問細(xì)節(jié),使用我們不用與jdbcapi 打交道,就可以訪問數(shù)據(jù)。jdbcapi 編程流程固定,還將sql 語句與 java 代碼混雜在了一起,經(jīng)常需要拼湊sql 語句,細(xì)節(jié)很繁瑣。9ibatis 的好處:屏蔽 jdbc api的底層訪問細(xì)節(jié);將 sql 語句與 java代碼進(jìn)行分離 ;提供了將結(jié)果集自動(dòng)封裝稱為實(shí)體對(duì)象和對(duì)象的集合的功能, queryForList返回對(duì)象集合,用queryForObject返回單個(gè)對(duì)象;提供了自動(dòng)將實(shí)體對(duì)象的

21、屬性傳遞給sql 語句的參數(shù)。Hibernate 是一個(gè)全自動(dòng)的 orm 映射工具,它可以自動(dòng)生成 sql 語句 ,ibatis 需要我們自己在 xml 配置文件中寫 sql 語句, hibernate 要比 ibatis 功能負(fù)責(zé)和強(qiáng)大很多。因?yàn)?hibernate 自動(dòng)生成 sql 語句,我們無法控制該語句,我們就無法去寫特定的高效率的sql 。對(duì)于一些不太復(fù)雜的 sql 查詢, hibernate 可以很好幫我們完成,但是,對(duì)于特別復(fù)雜的查詢, hibernate 就很難適應(yīng)了,這時(shí)候用 ibatis 就是不錯(cuò)的選擇,因?yàn)?ibatis 還是由我們自己寫 sql 語句。寫 Hiberna

22、te的一對(duì)多和多對(duì)一雙向關(guān)聯(lián)的orm 配置hibernate的 inverse 屬性的作用解決方案一,按照 Object 數(shù)據(jù)取出數(shù)據(jù),然后自己組 bean 解決方案二,對(duì)每個(gè)表的 bean 寫構(gòu)造函數(shù),比如表一要查出field1,field2兩個(gè)字段,那么有一個(gè)構(gòu)造函數(shù)就是Bean(type1filed1,type2field2),然后在 hql 里面就可以直接生成這個(gè)bean 了。在 DAO 中如何體現(xiàn) DAO 設(shè)計(jì)模式解決方案一,按照 Object 數(shù)據(jù)取出數(shù)據(jù),然后自己組 bean 解決方案二,對(duì)每個(gè)表的 bean 寫構(gòu)造函數(shù),比如表一要查出field1,field2兩個(gè)字段,那么有一

23、個(gè)構(gòu)造函數(shù)就是Bean(type110filed1,type2field2),然后在 hql 里面就可以直接生成這個(gè)bean 了。spring+Hibernate中委托方案怎么配置解決方案一,按照 Object 數(shù)據(jù)取出數(shù)據(jù),然后自己組 bean 解決方案二,對(duì)每個(gè)表的 bean 寫構(gòu)造函數(shù),比如表一要查出field1,field2兩個(gè)字段,那么有一個(gè)構(gòu)造函數(shù)就是Bean(type1filed1,type2field2),然后在 hql 里面就可以直接生成這個(gè)bean 了。spring+Hibernate中委托方案怎么配置解決方案一,按照 Object 數(shù)據(jù)取出數(shù)據(jù),然后自己組 bean 解決

24、方案二,對(duì)每個(gè)表的 bean 寫構(gòu)造函數(shù),比如表一要查出field1,field2兩個(gè)字段,那么有一個(gè)構(gòu)造函數(shù)就是Bean(type1filed1,type2field2) ,然后在 hql 里面就可以直接生成這個(gè) bean 了。 hibernate 進(jìn)行多表查詢每個(gè)表中各取幾個(gè)字段, 也就是說查詢出來的結(jié)果集沒有一個(gè)實(shí)體類與之對(duì)應(yīng)如何解決;解決方案一,按照 Object 數(shù)據(jù)取出數(shù)據(jù),然后自己組 bean 解決方案二,對(duì)每個(gè)表的 bean 寫構(gòu)造函數(shù),比如表一要查出field1,field2兩個(gè)字段,那么有一個(gè)構(gòu)造函數(shù)就是Bean(type1filed1,type2field2),然后在 h

25、ql 里面就可以直接生成這個(gè)bean 了。介紹一下 Hibernate的二級(jí)緩存11按照以下思路來回答: (1 )首先說清楚什么是緩存, (2 )再說有了 hibernate 的 Session 就是一級(jí)緩存,即有了一級(jí)緩存, 為什么還要有二級(jí)緩存,(3 )最后再說如何配置 Hibernate 的二級(jí)緩存。( 1)緩存就是把以前從數(shù)據(jù)庫中查詢出來和使用過的對(duì)象保存在內(nèi)存中(一個(gè)數(shù)據(jù)結(jié)構(gòu)中),這個(gè)數(shù)據(jù)結(jié)構(gòu)通常是或類似 Hashmap ,當(dāng)以后要使用某個(gè)對(duì)象時(shí), 先查詢緩存中是否有這個(gè)對(duì)象, 如果有則使用緩存中的對(duì)象, 如果沒有則去查詢數(shù)據(jù)庫, 并將查詢出來的對(duì)象保存在緩存中,以便下次使用。下面是

26、緩存的偽代碼:引出 hibernate 的第二級(jí)緩存,用下面的偽代碼分析了 Cache的實(shí)現(xiàn)原理Daohashmap map = new map();User getUser(integer id)User user = map.get(id)if(user = null)user = session.get(id);map.put(id,user);return user;12DaoCache cache = nullsetCache(Cache cache)this.cache = cacheUser getUser(int id)if(cache!=null)User user = ca

27、che.get(id);if(user =null)user = session.get(id);cache.put(id,user);return user;return session.get(id);13( 2)Hibernate 的 Session 就是一種緩存,我們通常將之稱為Hibernate 的一級(jí)緩存,當(dāng)想使用 session 從數(shù)據(jù)庫中查詢出一個(gè)對(duì)象時(shí), Session 也是先從自己內(nèi)部查看是否存在這個(gè)對(duì)象,存在則直接返回,不存在才去訪問數(shù)據(jù)庫,并將查詢的結(jié)果保存在自己內(nèi)部。由于 Session 代表一次會(huì)話過程,一個(gè) Session 與一個(gè)數(shù)據(jù)庫連接相關(guān)連,所以 Session 最好不要長時(shí)間保持打開, 通常僅用于一個(gè)事務(wù)當(dāng)中,在事務(wù)結(jié)束時(shí)就應(yīng)關(guān)閉。 并且 Session 是線程不安全的, 被多個(gè)線程共享時(shí)容易出現(xiàn)問題。 通常只有那種全局意義上的緩存才是真正的緩存應(yīng)用,才有較大的緩存價(jià)值, 因此,Hibernate 的 Session 這一級(jí)緩存

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論