




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、北京傳智播客 第09天request與response【教學(xué)內(nèi)容】request與response介紹u request與response的作用與由來(lái)u request與response的體系結(jié)構(gòu)response詳細(xì)介紹u response常用API介紹u response操作響應(yīng)狀態(tài)碼u response操作響應(yīng)頭u 重定向u 定時(shí)跳轉(zhuǎn)u 設(shè)置響應(yīng)正文u 生成驗(yàn)證碼request詳細(xì)介紹u 獲取http請(qǐng)求信息u 獲取請(qǐng)求參數(shù)u 請(qǐng)求參數(shù)亂碼分析與解決u Request域?qū)ο蠼榻Bu 請(qǐng)求轉(zhuǎn)發(fā)u 請(qǐng)求轉(zhuǎn)發(fā)與重定向區(qū)別u 請(qǐng)求包含【教學(xué)總結(jié)】【第一階段】【學(xué)習(xí)目標(biāo)】掌握request與respo
2、nse的作用掌握request與response的體系結(jié)構(gòu)【內(nèi)容:request與response介紹】request與response的由來(lái)及作用Web服務(wù)器收到客戶端的http請(qǐng)求,會(huì)針對(duì)每一次請(qǐng)求,分別創(chuàng)建一個(gè)用于代表請(qǐng)求的request對(duì)象、和代表響應(yīng)的response對(duì)象request和response對(duì)象即然代表請(qǐng)求和響應(yīng),那我們要獲取客戶機(jī)提交過(guò)來(lái)的數(shù)據(jù),只需要找request對(duì)象就行了。要向客戶機(jī)輸出數(shù)據(jù),只需要找response對(duì)象就行了.request與response的體系結(jié)構(gòu)Ø javax.servlet.Servlet接口中的service方法public
3、abstract void service(ServletRequest req, ServletResponse res) throws ServletException, IOException;Ø javax.servlet.GenericServlet類中的service方法public abstract void service(ServletRequest req, ServletResponse res) throws ServletException, IOException;Ø javax.servlet.http.HttpServlet類中的servic
4、e方法在這個(gè)類中對(duì)service方法進(jìn)行了重載public abstract void service(ServletRequest req, ServletResponse res) throws ServletException, IOException;protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException【筆試面試題】無(wú)【重點(diǎn)總結(jié)】掌握request與response的作用,了解它的體系結(jié)構(gòu)【第二階段】【學(xué)習(xí)目標(biāo)】掌握res
5、ponse對(duì)象操作http響應(yīng)的API掌握重定向的概念及實(shí)現(xiàn)【內(nèi)容:response詳細(xì)介紹】response常用API介紹前面我們已經(jīng)介紹過(guò)response對(duì)象可以用于封裝我們的http響應(yīng)信息,對(duì)于http響應(yīng),它有三部分給成, http響應(yīng)行,http響應(yīng)頭,http響應(yīng)正文,下圖是關(guān)于response操作http響應(yīng)常用API介紹response操作響應(yīng)狀態(tài)碼在http響應(yīng)行中,有一個(gè)很重要的值,它叫做響應(yīng)狀態(tài)碼,它可以有五種類型取值,常用狀態(tài)碼200請(qǐng)求成功(其后是對(duì)GET和POST請(qǐng)求的應(yīng)答文檔。)302所請(qǐng)求的頁(yè)面已經(jīng)臨時(shí)轉(zhuǎn)移至新的url。304未按預(yù)期修改文檔??蛻舳擞芯彌_的文
6、檔并發(fā)出了一個(gè)條件性的請(qǐng)求(一般是提供If-Modified-Since頭表示客戶只想比指定日期更新的文檔)。服務(wù)器告訴客戶,原來(lái)緩沖的文檔還可以繼續(xù)使用。404沒有找到文件或目錄。405請(qǐng)求中指定的方法不被允許500請(qǐng)求未完成。服務(wù)器遇到不可預(yù)知的情況HttpServletResponse操作狀態(tài)碼APIØ void setStatus(int sc,String sm) 設(shè)置狀態(tài)代碼Ø void sendError(int sc) throws IOException 設(shè)置錯(cuò)誤狀態(tài)碼Ø void sendError(int sc,String msg) thr
7、ows IOException 設(shè)置錯(cuò)誤狀態(tài)碼及信息response操作響應(yīng)頭http響應(yīng)頭的格式是 name:value的格式,如果有多個(gè)value值,以”,”分開如Content-Encoding: gzip Content-Length: 123 Content-Language: zh-cn Content-Type: text/html; charset=GB2312 Last-Modified: Tue, 11 Jul 2000 18:23:51 GMTHttpServletResponse操作響應(yīng)頭 APIØ void setHeader(String name,Str
8、ing value)用給定名稱和值設(shè)置響應(yīng)頭。如果已經(jīng)設(shè)置了頭,則新值將重寫以前的值Ø public void addHeader(String name, String value)用給定名稱和值添加響應(yīng)頭。此方法允許響應(yīng)頭有多個(gè)值Ø public void setIntHeader(String name, int value)用給定名稱和整數(shù)值設(shè)置響應(yīng)頭。如果已經(jīng)設(shè)置了頭,則新值將重寫以前的值。Ø public void addIntHeader(String name, int value)用給定名稱和整數(shù)值添加響應(yīng)頭。此方法允許響應(yīng)頭有多個(gè)值。Ø
9、; public void setDateHeader(String name, long date)用給定名稱和日期值設(shè)置響應(yīng)頭。該日期根據(jù)距歷元時(shí)間的毫秒數(shù)指定。如果已經(jīng)設(shè)置了頭,則新值將重寫以前的值。Ø public void addDateHeader(String name, long date)用給定名稱和日期值添加響應(yīng)頭。該日期根據(jù)距歷元時(shí)間的毫秒數(shù)指定。此方法允許響應(yīng)頭有多個(gè)值。案例-重定向/ 1.設(shè)置狀態(tài)碼為302 response.setStatus(302);/ 2.設(shè)置響應(yīng)頭location response.setHeader("location&
10、quot;, "http:/localhost/day09/second"); response.setHeader("location", "/day09/second");/ 在開發(fā)中response.sendRedirect("/day09/second");案例-定時(shí)跳轉(zhuǎn)在servlet中:response.setHeader("refresh", "3;url=http:/localhost/day09/demo2.html");response.setHeader
11、("refresh", "3;url=/day09/demo2.html");在html頁(yè)面中:<meta http-equiv="refresh" content="5;url=http:/localhost/day09/responseDemo3">在頁(yè)面中通過(guò)<meta http-equiv=”>方式操作時(shí),會(huì)將標(biāo)簽內(nèi)容寫入到http響應(yīng)中。設(shè)置響應(yīng)正文http響應(yīng)正文是我們最終在瀏覽器上看到的結(jié)果。對(duì)于HttpServletResponse如果想要操作響應(yīng)正文,需要通過(guò)respons
12、e對(duì)象獲取到輸出流,將信息寫回到瀏覽器端HttpServletResponse操作響應(yīng)正文 APIØ 獲得向客戶端進(jìn)行數(shù)據(jù)輸出的流對(duì)象字節(jié)流數(shù)據(jù)輸出OutputStream out = response.getOutputStream();字符流數(shù)據(jù)輸出PrintWriter pw = response.getWriter();Ø 設(shè)置輸出數(shù)據(jù)的編碼格式默認(rèn)情況下,編碼格式是ISO-8859-1public void setCharacterEncoding(String charset)設(shè)置將發(fā)送到客戶端的響應(yīng)的字符編碼 public void setContentTyp
13、e(String type)設(shè)置將發(fā)送到客戶端的響應(yīng)的內(nèi)容類型,如果該響應(yīng)尚未提交。給定內(nèi)容類型可能包含字符編碼規(guī)范,例如 text/html;charset=UTF-8Ø 操作響應(yīng)正文注意事項(xiàng)getOutputStream和getWriter方法分別用于得到輸出二進(jìn)制數(shù)據(jù)、輸出文本數(shù)據(jù)的ServletOuputStream、Printwriter對(duì)象。getOutputStream和getWriter這兩個(gè)方法互相排斥,調(diào)用了其中的任何一個(gè)方法后,就不能再調(diào)用另一方法。 Servlet程序向ServletOutputStream或PrintWriter對(duì)象中寫入的數(shù)據(jù)將被Servl
14、et引擎從response里面獲取,Servlet引擎將這些數(shù)據(jù)當(dāng)作響應(yīng)消息的正文,然后再與響應(yīng)狀態(tài)行和各響應(yīng)頭組合后輸出到客戶端。 Serlvet的service方法結(jié)束后,Servlet引擎將檢查getWriter或getOutputStream方法返回的輸出流對(duì)象是否已經(jīng)調(diào)用過(guò)close方法,如果沒有,Servlet引擎tomcat將調(diào)用close方法關(guān)閉該輸出流對(duì)象。調(diào)用close的時(shí)候,應(yīng)該會(huì)調(diào)用flushBuffer案例-生成驗(yàn)證碼代碼import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import
15、 java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.IOException;import java.util.Random;import javax.imageio.ImageIO;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRespo
16、nse;/驗(yàn)證碼public class ImageCodeServlet extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException / 使用java圖形界面技術(shù)繪制一張圖片int charNum = 4;int width = 30 * 4;int height = 30;/ 1. 創(chuàng)建一張內(nèi)存圖片BufferedImage bufferedImage = new BufferedImag
17、e(width, height,BufferedImage.TYPE_INT_RGB);/ 2.獲得繪圖對(duì)象Graphics graphics = bufferedImage.getGraphics();/ 3、繪制背景顏色graphics.setColor(Color.YELLOW);graphics.fillRect(0, 0, width, height);/ 4、繪制圖片邊框graphics.setColor(Color.BLUE);graphics.drawRect(0, 0, width - 1, height - 1);/ 5、輸出驗(yàn)證碼內(nèi)容graphics.setColor(C
18、olor.RED);graphics.setFont(new Font("宋體", Font.BOLD, 20);/ 隨機(jī)輸出4個(gè)字符Graphics2D graphics2d = (Graphics2D) graphics; String s = "ABCDEFGHIGKLMNOPQRSTUVWXYZ01234567890"Random random = new Random();String msg=""int x = 5;for (int i = 0; i < 4; i+) int index = random.nextI
19、nt(26);String content = String.valueOf(s.charAt(index);msg+=content;double theta = random.nextInt(45) * Math.PI / 180;graphics2d.rotate(theta, x, 18);graphics2d.drawString(content, x, 18);graphics2d.rotate(-theta, x, 18);x += 30;/ 6、繪制干擾線graphics.setColor(Color.GRAY);for (int i = 0; i < 10; i+) i
20、nt x1 = random.nextInt(width);int x2 = random.nextInt(width);int y1 = random.nextInt(height);int y2 = random.nextInt(height);graphics.drawLine(x1, y1, x2, y2);/ 釋放資源graphics.dispose();/ 圖片輸出 ImageIOImageIO.write(bufferedImage, "jpg", response.getOutputStream();public void doPost(HttpServle
21、tRequest request, HttpServletResponse response)throws ServletException, IOException doGet(request, response);常用漢字: String base = "u7684u4e00u4e86u662fu6211u4e0du5728u4ebau4eecu6709u6765u4ed6u8fd9u4e0au7740u4e2au5730u5230u5927u91ccu8bf4u5c31u53bbu5b50u5f97u4e5fu548cu90a3u8981u4e0bu770bu5929u65f6
22、u8fc7u51fau5c0fu4e48u8d77u4f60u90fdu628au597du8fd8u591au6ca1u4e3au53c8u53efu5bb6u5b66u53eau4ee5u4e3bu4f1au6837u5e74u60f3u751fu540cu8001u4e2du5341u4eceu81eau9762u524du5934u9053u5b83u540eu7136u8d70u5f88u50cfu89c1u4e24u7528u5979u56fdu52a8u8fdbu6210u56deu4ec0u8fb9u4f5cu5bf9u5f00u800cu5df1u4e9bu73b0u5c71
23、u6c11u5019u7ecfu53d1u5de5u5411u4e8bu547du7ed9u957fu6c34u51e0u4e49u4e09u58f0u4e8eu9ad8u624bu77e5u7406u773cu5fd7u70b9u5fc3u6218u4e8cu95eeu4f46u8eabu65b9u5b9eu5403u505au53ebu5f53u4f4fu542cu9769u6253u5462u771fu5168u624du56dbu5df2u6240u654cu4e4bu6700u5149u4ea7u60c5u8defu5206u603bu6761u767du8bddu4e1cu5e2d
24、u6b21u4eb2u5982u88abu82b1u53e3u653eu513fu5e38u6c14u4e94u7b2cu4f7fu5199u519bu5427u6587u8fd0u518du679cu600eu5b9au8bb8u5febu660eu884cu56e0u522bu98deu5916u6811u7269u6d3bu90e8u95e8u65e0u5f80u8239u671bu65b0u5e26u961fu5148u529bu5b8cu5374u7ad9u4ee3u5458u673au66f4u4e5du60a8u6bcfu98ceu7ea7u8ddfu7b11u554au5b69
25、u4e07u5c11u76f4u610fu591cu6bd4u9636u8fdeu8f66u91cdu4fbfu6597u9a6cu54eau5316u592au6307u53d8u793eu4f3cu58ebu8005u5e72u77f3u6ee1u65e5u51b3u767eu539fu62ffu7fa4u7a76u5404u516du672cu601du89e3u7acbu6cb3u6751u516bu96beu65e9u8bbau5417u6839u5171u8ba9u76f8u7814u4ecau5176u4e66u5750u63a5u5e94u5173u4fe1u89c9u6b65
26、u53cdu5904u8bb0u5c06u5343u627eu4e89u9886u6216u5e08u7ed3u5757u8dd1u8c01u8349u8d8au5b57u52a0u811au7d27u7231u7b49u4e60u9635u6015u6708u9752u534au706bu6cd5u9898u5efau8d76u4f4du5531u6d77u4e03u5973u4efbu4ef6u611fu51c6u5f20u56e2u5c4bu79bbu8272u8138u7247u79d1u5012u775bu5229u4e16u521au4e14u7531u9001u5207u661f
27、u5bfcu665au8868u591fu6574u8ba4u54cdu96eau6d41u672au573au8be5u5e76u5e95u6df1u523bu5e73u4f1fu5fd9u63d0u786eu8fd1u4eaeu8f7bu8bb2u519cu53e4u9ed1u544au754cu62c9u540du5440u571fu6e05u9633u7167u529eu53f2u6539u5386u8f6cu753bu9020u5634u6b64u6cbbu5317u5fc5u670du96e8u7a7fu5185u8bc6u9a8cu4f20u4e1au83dcu722cu7761
28、u5174u5f62u91cfu54b1u89c2u82e6u4f53u4f17u901au51b2u5408u7834u53cbu5ea6u672fu996du516cu65c1u623fu6781u5357u67aau8bfbu6c99u5c81u7ebfu91ceu575au7a7au6536u7b97u81f3u653fu57ceu52b3u843du94b1u7279u56f4u5f1fu80dcu6559u70edu5c55u5305u6b4cu7c7bu6e10u5f3au6570u4e61u547cu6027u97f3u7b54u54e5u9645u65e7u795eu5ea7
29、u7ae0u5e2eu5566u53d7u7cfbu4ee4u8df3u975eu4f55u725bu53d6u5165u5cb8u6562u6389u5ffdu79cdu88c5u9876u6025u6797u505cu606fu53e5u533au8863u822cu62a5u53f6u538bu6162u53d4u80ccu7ec6"【筆試面試題】什么是重定向,原理是什么【重點(diǎn)總結(jié)】掌握response操作狀態(tài)碼掌握response操作響應(yīng)行掌握response操作響應(yīng)正文掌握什么是重定向,原理及實(shí)現(xiàn)方式【第三階段】【學(xué)習(xí)目標(biāo)】掌握request操作http請(qǐng)求的常用API掌握
30、request獲取請(qǐng)求參數(shù)掌握處理請(qǐng)求參數(shù)亂碼方式掌握什么是請(qǐng)求轉(zhuǎn)發(fā)及實(shí)現(xiàn)方式掌握重定向與請(qǐng)求轉(zhuǎn)發(fā)區(qū)別【內(nèi)容:request詳細(xì)介紹】獲取http請(qǐng)求信息HttpServletRequest對(duì)象用于封裝http請(qǐng)求,對(duì)于http請(qǐng)求它有三部分組成,http請(qǐng)求行,http請(qǐng)求行及請(qǐng)求正文,下圖描述了關(guān)于封裝請(qǐng)求信息方法HttpServletRequest操作http請(qǐng)求常用APIØ 獲取請(qǐng)求行信息public String getMethod()返回用于發(fā)出此請(qǐng)求的 HTTP 方法的名稱,例如 GET、POST public String getRequestURI()返回此請(qǐng)求的
31、URL 的一部分,從協(xié)議名稱一直到 HTTP 請(qǐng)求的第一行中的查詢字符串。public String getProtocol()以 protocol/majorVersion.minorVersion 的形式(例如 HTTP/1.1)返回請(qǐng)求使用的協(xié)議的名稱和版本。public String getQueryString()返回包含在請(qǐng)求 URL 中路徑后面的查詢字符串。如果 URL 沒有查詢字符串,則此方法返回 null。Ø 獲取客戶機(jī)信息public String getContextPath()返回請(qǐng)求 URI 指示請(qǐng)求上下文的那一部分。public StringBuffer
32、getRequestURL()重新構(gòu)造客戶端用于發(fā)出請(qǐng)求的 URL。返回的 URL 包含一個(gè)協(xié)議、服務(wù)器名稱、端口號(hào)、服務(wù)器路徑,但是不包含查詢字符串參數(shù)。public String getRemoteAddr()返回發(fā)送請(qǐng)求的客戶端或最后一個(gè)代理的 Internet Protocol (IP) 地址Ø 獲取請(qǐng)求頭信息public String getHeader(String name)以 String 的形式返回指定請(qǐng)求頭的值。public java.util.Enumeration<E> getHeaders(String name)以 String 對(duì)象的 Enu
33、meration 的形式返回指定請(qǐng)求頭的所有值。public java.util.Enumeration<E> getHeaderNames()返回此請(qǐng)求包含的所有頭名稱的枚舉。如果該請(qǐng)求沒有頭,則此方法返回一個(gè)空枚舉。public int getIntHeader(String name)以 int 的形式返回指定請(qǐng)求頭的值。如果該請(qǐng)求沒有指定名稱的頭,則此方法返回 -1。如果無(wú)法將頭轉(zhuǎn)換為整數(shù),則此方法拋出 NumberFormatException。 public long getDateHeader(String name)以表示 Date 對(duì)象的 long 值的形式返回指
34、定請(qǐng)求頭的值獲取請(qǐng)求參數(shù)請(qǐng)求參數(shù)是瀏覽器發(fā)送請(qǐng)求時(shí)攜帶的信息。對(duì)于請(qǐng)求方式GET與POST,請(qǐng)求參數(shù)存在位置不同。GET:請(qǐng)求參數(shù)存在于請(qǐng)求的資源路徑中。POST:請(qǐng)求參數(shù)存在于正文中HttpServletRequest操作請(qǐng)求參數(shù)APIØ public String getParameter(String name)以 String 形式返回請(qǐng)求參數(shù)的值,如果該參數(shù)不存在,則返回 nullØ public String getParameterValues(String name)返回包含給定請(qǐng)求參數(shù)擁有的所有值的 String 對(duì)象數(shù)組,如果該參數(shù)不存在,則返回 nul
35、l。Ø public java.util.Map<K, V> getParameterMap()返回此請(qǐng)求的參數(shù)的 java.util.Map。請(qǐng)求參數(shù)是與請(qǐng)求一起發(fā)送的額外信息。對(duì)于 HTTP servlet,參數(shù)包含在查詢字符串或發(fā)送的表單數(shù)據(jù)中。Ø public java.util.Enumeration<E> getParameterNames()返回包含此請(qǐng)求中所包含參數(shù)的名稱的 String 對(duì)象的 Enumeration。如果該請(qǐng)求沒有參數(shù),則此方法返回一個(gè)空的 Enumeration。請(qǐng)求參數(shù)亂碼分析與解決亂碼出現(xiàn)的根本原因?漢字在不
36、同的編碼表中的碼值不一樣,那么在使用不同的編碼表進(jìn)行解碼與編碼操作時(shí),就會(huì)出現(xiàn)亂碼問(wèn)題.請(qǐng)求參數(shù)亂碼原因:請(qǐng)求參數(shù)中如果有中文,它是以u(píng)tf-8碼進(jìn)行了編碼。Tomcat得到請(qǐng)求參數(shù)是使用iso8859-1進(jìn)行了解碼,封裝到了request中。在通過(guò)request獲取請(qǐng)求信息就是亂碼。解決方案:使用iso8859-1進(jìn)行編碼在使用utf-8進(jìn)行解碼new String(username.getBytes(“iso8859-1”),”utf-8”);如果請(qǐng)求方式是POST,可以直接使用request.setCharacterEncoding(“utf-8”);就可以解決。request域?qū)ο蠼榻B
37、request對(duì)象同時(shí)也是一個(gè)域?qū)ο螅_發(fā)人員通過(guò)request對(duì)象在實(shí)現(xiàn)轉(zhuǎn)發(fā)時(shí),把數(shù)據(jù)通過(guò)request對(duì)象帶給其它web資源處理setAttribute方法 getAttribute方法 removeAttribute方法getAttributeNames方法request對(duì)象提供了一個(gè)getRequestDispatcher方法,該方法返回一個(gè)RequestDispatcher對(duì)象,調(diào)用這個(gè)對(duì)象的forward方法可以實(shí)現(xiàn)請(qǐng)求轉(zhuǎn)發(fā),從而共享請(qǐng)求中的數(shù)據(jù)請(qǐng)求轉(zhuǎn)發(fā)請(qǐng)求轉(zhuǎn)發(fā)可以實(shí)現(xiàn)路徑的跳轉(zhuǎn)操作.ReqeustDispatcher dispatcher=request.getRequestDisp
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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è)行程變動(dòng)及責(zé)任豁免協(xié)議書
- 電子支付平臺(tái)開發(fā)與推廣合作協(xié)議
- 營(yíng)業(yè)辦公用房買賣協(xié)議書
- 中學(xué)生感恩教育故事觀后感
- 高考語(yǔ)文高頻文言實(shí)詞60詞表解
- 環(huán)保能源行業(yè)項(xiàng)目合作風(fēng)險(xiǎn)提示
- 高考語(yǔ)文備考之明朝作家文言文匯編(下)
- 購(gòu)銷家具合同家具購(gòu)銷合同
- 綠色農(nóng)業(yè)種植合同
- 裝修工程勞務(wù)外包合同
- 《研學(xué)旅行課程設(shè)計(jì)》課件-初識(shí)研學(xué)旅行發(fā)展歷程
- 傳染病手術(shù)的處理流程
- 新質(zhì)生產(chǎn)力:中國(guó)創(chuàng)新發(fā)展的著力點(diǎn)與內(nèi)在邏輯
- 《中醫(yī)常用護(hù)理技術(shù)基礎(chǔ)》課件-八綱辨證施護(hù)
- 心理健康與職業(yè)生涯(中等職業(yè))全套教學(xué)課件
- 市政園林安全生產(chǎn)培訓(xùn)課件
- 基于BIM的軸流通風(fēng)機(jī)施工工藝優(yōu)化
- 2024年大學(xué)生自我意識(shí)教學(xué)案
- 女生青春期知識(shí)講座(六年級(jí))課件
- 消化道出血講課課件
- 化工過(guò)程安全管理導(dǎo)則
評(píng)論
0/150
提交評(píng)論