版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Servlet背景知識常用的Web服務器IIS應用程序服務器Apache處理靜態(tài)頁面Tomcat通常的動態(tài)網頁技術CGI(CommonGateWayInterface)API常用的有(NSAPI,ISAPI)ASP(ActiveServerPage)PHP(PersonalHomePage)JSP/Servlet(JavaServerPage)
LAMPtomcat啟動與停止startupshutdowncatalinastartcatalinastopcatalinadebug調試錯誤的時候runexithelp設置環(huán)境變量JAVA_HOMEshutdown.bat小心使用tomcat目錄結構bin:存放各種平臺下啟動和關閉Tomcat的腳本文件。startup.bat是windows下啟動tomcat的文件,shutdown.bat是關閉tomcat的文件。common:在common目錄下的lib目錄,存放Tomcat服務器和所有web應用都能訪問的JAR。shared:在shared目錄下的lib目錄,存放所有web應用能訪問的,但Tomcat不能訪問的JAR。server:在server/webapps目錄中,存放Tomcat自帶的兩個APP-admin和manager應用,來管理Tomcat-web服務用的。work:Tomcat把各種由jsp生成的servlet文件放在這個目錄下。temp:臨時活頁夾,Tomcat運行時候存放臨時文件用的。logs:存放Tomcat的日志文件webapps:web應用的發(fā)布目錄,把java開發(fā)的web站點或war文件放入這個目錄下就可以通過tomcat服務器訪問了。conf:Tomcat的各種配置文件,最重要的是server.xml.Tomcat配置文件conf/server.xml
服務器的主配置文件conf/web.xml
定義所有Web應用的配置 (缺省的Servlet定義和MIME類型定義)conf/tomcat-user.xml
定義了tomcat用戶的信息(用于權限與安全)conf/server.xml頂層類元素:位于整個配置文件的頂層,<Server>;連接器類元素[Connectors]:客戶和服務(容器類元素)間的通訊接口。接受客戶請求,返回響應結果;<Connector>容器類元素[Containers]:處理客戶請求并且生成響應結果,包含3個:<Engine><Host><Context>嵌套類元素[NestedComponents]:可以加入到容器中的元素,包括:<logger><Valve><Realm>等一個<Server>包含一個或多個<Service>,一個<Service>包含唯一一個<Engine>和一個或多個<Connector>,多個<Connector>共享一個<Engine>;一個<Engine>包含多個<Host>,每個<Host>定義一個虛擬主機,包含一個或多個web應用<Context>;<Context>元素是代表一個在虛擬主機上運行的Web應用。Pleasenotethatfortomcat5.x,unliketomcat4.x,itisNOTmendedtoplace<Context>elementsdirectlyintheserver.xmlfile.Instead,putthemintheMETA-INF/context.xmldirectoryofyourWARfileortheconfdirectoryasdescribedabove.什么是MIMEMultipurposInternetMailExtension指明白傳送內容的格式最早用于郵件附件server.xml的層次結構<Serverport="8005"shutdown="SHUTDOWN"debug="0">
<Servicename="Tomcat-Standalone">
<ConnectorclassName="HttpConnector"port="80"/><Enginename="Standalone"defaultHost="localhost"debug="0">
<LoggerclassName="FileLogger"prefix="catalina_log."/>
<RealmclassName="MemoryRealm"/>
<Hostname="localhost"debug="0"appBase="webapps"unpackWARs="true">
<ValveclassName="AccessLogValve"directory="logs"/>
<LoggerclassName="FileLogger"refix="localhost_log."/>
<Contextpath=""docBase="ROOT"/>
<Contextpath="/manager"docBase="manager"privileged="true"/>
<Contextpath="/myapp"docBase="t"debug="0"reloadable="true"/>
</Host> </Engine></Service></Server>HTTP協(xié)議基礎HTTP(HypertextTransfer
Protocol,超文本傳輸協(xié)議)HTTP是以明文方式發(fā)送數(shù)據(jù)的用于從WWW服務器傳輸超文本到本地瀏覽器的傳輸協(xié)議。HTTP協(xié)議是以TCP/IP為基礎的高層協(xié)議?,F(xiàn)在廣泛使用的版本HTTP/1.1HTTP協(xié)議基礎GET/latest.htmlHTTP/1.1
Host:
Content-Type:text/html
…
{空行}
POST/servlet/servHTTP/1.1
Host:
Content-Type:application/x-www-form-urlencoded
Content-Length:32
username=billgates&password=hehe
HTTP/1.1200OK
Date:Fri,31Dec200310:23:34GMT
Content-Type:text/html
Content-length:280
<html>
……
</html>WebApplication的概念WebApplicationNameWEB-INFweb.xml該webapp的配置文件lib該webapp用到的庫文件classes存放編譯好的servletMETA-INF存放該webapp的上下文信息,符合J2EE標準WebApplication可以直接放在webapp下面也可以通過配置文件指定到其他目錄<host>里面<Contextpath=“/虛擬路徑名“docBase=”目錄位置"debug="0"reloadable="true"/>Tomcat的目錄結構bin/二進制可執(zhí)行文件和腳本
catalinastartstop catalinadebugrunexitcommon/Catalina本身和web應用可加載的類目錄conf/配置文件目錄logs/日志目錄server/服務器所需的類庫目錄shared/ WebApp共享的類庫webapps/Web應用所存放的目錄applicationswork/Tomcat的工作目錄(存放jsp產生的class文件)temp/ 存放臨時產生的文件Servlet簡介Servlet是服務器小應用程序用來完成B/S架構下,客戶端請求的響應處理平臺獨立,性能優(yōu)良,能以線程方式運行ServletAPI為Servlet提供了統(tǒng)一的編程接口Servlet一般在容器中運行常見的Servlet容器Tomcat(其下載、安裝和運行請參考視頻文件)Jetty/ResinServlet示例HelloWorldServlet.java需求:
編寫一個生成純文本的簡單的Servlet類。目的:
了解Servlet的基本概念在web.xml的配置
<servlet><servlet-name>HelloWorldServlet</servlet-name><servlet-class>HelloWorldServlet</servlet-class></servlet>
<servlet-mapping><servlet-name>HelloWorldServlet</servlet-name><url-pattern>/HelloWorldServlet</url-pattern></servlet-mapping>webapp根路徑(url)必須/開頭
web.xml/aaa->hello->servletclass->web-inf/classes->doGetl創(chuàng)建ServletXXXextendsHttpServletOverridedoGetdoPostcopytoWEB-INF/classesweb.xml<servlet><servlet-name><servlet-class></servlet><servlet-mapping><url-pattern>/restartserverServlet的生命周期生命全過程:
加載ClassLoader
實例化new
初始化init(ServletConfig)
處理請求servicedoGetdoPost
退出服務destroy()只有一個對象API中的過程:
init()//只執(zhí)行一次,第一次初始化的時候
publicvoidinit(ServletConfig
config)throwsServletException
service()
publicvoidservice(ServletRequest
req,ServletResponse
res)throwsServletException,java.io.IOException
destroy()//webapp退出的時候
publicvoiddestroy()TestLifeCycleServlet.javainitinit(servletconfigconfig)this.config=configinit();重寫必須得super.init(config)不然不能使用this.getServletConfig當然也就不能用getInitParameter();我們只需要重寫init();Servlet編程接口GenericServlet是所有Servlet的鼻祖用于HTTP的Servlet編程都通過繼承javax.servlet.http.HttpServlet實現(xiàn)請求處理方法:(分別對應http協(xié)議的7種請求)
1、doGet 響應Get請求,常用
2、doPost 響應Post請求,常用
3、doPut 用于http1.1協(xié)議
4、doDelete 用于http1.1協(xié)議
5、doHead 僅響應Get請求的頭部。
6、doOptions 用于http1.1協(xié)議
7、doTrace 用于http1.1協(xié)議實例的個數(shù):
在非分布的情況下,通常一個Servlet在服務器中有一個實例
示例:使用doGet和doPost方法處理請求要求:
編寫一個帶有doGet和doPost方法的Servlet目的:
掌握基本的Servlet請求處理技術要點:
publicvoiddoGet(HttpServletRequestreq,HttpServletResponseres)
throwsServletException,IOException
publicvoiddoPost(HttpServletRequestreq,HttpServletResponseres)
throwsServletException,IOException讀取指定的參數(shù):ThreeParams.html/ThreeParams.java讀取所有的參數(shù):ShowParameters.java/ShowParametersForm.html獲取表單信息通過HttpServletRequest的getParameter()方法來獲得客戶端傳遞過來的數(shù)據(jù)getParameter()方法返回一個字符串類型的值getParameterNames()返回Enumeration類型的值,getParameterValues()返回一個字符串數(shù)組不要通過本地文件訪問ThreeParams.javaShowParameters.javaHTTP的狀態(tài)處理HTTP是無狀態(tài)有狀態(tài):Server知道Client以前在我這兒做過什么事兒處理CookieHttp協(xié)議的無連接性要求出現(xiàn)一種保存C/S間狀態(tài)的機制Cookie:保存到客戶端的一個文本文件,與特定客戶相關Cookie以“名-值”對的形式保存數(shù)據(jù)創(chuàng)建Cookie:newCookie(name,value)可以使用Cookie的setXXX方法來設定一些相應的值setName(Stringname)/getName()setValue(Stringvalue)/getValue()setMaxAge(intage)/getMaxAge()利用HttpServletResponse的addCookie(Cookie)方法將它設置到客戶端利用HttpServletRequest的getCookies()方法來讀取客戶端的所有Cookie,返回一個Cookie數(shù)組設置CookieSetCookies.java讀取CookieShowCookies.javaWeb上保持狀態(tài)的手段:
cookiesessionapplicationpersistence1:服務器可以向客戶端寫內容2:只能是文本內容3:客戶端可以阻止服務器寫入4:只能拿自己webapp寫入的東西5:Cookie分為兩種 屬于窗口/子窗口(放在內存中的) 屬于文本(有生命周期的)6:一個servlet/jsp設置的cookies能夠被
同一個路徑下面或者子路徑下面的
servlet/jsp讀到(路徑=URL)
(路徑!=真實文件路徑)會話跟蹤Session在某段時間一連串客戶端與服務器端的“交易”在Jsp/Servlet中,如果瀏覽器不支持Cookie,可以通過URL重寫來實現(xiàn),就是將一些額外數(shù)據(jù)追加到表示會話的每個URL末尾,服務器在該標示符與其存儲的有關的該會話的數(shù)據(jù)之間建立關聯(lián)。如hello.jsp?jsessionid=1234可以通過程序來終止一個會話。如果客戶端在一定時間內沒有操作,服務器會自動終止會話。通過HttpSession來讀寫Session規(guī)則如果瀏覽器支持Cookie,創(chuàng)建Session的時候會把SessionID保存在Cookie里如果不支持Cookie,必須自己編程使用URL重寫的方式實現(xiàn)Sessionresponse.encodeURL()轉碼URL后面加入SessionIdSession不象Cookie擁有路徑訪問的問題同一個application下的servlet/jsp可以共享同一個session,前提示同一個客戶端窗口.7272HttpServletRequest中的Session管理方法getRequestedSessionId():返回隨客戶端請求到來的會話ID??赡芘c當前的會話ID相同,也可能不同。getSession(booleanisNew):如果會話已經存在,則返回一個HttpSession,如果不存在并且isNew為true,則會新建一個HttpSessionisRequestedSessionIdFromCookie():當前的SessionID如果是從Cookie獲得,為trueisRequestedSessionIdFromURL():當前SessionID如果是由URL獲得,為trueisRequestedSessionIdValid():如果客戶端的會話ID代表的是有效會話,則返回true。否則(比如,會話過期或根本不存在),返回falseHttpSession的常用方法getAttributeNames()/getAttribute()getCreateTime()getId()getMaxInactiveInterval()invalidate()isNew()setAttribute()setMaxInactivateInterval()SessionInfoServlet.javaShowSession.java
URLSession.javaSession總結服務器的一塊內存(存key-value)和客戶端窗口對應(子窗口)(獨一無二)客戶端和服務器有對應的SessionID客戶端向服務器端發(fā)送SessionID的時候兩種方式:cookie(內存cookie)rewritenURL瀏覽器禁掉cookie,就不能使用session(使用cookie實現(xiàn)的session)如果想安全的使用session(不論客戶端是否禁止cookie),只能使用URL重寫(大大增加編程負擔),所以很多網站要求客戶端打開cookieApplication用于保存整個WebApplication的生命周期內都可以訪問的數(shù)據(jù)在API中表現(xiàn)為ServletContext通過HttpServlet的getServletContext方法可以拿到通過ServletContext的get/setAttribute方法取得/設置相關屬性TestServletContext.javaServlet中的請求轉發(fā)RequestDispatcher接口對象允許將請求轉發(fā)到其他服務器資源通過RequestDispatcher的forward(HttpServletRequest,HttpServletResponse)方法可以將請求轉發(fā)通過ServletContext的getRequestDispatcher(Stringurl)方法來獲得RequestDispatcher對象,并且指定轉發(fā)的目標url資源可以通過HttpServletRequest的setAttribute(Stringname,Stringvalue)來設置需要傳遞的參數(shù),然后在代理servlet中就可以使用HttpServerRequest的getAttribute(Stringname)來獲得對應的值數(shù)據(jù)庫處理以及在Servlet中使用Bean廣義javabean=普通java類狹義javabean=符合SunJavaBean標準的類在Servlet中使用Bean和在通常程序中使用Bean類似屬性名稱第一個字母必須小寫,一般private,
比如:privateproductId一般具有gettersandsetters要具有一個參數(shù)為空的構造方法但Bean不應具有GUI表現(xiàn)一般是用來實現(xiàn)某一業(yè)務邏輯或取得特定結果示例:連接數(shù)據(jù)庫ShowRs.javaShowRsUseBean.java如何掌握Servlet創(chuàng)建Servlet從HttpServlet繼承重寫doGet/doPost方法在web.xml中配置servlet生命周期Cookie/Session/Application的概念請求轉發(fā)使用javabeanFilterandListenerServlet的多線程機制
Servlet體系結構是建立在Java多線程機制之上的,它的生命周期是由Web容器負責的。當客戶端第一次請求某個Servlet時,Servlet容器將會根據(jù)web.xml配置文件實例化這個Servlet類。當有新的客戶端請求該Servlet時,一般不會再實例化該Servlet類,也就是有多個線程在使用這個實例。Servlet容器會自動使用線程池等技術來支持系統(tǒng)的運行JSPJSP簡介JSPJavaServerPages擁有servlet的特性與優(yōu)點(本身就是一個servlet)直接在HTML中內嵌JSP代碼JSP程序由JSPEngine先將它轉換成Servlet代碼,接著將它編譯成類文件載入執(zhí)行只有當客戶端第一次請求JSP時,才需要將其轉換、編譯優(yōu)點:優(yōu)良的性能
優(yōu)于CGI,PHP,ASP平臺無關性
操作系統(tǒng)無關,Web服務器無關可擴展性
tag的擴展機制,簡化頁面開發(fā)HelloWorld.jsp
HW.jspjavaclassJSP編程—基本語法JSP傳統(tǒng)語法DeclarationScriptletExpressionCommentDirectivesAction動作指令內置對象JSTLJSFJSP編程Declaration基本語法:<%!%>說明:在此聲明的變量、方法都會被保留成唯一的一份,直到JSP程序停止執(zhí)行例:<%!inti;publicvoidsetName(){……}%>AccessCounts.jspScriptlet基本語法:<%程序代碼區(qū)%>可以放入任何的Java程序代碼例:<%for(inti=0;i<10,i++){ ……}%>注釋格式:<%--……--%><%//……%><%/*……*/%>BGColor.jsp表達式基本語法:<%=……%>=后面必須是字符串變量或者可以被轉換成字符串的表達式不需要以;結束只有一行例:<%=“helloworld”%><%=i+1%><%=request.getParameter(“name”)%>Expressions.jspDirectiveDirective(編譯指令)相當于在編譯期間的命令格式:<%@Directive屬性=“屬性值”%>常見的Directive:pageincludetaglibDirective指明與JSPContainer的溝通方式基本格式:<%@pagelanguage=“scriptlanguage”| extends=“className”| import=“importList”| buffer=“none|kbsize”|--none:不緩沖,默認8k session=“true|false”|--是否可以使用session,默認true autoFlush=“true|false”--緩沖器是否自動清除,默認true isThreadSafe=“true|false”|--默認false(永遠不要設成true) info=“infoText”|--任何字符
errorPage=“errorPageUrl”| isErrorPage=“true|false”| contentType=“contentTyepInfo”|
pageEncoding=“gb2312”%>TestDirective.jspTestErr.jsp/ErrPage.jsp–讀視頻Directive--include將指定的JSP程序或者HTML文件包含進來格式:<%@includefile=“fileURL%>JSPEngine會在JSP程序的轉換時期先把file屬性設定的文件包含進來,然后開始執(zhí)行轉換及編譯的工作。(原封不動的把文件的代碼copy到該位置,然后進行轉換和編譯,只生成一個java和class)限制:不能向fileURL中傳遞參數(shù)不能abc.jsp?user=aaaTestBar.jsp/TitleBar.jspActionAction(動作指令)在運行期間的命令常見的:jsp:useBeanjsp:setPropertyjsp:getPropertyjsp:includejsp:forwardjsp:paramjsp:plugin嵌入appletjsp:include/jsp:param用于動態(tài)包含JSP程序或HTML文件等除非這個指令會被執(zhí)行到,否則它是不會被Tomcat等JSPEngine編譯。格式:<jsp:includepage=“URLSpec”flush=“true”/><jsp:includepage=“URLSpec”flush=“true”> <jsp:paramname=“ParamName”value=“paramValue”/> </jsp:include>jsp:param用來設定include文件時的參數(shù)和對應的值例如:date.jsp/include.jsppute.jsp/divide.jsp/multiply.jsp和編譯指令include的區(qū)別include編譯指令是在JSP程序的轉換時期就將file屬性所指定的程序內容嵌入,然后再編譯執(zhí)行;而include指令在轉換時期是不會被編譯的,只有在客戶端請求時期如果被執(zhí)行到才會被動態(tài)的編譯載入Include不能帶參數(shù),而<jsp:include>可以動態(tài)包含的文件和被包含文件用的是同一個request對象jsp:forward/jsp:param用于將一個jsp的內容傳送到page所指定的JSP程序或者Servlet中處理(URL)格式:<jsp:forwardpage=“urlSpec”flush=“true”/><jsp:forwardpage=“urlSpec”> <jsp:paramname=“paramName”value=“paramValue”/> </jsp:forward><jsp:param>用于指定參數(shù)和其對應的值例如:test.jspforward.jsp/forforward.jspforward1.jsp/forforward1.jsp(withparameters)Forward的頁面和forward到的頁面用的是同一個request與此相對應的是response.sendRedirect<jsp:forward>與response.sendRedirect的區(qū)別<jsp:forward>使用同一個requestforward后的語句不會繼續(xù)發(fā)送給客戶端速度快服務器內部轉換,可以傳參數(shù)response.sendRedirect是不同的requestsend后的語句會繼續(xù)執(zhí)行,除非return速度慢需要到客戶端的往返,可以轉到任何頁面可以傳參數(shù),直接寫在url后面jsp:useBean通過jsp:useBean,可以在JSP中使用定義好的BeanBean的基本要素:必須要有一個不帶參數(shù)的構造器。在JSP元素創(chuàng)建Bean時會調用空構造器Bean類應該沒有任何公共實例變量,也就是說,不允許直接訪問實例變量,變量名稱首字母必需小寫通過getter/setter方法來讀/寫變量的值,并且將對應的變量首字母改成大寫基本用法:test.jsp/CounterBean.java不要使用裸體類(規(guī)范要求)jsp:useBean(con.)jsp:useBean各項參數(shù)含義:id:對象實例名稱scope:Bean作用的范圍,默認為page,對整個jsp頁面有效class:Bean類名稱(全名)type:Bean實例類型,可以是本類,或其父類,或實現(xiàn)的接口,默認為本類Scope各項參數(shù)的意義:page:僅涵蓋使用JavaBean的頁面(PageBean.jsp/CounterBean.java)request:有效范圍僅限于使用JavaBean的請求(RequestBean.jsp/RequestBean2.jsp/CounterBean.java)session:有效范圍在用戶整個連接過程中(整個會話階段均有效)(SessionBean.jsp/Session2.jsp/CounterBean.java)application:有效范圍涵蓋整個應用程序。也就是對整個網站均有效(Application.jsp/Application2.jsp/CounterBean.java)jsp:useBean(con.)jsp:setProperty的格式:<jsp:setPropertyname=“beanName” property=“propertyName”|property=“*” value=“propertyvalue”|param=“paramName”/>相當于beanName.setPropertyName(value)方法調用(setXxx()方法)jsp:getProperty的格式:<jsp:getPropertyname=“beanName”property=“propertyName”/>相當于beanName.getPropertyName()方法調用(getXxx()方法)jsp:useBean(con.)建立表單參數(shù)和Bean屬性之間的關聯(lián)通過param指定表單元素的名稱,通過perperty指定對應的Bean屬性名稱,由此建立這兩個變量的關聯(lián)(SaleEntry.jsp/SaleEntry.java,用url傳遞參數(shù))通過*來設置所有屬性和輸入參數(shù)之間的關聯(lián)
(SayHelloBean.html/SayHelloBean.jsp/HelloBean.java)在建立Bean屬性和表單參數(shù)之間的對應關系時,服務器會將對應的參數(shù)自動轉換成和屬性類型匹配的數(shù)據(jù)初步解釋編碼問題JSP內置對象JSP的內置對象outrequestresponsepageContext用的很少sessionapplicationconfig用的很少exceptionPage用的很少JSP編程outOut內置對象是一個緩沖的輸出流,用來給客戶端返回信息。它是javax.servlet.jsp.JspWriter的一個實例典型應用:向客戶端輸出內容例:向客戶端輸出一個字符串“HelloWorld”(HelloWorld.jsp)JSP--out常用方法:println():向客戶端輸出各種類型數(shù)據(jù)newLine():輸出一個換行符close():關閉輸出流flush():輸出緩沖區(qū)里的數(shù)據(jù)clearBuffer():清除緩沖區(qū)里的數(shù)據(jù),同時把數(shù)據(jù)輸出到客戶端clear():清除緩沖區(qū)里的數(shù)據(jù),但不把數(shù)據(jù)輸出到客戶端getBufferSize():返回緩沖區(qū)的大小JSP編程--requestrequest內置對象表示的是調用JSP頁面的請求。通常,request對象是javax.servlet.http.HttpServletRequest接口的一個實例典型應用:通過request.getParameter(“paramName”)可以獲得Form提交過來的參數(shù)值JSP--request可以用此對象取得請求的Header、信息(如瀏覽器版本、語言和編碼等)、請求的方式(get/post)、請求的參數(shù)名稱、參數(shù)值、客戶端的主機名稱等常用方法:getMethod():返回客戶端向服務器端傳送數(shù)據(jù)的方法getParameter(StringparamName):返回客戶端向服務器端傳送的參數(shù)值,該參數(shù)由paramName指定getParameterNames():獲得客戶端傳送給服務器端的所有參數(shù)的名字,結果是一個枚舉類型數(shù)據(jù)(Enumeration)getParameterValues(Stringname):獲得指定參數(shù)的所有值,由name指定getRequestUR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勘察項目項目管理農村環(huán)境保護與勘察考核試卷
- 冷藏車運輸企業(yè)運營效率提升策略考核試卷
- 健身器材行業(yè)法律法規(guī)與合規(guī)管理考核試卷
- 太陽能光伏電站遠程監(jiān)控與診斷考核試卷
- 多幣種國際支付客戶關系管理服務考核試卷
- 廚房金屬器具的結構優(yōu)化與仿真分析考核試卷
- 動漫產業(yè)與區(qū)塊鏈技術應用考核試卷
- 化學品企業(yè)人力資源績效評估與激勵考核試卷
- 體育賽事官方酒店服務與合作考核試卷
- 雜技鄉(xiāng)土課程課程設計
- 2024年石家莊正定國際機場改擴建工程合同
- 2025年度愛讀書學長定制化閱讀計劃合同2篇
- 河南省信陽市浉河區(qū)9校聯(lián)考2024-2025學年八年級上學期12月月考地理試題(含答案)
- 快速康復在骨科護理中的應用
- 國民經濟行業(yè)分類和代碼表(電子版)
- ICU患者外出檢查的護理
- 公司收購設備合同范例
- GB/T 44823-2024綠色礦山評價通則
- 廣東省潮州市2023-2024學年高二上學期語文期末考試試卷(含答案)
- 2024年光伏發(fā)電項目EPC總包合同
- 漂亮的可編輯顏色魚骨圖PPT模板
評論
0/150
提交評論