




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、課程內容n概述nJ2EE架構基礎nServlet、JSP、EJB開發(fā)nJ2EE應用部署nJ2EE應用開發(fā)架構n實例軟件開發(fā)技術的發(fā)展n基于主機的系統(tǒng)n兩層的Client/Server系統(tǒng)n三層(n層)體系架構q表示層q業(yè)務邏輯層q數(shù)據層n基于Web的三層(n層)體系架構中間件技術中間件技術中間件技術企業(yè)級應用的要求n分布式n可移植n面向Web體系n滿足企業(yè)計算要求q一致性q事務性q安全性n好的特性q可伸縮q可擴展q易維護n遺留系統(tǒng)集成以上要求需要一個良好的基礎架構來支持企業(yè)級應用環(huán)境什么是J2EE?Java 2 Platform, Enterprise Edition (J2EE)nOpen
2、and standard based platform for developing, deploying and managing n-tier, Web-enabled, server-centric, and component-based enterprise applicationsn運用Java技術開發(fā)企業(yè)應用的標準n包括了q多層應用開發(fā)模型q開發(fā)平臺 - APIs 和服務q測試軟件包 q參考實現(xiàn)n將所有Sun的企業(yè)技術集合在一個體系結構下的平臺q特定版本下的EJB, Servlet, JSPqJava Web Server qJNDI, JDBC, JTA, JMS, JavaM
3、ail, CORBAJava 2 PlatformJ2EE可以提供什么n分布式、可移植構件的框架n簡化服務器端中間層構件的設計n為構件和應用服務器提供標準APIJ2EE可以為開發(fā)者和用戶帶來n更短的開發(fā)時間q可重用組件qJSPqEJBn自由的選擇q基于開放的標準n簡化的連接qXML,JDBC,RMI-IIOP,Web ServiceJ2EE 技術架構J2EE 應用體系結構J2EE是端到端的解決方案N層J2EE體系架構J2EE主要技術概覽n展示層 ServLet/JSPn中間層 EJBn中間層可用的企業(yè)服務q事務服務 JTAq目錄服務 JNDIq消息服務 JMSq異步組件Message-Driv
4、en EJBn數(shù)據層 - JDBCn遠程調用 RMI/IIOPn使用現(xiàn)有資源 - JCAJ2EE 1.4 Contents.Net與J2EE 的比較Web 架構: J2EE vs .NETCLR.NET AssemblyADO.NET(可使用 COM+ 服務; 比如事務)Web 表單Server 控件Code-BehindASP.NETIISJavaBeansEJBsJSPServlets可運行于大多數(shù)主要應用及Web服務器支持大多數(shù)數(shù)據庫 (通過 JDBC 驅動程序)J2SE/EEJDBC (事務使用 JTA).NETSQL ServerOracleDB/2, etc.SQL ServerO
5、racleDB/2, etc.狀態(tài): ASP.NET Session,.NET 數(shù)據緩存狀態(tài): 封裝于 EJB 中, 也可在 Web Sessions 中J2EE/.NET主要技術比較nJDBC nJTAnJNDInJMSnJavaMailnRMI/IIOPnJAFnADO.NET n.NET TransactionnActive Directoryn.NET MessagingnSmtpMailnWeb Service/Remotingn.NET JIT技術的成熟性MicrosoftJ2EE199619971998199920002001MSXMLJAXPASPJSPMTS/COM+EJBO
6、DBCJDBCMar 1992ADSIJNDIQCMDBLCEMMCWinDNAJ2EEMSMQJMSVS.Net.NetJ2EE的移植性與互操作性n理論上J2EE應用可以采用多個廠商的產品q只要符合J2EE的標準n實際情況qJ2EE標準不完整,如 Web ServiceqJ2EE的技術需改進,如 EJBq各廠商發(fā)展各自的技術q不同產品很難協(xié)同和移植nJ2EE可選擇同一廠商支持的不同操作系統(tǒng).Net的移植性與互操作性n理論上.Net應用可移植到任何平臺qCLS提交給標準化組織q只要支持CLRn實際情況q只有Windows/Free BSDn.Net支持Web Serviceq可以使用任何平臺運
7、行的Web Serviceq任何平臺可使用.Net Web Service技術比較結論n.Net和J2EE應用有著相似的架構n.Net和J2EE有相應的主要技術q.Net所有技術來自MicrosoftqJ2EE的技術有多個廠商的實現(xiàn)n.Net和J2EE可以滿足大多數(shù)應用的需求n主要的差別不在技術的可行性上q開發(fā)效率q性能q成本q穩(wěn)定性開發(fā)工具nJBuilderq商用q功能完備nEclipseqOpen Sourceq插件豐富qmyEclipsen版本管理qCVSJ2EE 應用開發(fā)n編寫和編譯組件代碼qServlet, JSP, EJBn編寫組件的部署描述符n把組件裝配成可部署的軟件包n將軟件包
8、部署到J2EE應用服務器上 部署描述符n提供容器如何管理和控制J2EE組件行為的操作指令q事務性q安全性q持久性n通過配置實現(xiàn)組件行為的定制 (不需要通過代碼進行定制)qXML文件n使代碼具有可移植性應用服務器介紹n應用服務器是非常重要的企業(yè)軟件,為現(xiàn)代業(yè)務系統(tǒng)提供了應用基礎結構。n應用服務器源自支持與其它系統(tǒng)共享數(shù)據和資源的應用,以及為Web 頁面和其它用戶界面生成動態(tài)信息的需求。n它在 Web 服務器與底層應用和數(shù)據庫之間形成了新的功能和服務層應用服務器實現(xiàn)的功能n負載均衡n故障容錯nWeb 服務n網絡透明n遺留集成n事務管理n安全性n消息n多線程n持久性n數(shù)據庫連接n資源合并n開發(fā)、測試
9、和封裝功能n J2EE Containers & Components容器與組件容器處理容器處理組件處理組件處理 一致性一致性 安全性安全性 可獲得性可獲得性 可伸縮性可伸縮性 事務性事務性 分布性分布性 生命周期管生命周期管理理 (持久性)(持久性)表示表示JSP, Servlet, Applet業(yè)務邏輯業(yè)務邏輯EJB數(shù)據訪問邏輯數(shù)據訪問邏輯EJB應用系統(tǒng)訪問應用系統(tǒng)訪問Web service應用服務器產品nBEA WebLogicnIBM WebSpherenSun Java System Application ServernOracle 9i/ASnJBossnTomcat(不
10、支持EJB)nResinWeb服務器模型/CGI/ServletnWeb服務器模型nCGI/ServletnServer side moduleqisapiqmod_perlnServer side scriptqphpqaspqjspServletnServlet是Java技術對CGI編程的回答。Servlet程序在服務器端運行,動態(tài)地生成Web頁面。與傳統(tǒng)的CGI和許多其他類似CGI的技術相比,Java Servlet具有更高的效率,更容易使用,功能更強大,具有更好的可移植性,更節(jié)省投資。 q高效 q方便 q可移植性好 q節(jié)省投資Servlet開發(fā)n如果某個類要成為Servlet,則它應該
11、從HttpServlet 繼承, 根據數(shù)據是通過GET還是POST發(fā)送,重載doGet、doPost方法之一或全部。 doGet和doPost方法都有兩個參數(shù),分別為HttpServletRequest 類型和HttpServletResponse 類型。 nHttpServletRequest提供訪問有關請求的信息的方法,例如表單數(shù)據、HTTP請求頭等等。 nHttpServletResponse除了提供用于指定HTTP應答狀態(tài)(200,404等)、應答頭(Content-Type,Set-Cookie等)的方法之外,最重要的是它提供了一個用于向客戶端發(fā)送數(shù)據的PrintWriter 。 n
12、對于簡單的Servlet來說,它的大部分工作是通過println語句生成向客戶端發(fā)送的頁面。 n必須導入java.io包(要用到PrintWriter等類)、javax.servlet包(要用到HttpServlet等類)以及javax.servlet.http包(要用到HttpServletRequest類和HttpServletResponse類)。 ndoGet和doPost這兩個方法是由service方法調用的,有時你可能需要直接重載service方法,比如Servlet要處理GET和POST兩種請求時JSP TechnologynJavaServer Pages(JSP)是一種實現(xiàn)普
13、通靜態(tài)HTML和動態(tài)HTML混合編碼的技術。nJSP并沒有增加任何本質上不能用Servlet實現(xiàn)的功能。但是,在JSP中編寫靜態(tài)HTML更加方便,不必再用 println語句來輸出每一行HTML代碼。更重要的是,借助內容和外觀的分離,頁面制作中不同性質的任務可以方便地分開:比如,由頁面設計專家進行HTML設計,同時留出供Servlet程序員插入動態(tài)內容的空間。 nJSP一般在Web服務器端被編譯成Servlet后執(zhí)行n通過定制的Tag實現(xiàn)擴展JSP Constructs 1nJSP文件有固定的文件名后綴.jspn注釋 nDeclaration nExpression q向Response流中輸
14、出數(shù)據q類似于在瀏覽器中執(zhí)行printq在表達式語句后面不能有分號nScriplets 包含java代碼 qJSP Constructs 2The value is: Value is emptyn所有JSP頁面中都隱含存在幾個固有的對象q“request” Browsers Request ObjectnUse to get HTTP headers, length etc.q“response” - HttpResponse ObjectJSP Constructs 3q“session” internal HttpSession Objectq“pageContext” q“applic
15、ation”q“out”, same as q“config” servlet configurationq“page”q“exception”nJSP Directivesq是針對JSP的指示JSP Constructs 4q不會產生任何輸出q“page” directive nn通常用來引入java類的路徑q“include” directivenn用來包含一些靜態(tài)文件q“taglib” 列出標簽庫描述文件的位置n在使用特定標簽庫的時候需要在Web應用中使用Java Beansn一般用來實現(xiàn)數(shù)據傳遞和業(yè)務組件n與Java Beans在Swing和AWT中的用法相似n必須沒有構造函數(shù)或者構造
16、函數(shù)沒有參數(shù)n每個Bean屬性都必須有setter和getter方法nJSP標簽也使用Java BeanJSP ActionsnJSP actions是一些會影響輸出流的特殊標簽,通常用在Java Bean上q常用的JSP actionn , , n以下代碼用來在輸出流中顯示student bean的lastName屬性JDBCn提供訪問關系型數(shù)據庫的標準Java APIq使用SQLn對于Java編程API的實現(xiàn)由各廠商實現(xiàn),針對不同數(shù)據庫編寫不同的驅動程序。JDBC 的目標nSQL-Leveln100% 純Javan簡單n高效n利用現(xiàn)有的數(shù)據庫技術n提供多種方法簡化不同功能需求的代碼JDBC
17、 體系架構ApplicationJDBCDrivernJava 代碼調用JDBC庫nJDBC裝載驅動n驅動與特定數(shù)據庫連接n可以使用多個驅動,也可以使用多個數(shù)據庫n可以在不修改程序代碼的情況下更換要使用的數(shù)據庫JDBC DriversnType I: “Bridge”nType II: “Native”nType III: “Middleware”nType IV: “Pure”JDBC APInJDBC 的實現(xiàn)類在java.sql包中,需要在程序中通過import語句引入DriverManagernDriverManager 試用各種驅動n使用第一個可以正確使用的驅動n一個驅動類裝載時,自動
18、在DriverManager中注冊Class.forName(“org.gjt.mm.mysql.Driver”);Connection c = DriverManager.getConnection(.);JDBC對象類nDriverManagerq裝載、選擇驅動nDriverq連接實際數(shù)據庫nConnectionq連接數(shù)據庫的對象nStatementq執(zhí)行獨立的SQL語句nResultSetqStatement返回的結果集JDBC 類的使用DriverManagerDriverConnectionStatementResultSetJDBC URLnjdbc:subprotocol:sou
19、rcen不同的驅動有不同的URL寫法njdbc:odbc:DataSourceq例如jdbc:odbc:Northwindnjdbc:mysql:/host:port/databaseq例如jdbc:mysql:/localhost/accountingDriverManagernConnection getConnectionn(String url, String user, String password)n與給定的JDBC URL連接,并使用user和password參數(shù)n可能產生java.sql.SQLExceptionn返回一個 Connection對象ConnectionnCon
20、nection對象表示和一個特定數(shù)據的連接會話nSQL語句在Connection環(huán)境里執(zhí)行并得到返回結果n可以創(chuàng)建到一個數(shù)據庫的多個Connection連接n在Connection中有一些方法能夠得到數(shù)據庫的metadata信息,如數(shù)據庫中表結構和字段屬性n在Connection還有保證數(shù)據庫事務的方法獲得一個 ConnectionnString url = “jdbc:mysql:/localhost/test;ntry nClass.forName ( org.gjt.mm.mysql.Driver );nConnection con = DriverManager.getConnecti
21、on(url,”root”,”root”);nncatch (ClassNotFoundException e) n e.printStackTrace(); ncatch (SQLException e)n e.printStackTrace(); StatementnStatement對象用來執(zhí)行SQL命令并獲取相應的結果nStatement對象的主要方法qResultSet executeQuery(String) nExecute a SQL statement that returns a single ResultSet. qint executeUpdate(String) nE
22、xecute a SQL INSERT, UPDATE or DELETE statement. Returns the number of rows changed.qboolean execute(String) nExecute a SQL statement that may return multiple results. ResultSetnResultSet用來訪問Statement對象執(zhí)行后得到的數(shù)據結果集n每個Statement每次只能打開一個ResultSetn數(shù)據庫表中的記錄按順序獲取nResultSet對象維護一個指向當前記錄的游標nNext方法把游標指向下一個記錄 q
23、新的JDBC中允許游標指向上一個記錄,有部分支持高版本JDBC規(guī)范的驅動程序可以支持這個功能JDBC類圖nEnterprise JavaBeans(EJB) 是: Java服務器端服務框架的規(guī)范,軟件廠商根據它來實現(xiàn)EJB服務器。應用程序開發(fā)者可以專注于支持應用所需的商業(yè)邏輯,而不用擔心周圍框架的實現(xiàn)問題。 nEJB容器是: 一個管理一個或多個EJB類/實例的抽象。它通過規(guī)范中定義的接口使EJB類訪問所需的服務。容器廠商也可以在容器或服務器中提供額外服務的接口。 nEJB服務器是: 管理EJB容器的高端進程或應用程序,并提供對系統(tǒng)服務的訪問。EJB服務器也可以提供廠商自己的特性,如優(yōu)化的數(shù)據庫
24、訪問接口,對其他服務(如CORBA服務)的訪問。一個EJB服務器必須提供對可訪問JNDI的名字服務和事務服務支持。 什么是EJBEJB架構nEnterprise JavaBeans有三種類型:qEntity Beansn代表數(shù)據n在服務器重啟后仍然存在n可以通過EJB container (“CMP”) 或者程序 (“BMP”) 持續(xù)化到數(shù)據庫 qSession Beansn執(zhí)行動作n等價于一般的 Java object, 只不過是在遠程n可以是 stateless (是原子操作), 或 stateful (在一個 context中執(zhí)行一系列的操作)qMessage Driven BeanEJ
25、BEJB介紹介紹Enterprise JavaBeansEJBEJB介紹介紹EJB服務器和容器EJBEJB介紹介紹EJB容器的責任業(yè)務數(shù)據模型業(yè)務數(shù)據模型n對業(yè)務概念的反映,也稱為領域類(domain class)n在持久存儲中業(yè)務實體的對象視圖n提供訪問和操作數(shù)據的對象封裝n支持多用戶共享的數(shù)據n可以從數(shù)據庫中存儲的屬性重新實例化qEJB 服務器崩潰后仍可重構q與數(shù)據庫中的數(shù)據有一樣長的生命EJBEJB介紹介紹實體bean(Entity Bean)nBean-Managed Persistence(自管理的持久性)q優(yōu)點:n開發(fā)者有完全的控制n無需復雜的提供商支持q缺點:n編碼復雜 在改變時
26、需要重新編碼和部署n影響可移植性nContainer-Managed Persistence(容器管理的持久性)q優(yōu)點:n提供商解決,可能會有更好的緩沖和性能n在部署描述符中進行改變即可 可移植性好q缺點:n對容器提供商的工具依賴性強n可能不易反映復雜的數(shù)據關系EJBEJB介紹介紹實體bean的持久性n會話bean經常用于涉及多個實體bean的業(yè)務處理和控制邏輯SessionEntityEntityEntityEJBEJB介紹介紹會話bean(Session Bean)(1)n相對生命較短(一般與客戶同步)n在EJB服務器崩潰時被刪除n不表示數(shù)據庫中的數(shù)據,但可以訪問數(shù)據n作為一個客戶的代表執(zhí)
27、行功能n可以加入事務EJBEJB介紹介紹會話bean(Session Bean)(2)n使用會話bean 對針對于某一客戶的處理或控制對象建模n對工作流、任務和管理活動等建模(如訂房、購物車等)n協(xié)調多個實體bean,控制實體bean之間的交互n將業(yè)務應用邏輯從客戶端轉移到服務器端EJBEJB介紹介紹何時使用會話Bean會話beann表示一個業(yè)務過程n每一客戶一個實例nShort-lived:與客戶生命同步n暫態(tài)的n服務器崩潰后丟失n可以是事務性的實體bean n表示業(yè)務數(shù)據n在多個客戶間共享實例nLong-lived:與數(shù)據庫中數(shù)據同步n持久的n服務器崩潰后可重構n總是事務性的EJBEJB介
28、紹介紹會話Bean?實體Bean?n無狀態(tài)(Stateless)bean q表達一個無狀態(tài)的服務(如列表,mail)q不存儲用戶相關信息,進行對請求的響應q暫態(tài)的q可用來構造響應頻繁而簡單的訪問的bean池n有狀態(tài)(Stateful)bean q維護客戶狀態(tài)EJBEJB介紹介紹兩種類型的會話beanJNDInJava Naming and Directory InterfacenJ2EE應用利用JNDI來定位資源和對象,使軟件更容易移植q應用程序通過JNDI用符號名稱查找關聯(lián)資源的對象q符號名稱和對象之間的關聯(lián)由系統(tǒng)管理人員在應用程序部署時配置nJNDI的使用qInitialContext i
29、c = new InitialContext()qic.lookup(“resource name”)J2EE Web目錄結構n頂層目錄通常是上下文路徑q如:應用目錄/tomcat/webapps/servletdemoq通常情況下URL應為q包含JSP、其他靜態(tài)內容和WEB-INF目錄n/WEB-INF目錄q這是一個受保護的目錄,不能瀏覽這個目錄下的文件q/classes 未打包的java類,會自動加到CLASS_PATH中q/lib web應用中的jar文件Web應用部署結構Project FolderWEB-INFclassespackage1package2libJSP filesHT
30、ML filespicturesweb.xmlDeployment descriptor部署結構說明n*.html, *.jsp等qHtml、jsp和其他需要被客戶端訪問的文件nWEB-INF/web.xmlqWeb應用部署描述符nWEB-INF/classesq編譯后的java類文件(包括servlet和非servlet)nWEB-INF/libqWeb應用需要的JAR文件,包括JDBC驅動程序等第三方模塊Web 部署描述符n/WEB-INF/web.xmlqJ2EE標準的一部分n定義一個web應用中的servletq給servlet和URL之間作映射q一個servlet可以映射到多個URL
31、上n定義web應用中可以使用的資源n定義安全n定義其他內容q設定Welcome file列表q設定會話超時q錯誤頁面映射Web應用打包(WAR)nJ2EE規(guī)范定義了如何把一個web應用歸檔成一個web application archive (WAR)nWAR文件 q后綴為.war的Java歸檔文件q用zip格式打包q符合J2EE規(guī)范的應用服務器都可以正確識別nWAR文件直接部署在Tomcat等應用服務器上J2EE應用結構EJBsWeb componentEJB DDEJB classRemote classHome classWeb DDJSP filesServlet ClassPictu
32、res (GIF/JPG)HTML filesJ2EE ApplicationJ2EE DD.war file.ear file.jar fileJ2EE標準部署描述符nEnterprise Archive (ear) fileqApplication.xml在META-INF目錄下nJava Archive (jar) fileqejb-jar.xml在META-INF目錄下nWeb Archive (war) fileqweb.xml在WEB-INF目錄下J2EE設計模式(JSP為中心)n優(yōu)點q非常容易結合業(yè)務邏輯(JSP:UseBean)、服務器處理過程和HTML(),在JSP頁面中同時
33、實現(xiàn)顯示、業(yè)務邏輯和流程控制,從而快速完成應用開發(fā)n缺點q應用的實現(xiàn)一般是基于過程的,一組JSP頁面完成一個業(yè)務流程,如果要進行改動,必須在多個地方進行修改。這樣非常不利于應用擴展和更新。q由于應用不是建立在模塊上,業(yè)務邏輯和表示邏輯混合在JSP頁面中,沒有進行抽象和分離。不利于應用系統(tǒng)業(yè)務的重用和改動。J2EE設計模式(MVC框架)n表示與邏輯分開nView 表示:顯示輸入輸出數(shù)據 (可以是 HTML,jsp,也可以是一個 windows 應用)nModel 業(yè)務邏輯和數(shù)據:基于輸入和定義的業(yè)務流程執(zhí)行計算 或其它操作(javabean or ejb)nController 協(xié)調view 和
34、 model,在它們之間交換數(shù)據(action or servlet)databasesViewControllerModelJ2EE設計模式nMVC 的隱含式 J2EE 實現(xiàn)nView 由 JSP 和 HTML 頁面組成nServlet 可以同時是 controller 和 modelq直接存取數(shù)據databasesJSPsHTMLservletsMVC 實現(xiàn)方法實現(xiàn)方法1J2EE設計模式n將業(yè)務邏輯處理放在 Servlet 之外nHttpServlet 的子類應該僅做 servlet 份內的工作q管理 request、response 及 HttpSession 對象n將業(yè)務邏輯寫在傳統(tǒng)的
35、Java類q僅傳送普通的 Java 類,不是 servlet 相關的類(例如 request, response 或 session)q比 servlet 容易開發(fā)、測試和重用MVC 實現(xiàn)方法實現(xiàn)方法2databaseJSPsservletsobjectsn典型的 J2EE 方案nView 由JSP 和靜態(tài) HTML 組成nController 是 servlet nModel 是 EJBn很象使用傳統(tǒng)的 Java 對象 只是運行在遠程J2EE設計模式MVC 實現(xiàn)方法實現(xiàn)方法3databasesJSPsservletsEJBsn典型的Struts 方案nView 由JSP 和靜態(tài) HTML 組
36、成nController 是 Struts nModel 是 EJB或javabeanJ2EE設計模式MVC 實現(xiàn)方法實現(xiàn)方法4databasesJSPsstrutsEJBsJavaBean應用實例nSun Blueprint PetStorenmyPetStore - EJB versionnJPetStore struts + iBatisn大多數(shù)J2EE應用共享許多任務:q日志, 數(shù)據庫存取, 數(shù)據校驗, 屬性管理, 異常操作, 生成HTMLn不要在每一個項目中重寫這些n不要在同一個項目用不同的方法做這些!n一個 “framework” 設定通用的方式去做這些工作 通過重用代碼 (和技能
37、!)q可能是內部框架 (通過以前的項目)q可能是外部框架(e.g. JADE)技巧技巧使用框架n可以被緩存并可以被所有用戶共享qInitialContext objectnJNDIqEJB Home interfacesn所有用戶都一樣n可以被單獨的用戶緩存qDatabase resultsetsn例如,當你一次只顯示部分數(shù)據時,緩存查詢結果n可以在 servlet 中緩存, 可以在 session bean 中緩存技巧技巧盡可能緩存對象ninit()做盡可能多的工作q只在初始化是執(zhí)行一次n盡可能少地使用 Synchronizeq確保不要 synchronize 整個類n不要用任何實例變量q將被所有在線的用戶使用n不要使用SingleThreadModelq雖然是 thread-safe, 但性能太差n對于非 Java 群體: 不要在 cookies 中存對象q使用 HttpSession 代替技巧技巧Servlet 技巧n保持盡量少的Java代碼qJSP中的Java代碼很難維護和測試q絕對不要將業(yè)務邏輯放在JSP中q編寫 helper classes 從數(shù)據生成HTMLq理想情況下只使用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年江蘇省公務員錄用考試證監(jiān)會計類專業(yè)歷年真題
- 2025年氫氧化亞鎳項目提案報告
- 2025年德語TestDaF聽力專項試卷:德國電影欣賞聽力挑戰(zhàn)
- 城市園林綠化工程設計施工協(xié)議
- 2025年電子商務師(中級)職業(yè)技能鑒定試卷:電商數(shù)據分析工具使用
- 2025年澳門公務員遴選考試行政職業(yè)能力測驗試題
- 網絡交易合作協(xié)議電商業(yè)務合作規(guī)范合同
- 旅游管理文化與遺產保護模擬試題
- 城市公共交通樞紐運營2025年風險評估與城市交通管理體制改革報告
- 手車車輛買賣協(xié)議書
- 網絡安全攻防演練護網工作報告
- 商貿公司保障服務方案
- 國家開放大學本科《商務英語4》一平臺機考真題及答案(第一套)
- 華師大版九年級(初三)科學上冊全套課件
- 形勢與政策臺灣政治生態(tài)分析
- 市政道路及設施零星養(yǎng)護服務技術方案(技術標)
- 藥物色譜分離技術-凝膠色譜(制藥技術課件)
- 2024年中考地理簡答題答題模板
- 農村自建房施工安全建議
- 廣東省深圳市龍崗區(qū)龍嶺中學2024年物理八下期末統(tǒng)考試題及答案解析
- 2024年湖北省丹江口市初中畢業(yè)生適應性考試地理·生物試題
評論
0/150
提交評論