第17章Struts2、Hibernate、Spring的整合應用實例_第1頁
第17章Struts2、Hibernate、Spring的整合應用實例_第2頁
第17章Struts2、Hibernate、Spring的整合應用實例_第3頁
第17章Struts2、Hibernate、Spring的整合應用實例_第4頁
第17章Struts2、Hibernate、Spring的整合應用實例_第5頁
已閱讀5頁,還剩54頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

第17章

Struts2、Hibernate、Spring的整合應用實例17.1Spring與Struts2的整合17.2Spring與Hibernate整合17.3Struts2、Hibernate與Spring的整合17.1Spring與Struts2的整合首先,創建Web項目,命名為Spring_Struts。添加Struts2所需的5個類庫:struts2-core-2.0.14.jar,xwork-2.0.4.jar,ognl-2.6.11.ar,common-logging-1.0.4.jar,freemarker-2.3.8.jar。然后修改web.xml,代碼如下:

<?xmlversion="1.0"encoding="UTF-8"?><web-appversion="2.5" xmlns="/xml/ns/javaee" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_2_5.xsd">

<filter> <filter-name>struts2</filter-name>

<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>

</filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></web-app>17.1Spring與Struts2的整合接著創建login.jsp登錄頁面,該頁面非常簡單,代碼如下:

<%@pagelanguage="java"pageEncoding="utf-8"%><%@tagliburi="/struts-tags"prefix="s"%><html><head> <title>登錄界面</title></head><body> <s:formaction="login.action"method="post"> <s:textfieldname="username"label="學號"/> <s:passwordname="password"label="口令"/> <s:submitvalue="登錄"/></s:form></body></html>17.1Spring與Struts2的整合創建Action類LoginAction.java代碼。配置struts.xml文件,代碼如下:

<!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN""/dtds/struts-2.0.dtd"><struts> <includefile="struts-default.xml"/><packagename="default"extends="struts-default"> <actionname="login"class="org.action.LoginAction"> <resultname="success">/login_success.jsp</result> </action> </package></struts>17.1Spring與Struts2的整合創建login_success.jsp,代碼如下:

<%@pagecontentType="text/html;charset=gb2312"%><%@taglibprefix="s"uri="/struts-tags"%><html><body><h2>您好!<s:propertyvalue="xh"/>歡迎您登錄成功

</h2></body></html>17.1Spring與Struts2的整合部署運行項目,測試Struts2是否正常運行,在瀏覽器中輸入“http://localhost:8080/Spring_Struts/login.jsp”,在登錄框和密碼框中輸入任意值,單擊“登錄”按鈕,轉向登錄成功界面,并輸出登錄名。到此為止,我們僅開發了一個Struts2的程序,下面介紹如何將Spring融入到項目中。首先,添加Spring框架所需的類庫,這里要添加Spring的類庫“Spring2.5CoreLibraries”及“Spring2.5WebLibraries”,同時要添加Spring支持的Jar包struts2-spring-plugin.jar。該包位于Struts2的lib文件夾下,該Jar文件用于支持Spring與Struts2的整合。在WEB-INF下創建Spring的核心配置文件applicationContext.xml,代碼如下:

<?xmlversion="1.0"encoding="UTF-8"?><beans xmlns="/schema/beans" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-2.0.xsd"> ...//這里將配置Bean</beans>17.1Spring與Struts2的整合修改web.xml內容,使得項目增加對Spring的支持,代碼修改。在項目的src下創建文件perties,編輯代碼內容如下:

struts.objectFactory=spring

上述代碼表示Struts2的對象的生成交由Spring來完成,修改applicationContext.xml,代碼如下:

<?xmlversion="1.0"encoding="UTF-8"?><beans xmlns="/schema/beans" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-2.0.xsd">

<beanid="loginAction"class="org.action.LoginAction"></bean></beans>17.1Spring與Struts2的整合完成以后,修改struts.xml如下:

<!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN""/dtds/struts-2.0.dtd"><struts><includefile="struts-default.xml"/><packagename="default"extends="struts-default"> <!--使用Spring生成的類對象

--><actionname="login"class="loginAction"><resultname="success">/login_success.jsp</result></action></package></struts>17.2Spring與Hibernate整合1.創建項目首先,創建Web項目,命名為“Spring_Hibernate”。2.添加Spring的開發能力在MyEclipse中有對Spring框架的支持,右擊項目名,依次選擇“MyEclipse”→“AddSpringCapabilities…”,出現如圖17.1所示的對話框,選中要應用的Spring的版本及所需的類庫文件。注意,本書用的Spring版本為Spring2.5,選擇Spring的類庫Spring2.5CoreLibraries、Spring2.5WebLabraries、Spring2.5AOPLibraries、Spring2.5PersistenceCoreLibraries和Spring2.5PersistenceJDBCLibraries。圖17.1添加SpringCapabilities17.2Spring與Hibernate整合單擊“Next”按鈕,提示是否建立Spring配置文件,在默認情況下選擇applicationContext.xml文件的存放路徑,選擇在WEB-INF文件夾下,如圖17.2所示,然后單擊“Finish”按鈕,完成Spring框架的添加。圖17.2創建applicationContext.xml文件17.2Spring與Hibernate整合3.添加Hibernate框架MyEclipse也有對Hibernate框架的支持,右擊項目名,依次選擇“MyEclipse”→“AddHibernateCapabilities…”菜單項,出現如圖17.3所示的對話框,選擇Hibernate版本及需要的類庫。圖17.3添加Hibernate庫17.2Spring與Hibernate整合單擊“Next”按鈕,出現如圖17.4所示的對話框,提示是用Hibernate的配置文件還是用Spring的配置文件進行SessionFactory的配置,選擇使用Spring來對Hibernate進行管理。這樣,最后生成的工程中就不包含hibernate.cfg.xml,可以用Spring來對數據源及SessionFactory進行依賴注入。用Spring對Hibernate的數據源及SessionFactory進行管理圖17.4定義Hibernate配置17.2Spring與Hibernate整合單擊“Next”按鈕,出現如圖17.5所示的對話框,提示是否創建一個新的Hibernate配置文件或是使用已有的配置文件。使用已經存在的Spring配置文件為SessionFactory的ID起名圖17.5定義Spring-Hibernate配置17.2Spring與Hibernate整合單擊“Next”按鈕,出現要求選擇數據庫連接信息的對話框。這里選擇前面創建的“MBOOKCONN”,在BeanId中填寫“datasource”數據源的Bean名稱。在DBDriver中選擇“MBOOKCONN”,下面的輸入欄會自動填充,出現如圖17.6所示的對話框。為DataSourceID起名

圖17.6指定新的Spring數據源連接信息17.2Spring與Hibernate整合單擊“Next”按鈕,出現如圖17.7所示的對話框,提示是否創建SessionFactory類,由于本程序是由Spring注入sessionFactory,所以不用創建,單擊“Finish”按鈕。圖17.7定義SessionFactory屬性17.2Spring與Hibernate整合生成與數據庫表對應的POJO類和對應的映射文件。打開MyEclipse的DatabaseExplorerperspective,打開“MBOOKCONN”,依次選擇“MBOOK”→“dbo”→“TABLE”展開數據庫表,本項目選擇對“book”表的增、刪、改、查操作來講解Spring與Hibernate的整合,故只需生成“book”表的POJO類及對應的映射文件。右擊該表名,選擇“HibernateReverseEngineering”菜單項,出現如圖17.8所示的界面,選擇要生成的文件及文件存放的包。圖17.8Hibernate映射文件和POJO類17.2Spring與Hibernate整合查看項目的目錄結構,在org.vo包中,出現了“Book.java”,代碼為。

還有一個映射文件Book.hbm.xml,代碼為。在src文件夾下建立包org.dao,在該包下建立接口,命名為“BookDao”,代碼如下:

packageorg.dao;importorg.vo.Book;publicinterfaceBookDao{ publicvoidsave(Bookbook); publicvoiddelete(StringISBN); publicvoidupdate(Bookbook); publicBookselect(StringISBN);}17.2Spring與Hibernate整合在src文件夾下建立包org.dao.impl,在該包下建立類,命名為“BookDaoImpl”,代碼。修改Spring配置文件applicationContext.xml,將關系映射注冊在該文件中,并依賴注入DAO。代碼修改。17.2Spring與Hibernate整合4.測試結果準備工作完成后,就可以編寫測試類對其進行測試了。在src文件夾下建立包test,在該包下建立類Test,代碼。運行該測試類后,查看控制臺信息,如圖17.9所示。圖17.9控制臺輸出結果17.3Struts2、Hibernate與Spring的整合17.3.1項目創建首先,創建一個Web工程,命名為“Struts2_Hibernate_Spring”,然后修改web.xml文件,代碼修改為。17.3.2添加項目開發所需的JARs在添加項目開發所需的JARs前,首先介紹如何在MyEclipse中自定義UserLabraries。右擊項目名,依次選擇“BuildPath”→“ConfigureBuildPath”,出現如圖17.10所示的對話框,然后單擊“AddLibrary…”按鈕,出現如圖17.11所示的對話框。

圖17.10PropertiesforStruts2_Hibernate_Spring對話框

圖17.11AddLibrary對話框17.3.2添加項目開發所需的JARs選中“UserLibrary”后,單擊“Next”按鈕,出現如圖17.12所示的對話框。圖17.12用戶定義Library對話框17.3.2添加項目開發所需的JARs單擊“UserLibraries…”按鈕,出現如圖17.13所示的對話框。圖17.13添加UserLibraries對話框

17.3.2添加項目開發所需的JARs單擊“New”按鈕,出現如圖17.14所示的對話框。命名后單擊“OK”按鈕,就會在圖17.13中多出剛才自定義的Library,但是該Library中還沒有任何的Jar包,所以要為該Library添加Jar包。選中hibernate3,即剛創建的Library,單擊“AddJARs…”按鈕,找到要添加的Jar包路徑,選中這些Jar包后,單擊“OK”按鈕,就為該Library添加了Jar包。

圖17.14“EditUserLibrary”對話框17.3.2添加項目開發所需的JARs現在可以為項目添加開發類庫了。選擇“MyEclipse”→“AddSpringCapabilities…”,出現選擇版本及類庫的對話框,如圖17.15所示。選擇“UserLibraries”選項,也就是用戶自定義的Libraries,這里的“UserLibraries”包括了項目開發用到的所有的JARs,所以在后面為項目添加Hibernate開發能力時,可以不添加任何Jar包。圖17.15Spring選擇類庫17.3.3實現Hibernate持久層添加Hibernate的開發框架,右擊項目名,依次選擇“MyEclipse”→“AddHibernateCapabilities…”。前面說過,在添加Spring開發能力時,已經把所需的JARs全部添加進去,所以這里不用再添加Hibernate類庫,故在選擇Hibernate類庫時,無須選擇任何類庫,單擊“Next”按鈕即可,添加Hibernate框架、Hibernate的反向工程及文件修改與17.2節中的第3步相同,讀者可以自行操作,這里就不再列舉了。17.3.4編寫DAO接口及實現類“登錄”的DAO接口LoginDao.java代碼為:

packageorg.dao;importorg.vo.Login;publicinterfaceLoginDao{ //查詢信息 publicLogincheckLogin(Stringname,Stringpassword);}17.3.4編寫DAO接口及實現類LoginDao的實現類LoginDaoImpl.java代碼為:

packageorg.dao.impl;importjava.util.List;importorg.dao.LoginDao;importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;importorg.vo.Login;publicclassLoginDaoImplextendsHibernateDaoSupportimplementsLoginDao{ publicLogincheckLogin(Stringusername,Stringpassword){ String[]str={username,password}; Listlist=this.getHibernateTemplate().find("fromLoginwherename=?andpassword=?",str); Loginlogin=null; if(list.size()>0){ login=(Login)list.get(0); } returnlogin; }}17.3.4編寫DAO接口及實現類“圖書”的DAO接口BookDao.java代碼為:

packageorg.dao;importorg.vo.Book;publicinterfaceBookDao{ //保存圖書信息 publicvoidaddBook(Bookbook); //刪除圖書信息 publicvoiddeleteBook(StringISBN); //修改圖書信息 publicvoidupdateBook(Bookbook); //查詢圖書信息 publicBookselectBook(StringISBN);}17.3.4編寫DAO接口及實現類BookDao的實現類BookDaoImpl.java的代碼為。“讀者”的DAO接口StudentDao.java代碼為:

packageorg.dao;importorg.vo.Student;publicinterfaceStudentDao{ publicStudentselectStudent(StringreaderId);//查詢讀者信息}17.3.4編寫DAO接口及實現類StudentDao接口的實現類StudentDaoImpl.java代碼為:

packageorg.dao.impl;importjava.util.List;importorg.dao.StudentDao;importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;importorg.vo.Student;publicclassStudentDaoImplextendsHibernateDaoSupportimplementsStudentDao{ publicStudentselectStudent(StringreaderId){ Listlist=this.getHibernateTemplate().find("fromStudentwherereaderId=?",readerId); Studentstudent=null; if(list.size()>0) student=(Student)list.get(0); returnstudent; }}17.3.4編寫DAO接口及實現類“借書”接口LendDao.java的代碼為:

packageorg.dao;importjava.util.List;importorg.vo.Book;importorg.vo.Lend;importorg.vo.Student;publicinterfaceLendDao{ //分頁查詢指定借書證號的讀者所借圖書的信息 publicListselectBook(StringreaderId,intpageNow,intpageSize); //查詢指定借書證號的讀者所借圖書的總數 publicintselectBookSize(StringreaderId); //借書 publicvoidaddLend(Lendlend,Bookbook,Studentstudent); //根據圖書ID查詢Lend信息 publicLendselectByBookId(StringbookId); //根據圖書ISBN查詢Lend信息 publicLendselectByBookISBN(StringISBN);}LendDao接口的實現類LendDaoImpl.java代碼為。17.3.5編寫業務邏輯接口及實現類“登錄”的業務邏輯接口LoginService.java為:

packageorg.service;importorg.vo.Login;publicinterfaceLoginService{ publicLogincheckLogin(Stringusername,Stringpassword);}17.3.5編寫業務邏輯接口及實現類LoginService的實現類LoginServiceImpl.java為:

packageorg.service.impl;importorg.dao.LoginDao;importorg.service.LoginService;importorg.vo.Login;publicclassLoginServiceImplimplementsLoginService{ privateLoginDaologinDao; publicLogincheckLogin(Stringusername,Stringpassword){ returnloginDao.checkLogin(username,password);

} publicLoginDaogetLoginDao(){ returnloginDao; } publicvoidsetLoginDao(LoginDaologinDao){ this.loginDao=loginDao; }}

17.3.5編寫業務邏輯接口及實現類“圖書”的業務邏輯接口BookService.java為:

packageorg.service;importjava.util.List;importorg.vo.Book;publicinterfaceBookService{ //查詢圖書信息 publicBookselectBook(StringISBN); //添加圖書 publicvoidaddBook(Bookbook); //刪除圖書 publicvoiddeleteBook(StringISBN); //修改圖書 publicvoidupdateBook(Bookbook);} BookService.java的實現類BookServiceImpl.java為。17.3.5編寫業務邏輯接口及實現類“讀者”的業務邏輯接口StudentService.java為:

packageorg.service;importorg.vo.Student;publicinterfaceStudentService{ //查 publicStudentselectStudent(StringreaderId);}17.3.5編寫業務邏輯接口及實現類StudentService.java的實現類StudentServiceImpl.java為:

packageorg.service.impl;importorg.dao.StudentDao;importorg.service.StudentService;importorg.vo.Student;publicclassStudentServiceImplimplementsStudentService{ privateStudentDaostudentDao; publicStudentselectStudent(StringreaderId){ returnstudentDao.selectStudent(readerId); } publicStudentDaogetStudentDao(){ returnstudentDao; } publicvoidsetStudentDao(StudentDaostudentDao){ this.studentDao=studentDao; }}

17.3.5編寫業務邏輯接口及實現類“借書”的業務邏輯接口LendService.java為:

packageorg.service;importjava.util.List;importorg.vo.Book;importorg.vo.Lend;importorg.vo.Student;publicinterfaceLendService{ publicListselectBook(StringreaderId,intpageNow,intpageSize); publicintselectBookSize(StringreaderId); publicvoidaddLend(Lendlend,Bookbook,Studentstudent); publicLendselectByBookId(StringbookId); publicLendselectByBookISBN(StringISBN);}

LendService.java的實現類LendServiceImpl.java為。17.3.5編寫業務邏輯接口及實現類完成了DAO及業務邏輯的編寫后,需要在Spring的配置文件中進行依賴注入,以便于應用,故Spring的配置文件applicationContext.xml文件修改為。完成了對DAO及業務邏輯的注入后,還需要在該配置文件中配置事務支持,所以在配置文件中加入下面的Bean配置。17.3.6“登錄”功能的實現在實現功能之前,先做一些簡單的準備工作,先創建Struts2的配置文件struts.xml文件,編寫代碼如下:

<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN""/dtds/struts-2.0.dtd"><struts> <packagename="default"extends="struts-default"> ...//這里后面將添加action配置 </package></struts>

還有就是Struts2與Spring之間整合所需的perties文件:

struts.objectFactory=spring17.3.6“登錄”功能的實現“登錄”功能的頁面如圖17.16所示,頁面的代碼見12.3節中所講的“index.jsp”代碼。圖17.16系統主界面(包含登錄)17.3.6“登錄”功能的實現在head.jsp中登錄功能的部分代碼如下:

<s:formtheme="simple"action="login"method="post"> <tr><td><inputname=""type="text"class="style1"/></td> <td><imgsrc="images/password.jpg"width="42"height="15"/></td> <td><inputname="login.password"type="password"class="style2"/></td> <td><inputtype="image"src="images/login.jpg"style="width:57;height=15"></td> </tr></s:form>

提交到了“login.action”,在struts.xml文件中action配置為:

<!--登錄

--><actionname="login"class="loginAction"> <resultname="success">/index.jsp</result> <resultname="input">/index.jsp</result> </action>17.3.6“登錄”功能的實現Action類LoginAction.java實現為。在Spring配置文件中對LoginAction進行依賴注入:

<beanid="loginAction"class="org.action.LoginAction"> <propertyname="loginservice"ref="loginservice"></property> </bean>17.3.7“查詢已借圖書”功能的實現要“查詢已借圖書”,首先要進入到“借書”功能的頁面,如圖17.17所示,界面實現的代碼見第12章的12.3.2節的“lend.jsp”。圖17.17借書的主界面17.3.7“查詢已借圖書”功能的實現在輸入借書證號后,單擊“查詢”按鈕,查詢出該讀者的所有借書信息,如輸入“081101”,出現如圖17.18所示的界面。圖17.18查詢已借圖書頁面17.3.7“查詢已借圖書”功能的實現該功能的頁面提交借書證號代碼為:

<s:formaction="selectBook"method="post"theme="simple"> <tableborder="1"width="200"cellspacing=1class="font1"> <trbgcolor="#E9EDF5"> <td>內容選擇</td> </tr> <tr><tdalign="left"valign="top"height="400"> <br>借書證號:<br><br> <s:textfieldname="lend.readerId"size="15"></s:textfield> <s:submitvalue="查詢"></s:submit></td></tr> </table></s:form>17.3.7“查詢已借圖書”功能的實現提交到了“selectBook.action”,相應地在struts.xml中的配置為:

<!--查詢已借圖書

--> <actionname="selectBook"class="lendAction"method="selectAllLend"> <resultname="success">/lend.jsp</result> </action>LendAction.java中實現的方法代碼為。在Spring配置文件中對LendAction進行依賴注入:

<beanid="lendAction"name=""class="org.action.LendAction"> <propertyname="lendservice"ref="lendservice"></property> <propertyname="bookservice"ref="bookservice"></property> <propertyname="studentservice"ref="studentservice"></property></bean>17.3.8“借書”功能的實現在某讀者查詢過已借的圖書信息后,就可以繼續借書了,輸入正確的ISBN及圖書ID后,單擊“借書”按鈕,可以完成借書,如圖17.19所示。圖17.19借書成功頁面17.3.8“借書”功能的實現借書功能的頁面代碼為。這里做了一個判斷,前面也已經講解,就是若“readerId”沒有值就讓輸入框不可編輯,這是因為如果沒有“readerId”就不知道誰要借書了。當輸入了借書證號查詢后,此時“readerId”就被傳遞到頁面中,輸入圖書的ISBN及圖書ID,單擊“借書”按鈕,請求提交到“lendBook.action”,struts.xml中相應地配置為:

<!--借書

--><actionname="lendBook"class="lendAction"method="lendBook"> <resultname="success">/lend.jsp</result></action>在LendAction.java中的方法實現為。17.3.9“圖書管理”功能的實現圖書管理界面如圖17.20所示,頁面實現代碼與第12章12.3.4節中的“bookmanage.Jsp”相同。圖17.20圖書管理界面17.3.9“圖書管理”功能的實現在“bookmanage.jsp”頁面中,該界面實現了圖書的增、刪、改、查功能,在逐一介紹之前,先回顧一下該表單的內容:

<s:formtheme="simple"action="book"method="post"enctype="multipart/form-data"validate="true"> <td><tableborder="1"width="200"cellspacing=1class="font1"> <trbgcolor="#E9EDF5"><td>功能選擇</td></tr> <tr><tdalign="center"valign="top"height="400"> <br> <s:submitvalue="圖書追加"method="addBook"></s:submit> <br><br> <s:submitvalue="圖書刪除"method="deleteBook"></s:submit> <br><br> <s:submitvalue="圖書修改"method="updateBook"></s:submit> <br><br> <s:submitvalue="圖書查詢"method="selectBook"></s:submit></td> </tr> </table> </td> <td> ...//這里是要提交的表單輸入框部分 </td> ...17.3.9“圖書管理”功能的實現1.圖書追加圖書追加是向數據庫中添加數據,頁面的提交代碼為:

<s:submitvalue="圖書追加"method="addBook"></s:submit>

在提交標簽中定義了“method”屬性,指定了該請求應用的Action類中的方法為“addBook”,故當4個按鈕都提交給“book.action”時,在指定的Action類中就可以找到相應的方法進行處理。struts.xml中的配置為:

<!--圖書管理--><actionname="book"class="bookAction"> <resultname="success">/bookmanage.jsp</result> <resultname="input">/bookmanage.jsp</result> <interceptor-refname="defaultStack"> <paramname="validation.excludeMethods">*</param> <paramname="validation.includeMethods">addBook,updateBook</param> </interceptor-ref></action>17.3.9“圖書管理”功能的實現BookActon.java中相應的處理方法為。

在Spring的配置文件中對BookAction進行依賴注入:

<beanid="bookAction"class="org.action.BookAction"> <propertyname="bookservice"ref="bookservice"></property> <propertyname="lendservice"ref="lendservice"></property></bean>17.3.9“圖書管理”功能的實現2.圖書刪除因為圖書刪除也是提交給了“book.action”,而且在提交標簽中定義了使用的方法:

<s:submitvalue="圖書刪除"method="deleteBook"></s:submit>

所以,直接在BookAction.java中編寫方法即可:

publicStringdeleteBook()throwsException{ if(book.getISBN()==null||book.getISBN().equals("")){ this.setMessage("請輸入ISBN號"); returnSUCCESS; }elseif(bookservice.selectBook(book.getISBN())==null){ this.setMessage("您輸入的ISBN號不存在"); returnSUCCESS; }elseif(lendservice.selectByBookISBN(book.getISBN())!=null){ this.setMessage("該圖書已經被借出,故不能刪除圖書信息!"); returnSUCCESS; } bookservice.deleteBook(book.getISBN()); this.setMessage("刪

溫馨提示

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

評論

0/150

提交評論