版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Graphic
Design
TrainingAndroid網(wǎng)絡(luò)通信技術(shù)-Tomcat與ServletTRAININGCOURSE.12014-07——主講人:唐?!菊鲁棠繕?biāo)】(IDE)集成開(kāi)發(fā)環(huán)境的配置Servlet相關(guān)概念什么是Servlet理解容器(Servlet容器,JSP容器)一個(gè)Servlet開(kāi)發(fā),部署,運(yùn)行Servlet的生命周期及生命周期中涉及的方法讀取Servlet的配置參數(shù)請(qǐng)求類(lèi)型處理請(qǐng)求(post,get)處理表單Post請(qǐng)求解決中文亂碼問(wèn)題處理表單Get請(qǐng)求Get請(qǐng)求地址欄傳參GET請(qǐng)求與POST請(qǐng)求區(qū)別處理文件域表單(IDE)集成開(kāi)發(fā)環(huán)境的配置EclipseJ2EE3.2.2+myeclipse5.1.0+tomcat5.5.26【配置】servlet是提供基于協(xié)議的請(qǐng)求/響應(yīng)服務(wù)的java應(yīng)用程序,可以生成動(dòng)態(tài)的WEB頁(yè)面.Servlet本質(zhì)就是cgi,動(dòng)態(tài)產(chǎn)生網(wǎng)頁(yè)程序的技術(shù)【什么是servlet】Servlet的功用
·讀取客戶程序發(fā)送來(lái)的顯式數(shù)據(jù)(表單數(shù)據(jù))
·讀取客戶程序發(fā)送來(lái)的隱式數(shù)據(jù)(請(qǐng)求報(bào)頭)
·生成相應(yīng)的結(jié)果
·發(fā)送顯式的數(shù)據(jù)給客戶程序(HTML)
·發(fā)送隱式的數(shù)據(jù)給客戶程序(狀態(tài)代碼和響應(yīng)報(bào)頭)【Servlet的功用】在J2EE中跟Servlet相關(guān)的一個(gè)包是javax.servlet,其中最基本的Servlet被聲明為一個(gè)接口javax.servlet.Servlet,這是Servlet最高層次的一個(gè)抽象,它是和網(wǎng)絡(luò)協(xié)議無(wú)關(guān)的。同樣在javax.servlet中,實(shí)現(xiàn)了一個(gè)類(lèi)javax.servlet.GenericServlet,這個(gè)類(lèi)實(shí)現(xiàn)了Servlet接口,也是和協(xié)議無(wú)關(guān)的。而這個(gè)類(lèi)是構(gòu)建其他和協(xié)議相關(guān)的Servlet子類(lèi)型的通用的父類(lèi)(如HttpServlet)。Servlet所適用的網(wǎng)絡(luò)協(xié)議可以是多種多樣的,比如HTTP,F(xiàn)TP,SMTP,TELNET等,但是就目前而言,只有HTTP服務(wù)已經(jīng)形成了標(biāo)準(zhǔn)的Java組件。對(duì)應(yīng)的軟件包有兩個(gè)javax.servlet.http和javax.servlet.jsp,分別對(duì)應(yīng)我們要講解的Servlet和JSP編程。我們通常所說(shuō)的Servlet編程主要就是指針對(duì)HTTP的Servlet編程,用到的就是javax.servlet.http包中的類(lèi)(典型的就是HttpServlet類(lèi)),實(shí)際上JavaServlet編程的概念要更廣一些,在這里我們也就約定俗成的使用Servlet來(lái)指代HTTPServlet的編程。【Servlet】目前Servlet引擎一般是第三方的插件,它通過(guò)一定的方法連接到Web服務(wù)器,Servlet引擎把它識(shí)別為Servlet請(qǐng)求的那些HTTP請(qǐng)求截獲下來(lái)處理,而其他的HTTP請(qǐng)求由Web服務(wù)器按照通常的方式來(lái)處理,Servlet引擎會(huì)裝載合適的Servlet到內(nèi)存中,如果Servlet還沒(méi)有運(yùn)行的話,會(huì)分配一個(gè)可以使用的線程來(lái)處理請(qǐng)求,再把Servlet的輸出返回到發(fā)出請(qǐng)求的Web客戶機(jī)。Servlet在服務(wù)器內(nèi)部運(yùn)行,通過(guò)客戶端提交的請(qǐng)求啟動(dòng)運(yùn)行【Servlet引擎(容器)】Servlet包含兩個(gè)包:javax.servlet稱為GenericServletjavax.servlet.http稱為HttpServlet【Servlet體系結(jié)構(gòu)】Servlet包的層次結(jié)構(gòu)【Servlet類(lèi)體系結(jié)構(gòu)】用Java編寫(xiě)的服務(wù)器端程序運(yùn)行在Web服務(wù)器上執(zhí)行服務(wù)器端處理HttpServlet是Servlet的一種,是專(zhuān)門(mén)用來(lái)處理WEB應(yīng)用的服務(wù)端組件,他在原來(lái)的基礎(chǔ)上添加了專(zhuān)門(mén)處理HTTP協(xié)議幾種方法(doGet、doPost、doHead等等);并且重寫(xiě)service這個(gè)Servlet中核心方法,根據(jù)Http頭部請(qǐng)求信息分別調(diào)用各種處理方法(doGet、doPost等)可發(fā)送Http請(qǐng)求的工程Web服務(wù)器TomcatHTTP請(qǐng)求HTTP響應(yīng)Servlet【HttpServlet特點(diǎn)】publicclassHelloWorldServletextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException{response.setContentType("text/html");PrintWriterout=response.getWriter();out.println("<HTML>");out.println("<HEAD>");out.println("<TITLE>HelloWorld</TITLE>");out.println("</HEAD>");out.println("<BODY>");out.println("<B>Hello,World</B>");out.println("</BODY>");out.println("</HTML>");out.close();}}【Servlet開(kāi)發(fā)】部署:
將編譯后的Servlet類(lèi),拷貝到發(fā)布目錄下WEB-INF/classes下,如果屬于包中類(lèi),需要按照包的結(jié)構(gòu)建立目錄;編輯WEB-INF下web.xml,在相應(yīng)位置添入如下:
<servlet><servlet-name>servlet名稱</servlet-name><servlet-class>對(duì)應(yīng)的類(lèi)</servlet-class></servlet>…<servlet-mapping><servlet-name>servlet名稱</servlet-name><url-pattern>/servleturl1</url-pattern></servlet-mapping>…運(yùn)行:
在瀏覽器輸入發(fā)布的URL+servlet映射的地址即可【Servlet部署,運(yùn)行】調(diào)用service()方法
服務(wù)器加載Servlet服務(wù)器創(chuàng)建Servlet類(lèi)的實(shí)例調(diào)用Servlet實(shí)例的init()方法收到請(qǐng)求service()方法處理請(qǐng)求并將輸出結(jié)果返回客戶端Servlet等待下一個(gè)請(qǐng)求或由服務(wù)器卸載Servlet在服務(wù)器調(diào)用 方法后被卸載【Servlet的生命周期】【Servlet的生命周期】Servlet生命周期Servlet服務(wù)器(容器)負(fù)責(zé)管理Servlet的生命周期三個(gè)階段涉及的方法Init()service()[doPost(),doGet()]destroy()service階段使用請(qǐng)求/響應(yīng)方式進(jìn)行通信【Servlet生命周期中的方法】服務(wù)器構(gòu)造Servlet實(shí)例后調(diào)用執(zhí)行Servlet初始化–創(chuàng)建或加載Servlet在處理請(qǐng)求時(shí)使用的對(duì)象可以覆蓋init()方法,添加其他初始化內(nèi)容【init()方法】service()方法一般不去覆蓋它;service()方法用于分析用戶的請(qǐng)求,根據(jù)用戶的請(qǐng)求類(lèi)型;調(diào)用不同的處理方法;如:doPost(),doGet()等通常我們重寫(xiě)的是doPost()或doGet方法【service()方法】卸載Servlet時(shí),調(diào)用destroy()方法釋放獲得的資源服務(wù)器在完成所有服務(wù)調(diào)用之后,或者在經(jīng)過(guò)服務(wù)器特定的秒數(shù)之后調(diào)用destroy()方法【destroy()方法】在Servlet中定義成員變量;使用時(shí)一定要注意;根據(jù)Servlet的生命周期,可以知道,一個(gè)Servlet在web應(yīng)用只有一個(gè)實(shí)例,這個(gè)實(shí)例被多個(gè)線程共享?!咀⒁?Servlet中的成員變量的使用】getServletConfig()//獲取Servlet配置對(duì)象getInitParameter()getServletContext()//獲取Servlet上下文即Servlet環(huán)境getServletInfo()//獲取Servlet描述信息【HttpServlet其他方法】<servlet><servlet-name>servlet名稱</servlet-name><servlet-class>對(duì)應(yīng)的類(lèi)</servlet-class><init-param><param-name> pageSize</param-name><param-value> 10</param-value></init-param></servlet>//此servlet依賴初始參數(shù)才能運(yùn)行classLoginServletextendsHttpServlet{StringpageSize;//第一種:在init時(shí)讀入
publicvoidinit(ServletConfigsc){
pageSize=sc.getInitParameter(“pageSize”); //aa=sc.getInitParameter(“aa”);}//第二種:該類(lèi)中其他地方
publicvoiddoGet(HttpServletRequestreq,HttpServletResponsersp){ServletConfigsc=this.getServletConfig();strURL=sc.getInitParameter(“pageSize”);}}【讀取配置參數(shù)】servlet主要用于處理用戶請(qǐng)求;生成動(dòng)態(tài)網(wǎng)頁(yè);而用戶的請(qǐng)求有多種,那么servlet如何處理不同請(qǐng)求呢?在HttpServlet類(lèi)中有幾個(gè)方法;可以在自定義的servlet中重寫(xiě)對(duì)應(yīng)的方法,去處理客戶對(duì)應(yīng)的請(qǐng)求;HttpServlet處理請(qǐng)求的方法有:doHeader //用于處理HEADER請(qǐng)求doGet //用于處理GET請(qǐng)求,也可以自動(dòng)的支持HEADER請(qǐng)求doPost //用于處理POST請(qǐng)求doPut //用于處理PUT請(qǐng)求doDelete //用于處理DELETE請(qǐng)求【相關(guān)請(qǐng)求】雖然請(qǐng)求的種類(lèi)較多,Servlet也提供了對(duì)應(yīng)的處理方法;但在目前的應(yīng)用中,主要是Get與Post請(qǐng)求;Post請(qǐng)求主要是由用戶提交表單(且表單是以post方式提交)時(shí)產(chǎn)生的請(qǐng)求;Get請(qǐng)求主要是如:打開(kāi)IE瀏覽器直接在地址欄輸入Servlet的訪問(wèn)地址時(shí)產(chǎn)生的請(qǐng)求;表單也可以以get方式提交產(chǎn)生Get請(qǐng)求;【Post與Get請(qǐng)求】表單是HTML中使用最廣泛的傳遞信息的手段,也是用戶與系統(tǒng)交互主要方式;撐握Servlet與表單的交互,就在客戶端與服務(wù)器之間架起了一座橋梁。首先我們來(lái)處理以post提交表單的請(qǐng)求(即post請(qǐng)求):HTML中請(qǐng)單元素如:<formname=“form1”method=“POST”
action=“/test2/servlet/NormFormPostServlet”>其中method用于設(shè)置表單提交方式;action用于指定表單提交給誰(shuí)處理.【處理表單POST請(qǐng)求】【表單頁(yè)】<html><head><title>普通POST表單</title></head><body><center><formname="form1"method="POST"action="/test2/servlet/NormFormPostServlet"><tablewidth="100%"border="1"><tr><tdwidth="30%"align="right">用戶名:</td><tdwidth="70%"><inputname="suser"type="text"id="suser"></td></tr><tr><tdalign="right">密
碼:</td><td><inputname="spwd"type="password"id="spwd"></td></tr><tr><tdalign="right">性
別:</td><td><inputtype="radio"name="ssex"value="1">
男
<inputtype="radio"name="ssex"value="2">
女</td></tr>【表單頁(yè)代碼】<tr><tdalign="right">學(xué)
歷:</td><td><selectname="sxl"id="sxl"><optionvalue="11">小學(xué)</option><optionvalue="12">初中</option><optionvalue="13">高中</option><optionvalue="14">大學(xué)</option></select></td></tr><tr><tdalign="right">愛(ài)
好:</td><td><inputname="sah"type="checkbox"id="sah"value="21">上網(wǎng)
<inputname="sah"type="checkbox"id="sah"value="22">游戲
<inputname="sah"type="checkbox"id="sah"value="23">聊天
<inputname="sah"type="checkbox"id="sah"value="24">旅游
<inputname="sah"type="checkbox"id="sah"value="25">逛街</td></tr><tr><tdalign="right">簡(jiǎn)
介:</td><td><textareaname="sjj"id="sjj">這個(gè)家伙很懶...</textarea></td></tr><tr><tdcolspan="2"align="center"><inputtype="submit"name="Submit"value="提交"> <inputtype="reset"name="Submit2"value="重置"></td></tr></table></form></center></body></html>【表單頁(yè)代碼(續(xù))】表單以POST方式提交,即POST請(qǐng)求;servlet調(diào)用doPost()處理;調(diào)用doPost()時(shí)系統(tǒng)會(huì)傳入兩個(gè)參數(shù)HttpServletRequest對(duì)象封裝請(qǐng)求中數(shù)據(jù)(HTTP頭部)及客戶端信息(如:客戶機(jī)的IP地址等)HttpServletResponse客戶端響應(yīng)(如輸出顯示數(shù)據(jù))【doPost方法】獲取post請(qǐng)求提交的數(shù)據(jù)方法:Stringrequest.getParameter(“表單元素名”);//獲取用戶在表單輸入的數(shù)據(jù)(如:用戶名,密碼等);其表單元素名在表單中只對(duì)應(yīng)一個(gè)輸入;如表單元素名對(duì)應(yīng)多個(gè)表單中元素,用此方法則只能獲取第一個(gè)輸入;String[]request.getParameterValues(“表單元素名”);//獲取用戶在表單輸入的數(shù)據(jù)(如:愛(ài)好等);其中表單元素名在表單中對(duì)應(yīng)多個(gè)元素;其它方法:Stringrequest.getRemoteAddr()
//獲取客戶端IPStringrequest.getScheme()
//獲取協(xié)議名Stringrequest.getServerName()
//獲取ip或機(jī)器名或域名Stringrequest.getServerPort()
//獲取端口號(hào)Stringrequest.getContextPath()
//獲取上文路徑名request.setCharacterEncoding(arg0)//設(shè)置request對(duì)象的數(shù)據(jù)字符集【HttpServletRequest方法】publicclassNormFormPostServletextendsHttpServlet{ publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ //獲取表單數(shù)據(jù). Stringsuser=request.getParameter("suser"); Stringspwd=request.getParameter("spwd"); Stringssex=request.getParameter("ssex"); Stringsxl=request.getParameter("sxl");
String[]sah=request.getParameterValues("sah"); Stringsjj=request.getParameter("sjj"); //輸出顯示在網(wǎng)頁(yè)上.
response.setContentType("text/html"); PrintWriterout=response.getWriter(); out.println("用戶名:"+suser+"<br>"); out.println("密碼:"+spwd+"<br>"); out.println("性別:"+ssex+"<br>"); out.println("學(xué)歷:"+sxl+"<br>");
for(inti=0;i<sah.length;i++){out.println("愛(ài)好:"+sah[i]+"<br>");} out.println("簡(jiǎn)介:"+sjj+"<br>"); }}【處理表單的Servlet代碼】上面servlet在獲取表單中用戶輸入的數(shù)據(jù)時(shí);當(dāng)數(shù)據(jù)中包括中文時(shí)會(huì)出現(xiàn)亂碼.解決方法:首先設(shè)置響應(yīng)結(jié)果字符集;response.setCharacterEncoding("gb2312");或response.setContentType("text/html;charset=gb2312");然后在獲取數(shù)據(jù)前設(shè)置request編碼:request.setCharacterEncoding(“gb2312”);或?qū)Λ@取到的數(shù)據(jù)轉(zhuǎn)編碼:newString(suser.getBytes(“ISO-8859-1”),”gb2312”);//注:http協(xié)議在網(wǎng)絡(luò)中傳輸數(shù)據(jù)釆用的編碼是:ISO-8859-1.【中文亂碼問(wèn)題】//在Servlet中除了可以用從請(qǐng)求中獲取用戶輸入的數(shù)據(jù)外;還可以獲取客戶端相關(guān)信息;publicclassNormFormPostServletextendsHttpServlet{publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ Stringcname=request.getRemoteHost();
//獲取客戶端主機(jī)
Stringcip=request.getRemoteAddr();
//獲取客戶端IP Stringpro=request.getScheme();
//獲取協(xié)議名
Stringsip=request.getServerName();
//獲取ip或機(jī)器名或域名
intsport=request.getServerPort();
//獲取端口號(hào)
Stringsap=request.getContextPath();
//獲取上文路徑名
//輸出顯示在網(wǎng)頁(yè)上. response.setContentType("text/html;charset=gb2312"); PrintWriterout=response.getWriter(); out.println(“你的IP:”+cip+”<br>”); //….}}【獲取客戶端相關(guān)信息】表單以GET方式提交,form設(shè)置如:<formname=“form1”method=“GET”action=“/test2/servlet/NormFormPostServlet”>GET請(qǐng)求由Servlet中的doGet()方法處理;處理方式方法和doPost完全相同;一個(gè)servlet可同時(shí)處理POST,GET請(qǐng)求;則實(shí)現(xiàn)doPost或doGet后,在doGet()中直接調(diào)用doPost();或在doPost()中直接調(diào)doGet();【處理表單Get請(qǐng)求】public
classNormFormPostServletextendsHttpServlet{public
voiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ //獲取表單數(shù)據(jù). Stringsuser=request.getParameter("suser"); Stringspwd=request.getParameter("spwd"); Stringssex=request.getParameter("ssex"); Stringsxl=request.getParameter("sxl"); String[]sah=request.getParameterValues("sah"); Stringsjj=request.getParameter("sjj"); //輸出顯示在網(wǎng)頁(yè)上. response.setContentType("text/html"); response.setCharacterEncoding("gb2312"); PrintWriterout=response.getWriter(); out.println("用戶名:"+suser+"<br>"); out.println("密碼:"+spwd+"<br>"); out.println("性別:"+ssex+"<br>"); out.println("學(xué)歷:"+sxl+"<br>"); for(inti=0;i<sah.length;i++) out.println("愛(ài)好:"+sah[i]+"<br>"); out.println("簡(jiǎn)介:"+sjj+"<br>");}}【doGet方法】除表單可以發(fā)送Get請(qǐng)求外,在IE地址欄直接輸入servlet地址發(fā)送請(qǐng)求是最常見(jiàn)的Get請(qǐng)求;在地址欄輸入地址發(fā)送Get請(qǐng)求,也可以傳數(shù)據(jù)到服務(wù)端;在上面表單以Get方式提交發(fā)送請(qǐng)求時(shí)大家應(yīng)該已經(jīng)看到,這時(shí)的數(shù)據(jù)是以查詢串的形式發(fā)送;如:?參數(shù)名1=值1&參數(shù)名2=值2&參數(shù)名3=值3;request.getQueryString();//可獲取整個(gè)查詢串;獲取參數(shù)名對(duì)應(yīng)的數(shù)據(jù)用:request.getParameter(“參數(shù)名”);request.getParameterValues(“參數(shù)名”);【處理其它Get請(qǐng)求】public
classGetMethodServletextendsHttpServlet{public
voiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ request.setCharacterEncoding("gb2312"); Stringv1=request.getParameter("param1"); Stringv2=request.getParameter("param2"); String[]v3=request.getParameterValues("param3"); response.setContentType("text/html;charset=gb2312"); PrintWriterout=response.getWriter();
StringqueryString=request.getQueryString();//獲取請(qǐng)求字符串
out.println(“?號(hào)后查詢串是:”+queryString+”<br”); out.println("v1:"+v1+"<br>"); out.println("v2:"+v2+"<br>"); for(inti=0;i<v3.length;i++) out.println("v3:"+v3+"<br>");}}【處理get請(qǐng)求】Get請(qǐng)求與Post請(qǐng)求的特點(diǎn):Get請(qǐng)求以地址欄中查詢串形式向服務(wù)端傳數(shù)據(jù)Post請(qǐng)求將數(shù)據(jù)封裝入請(qǐng)求報(bào)頭中向服務(wù)端傳數(shù)據(jù)何時(shí)使用Get請(qǐng)求數(shù)據(jù)量較小(不能大于2k)要傳數(shù)據(jù)不涉及隱私(如:密碼)何時(shí)使用Post請(qǐng)求數(shù)據(jù)量較大數(shù)據(jù)涉及個(gè)人隱私(如:密碼)【GET請(qǐng)求與POST請(qǐng)求】包含文件域元素的表單可實(shí)現(xiàn)文件上傳等實(shí)用功能;表單form設(shè)置如:<formaction=“”method=“POST”enctype=“multipart/form-data”name=“form1”>其中method必需是POST且加屬性enctype=“multipart/form-data”;對(duì)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 同步優(yōu)化設(shè)計(jì)2024年高中數(shù)學(xué)第一章直線與圓1.4兩條直線的平行與垂直課后篇鞏固提升含解析北師大版選擇性必修第一冊(cè)
- 專(zhuān)題11 課外閱讀(講義+試題) -2023年三升四語(yǔ)文暑假銜接課(統(tǒng)編版)
- 2024貸款購(gòu)銷(xiāo)合同范本范文
- 2024養(yǎng)豬場(chǎng)轉(zhuǎn)讓合同(參考文本)
- 草藥基地合同范本(2篇)
- 2022年監(jiān)理合同(2篇)
- 關(guān)于試用期工作總結(jié)
- 頑固皮膚病康復(fù)經(jīng)驗(yàn)分享
- 國(guó)際會(huì)展中心建設(shè)總承包合同
- 跨境電商快遞租賃合同
- 幼兒園:中班美術(shù)活動(dòng)《柿柿如意》
- 輸電線路初步設(shè)計(jì)評(píng)審要點(diǎn)課件
- (完整word版)小餐飲經(jīng)營(yíng)食品安全管理制度
- 產(chǎn)后尿潴留的護(hù)理個(gè)案課件
- 裝配式混凝土結(jié)構(gòu)部件吊裝監(jiān)理細(xì)則
- 地鐵站裝飾施工組織設(shè)計(jì)(181頁(yè))
- 動(dòng)火作業(yè)及動(dòng)火工作票管理規(guī)定
- 變電站綜合自動(dòng)化電子教案
- 2021屆微專(zhuān)題—中國(guó)的天氣(內(nèi)含回南天、華西秋雨、其他多地準(zhǔn)靜止鋒)課件
- 黑洞白洞和蟲(chóng)洞優(yōu)質(zhì)PPT課件
- 突觸的功能介紹
評(píng)論
0/150
提交評(píng)論