javaee就業(yè)班帖子筆記web10-篇_第1頁
javaee就業(yè)班帖子筆記web10-篇_第2頁
javaee就業(yè)班帖子筆記web10-篇_第3頁
javaee就業(yè)班帖子筆記web10-篇_第4頁
javaee就業(yè)班帖子筆記web10-篇_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第 10 章 WEB10-requet&response 篇1.1案例一:完成登錄用戶對他提供文件的的功能.1.1.1 需求:之前的案例中已經(jīng)完成的了一個(gè)登錄的功能,登錄失敗后回到登錄頁面.登錄成功以后,服務(wù)器提供多的,點(diǎn)擊可以完成文件的的功能.個(gè)文件的1.1.2 分析: 技術(shù)分析:【響應(yīng)對象-Response 對象】響應(yīng)行:響應(yīng)頭:響應(yīng)體:【response 處理中文亂碼】字節(jié)流:設(shè)置瀏覽器默認(rèn)打開編碼response.setHeader(Content-Type, text/html;charset=UTF-8);中文轉(zhuǎn)成字節(jié)數(shù)組編碼response.getOutputStream().w

2、rite(.getBytes(UTF-8);Response 設(shè)置響應(yīng)體: getoutputStream()getWriter()Response 設(shè)置響應(yīng)頭:一個(gè) key 對應(yīng)一個(gè)value setDataHeader(String,long) set Header(String,String) set Header(String, )一個(gè) key 對應(yīng)多個(gè)value addDatHeader(String,long) addHeader(String,String)add Header(String, )Response 設(shè)置狀態(tài)碼:setSus( )字符流:【文件】 步驟分析:之前的登

3、錄案例已經(jīng)存在:登錄成功跳轉(zhuǎn)的頁面上提供一組:當(dāng)點(diǎn)擊的之后,提交到 Servlet:設(shè)置兩個(gè)頭和一個(gè)流:1.1.3 代碼實(shí)現(xiàn):在頁面中提供一組的:response.getWriter().pr ln(手動(dòng)編碼方式); response.getWriter().pr ln(a.bmp); response.getWriter().pr ln(WEB01.zip);編寫 DownloadServlet:protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throws ServletException, I

4、OException /*接收參數(shù):設(shè)置兩個(gè)頭和一個(gè)流:文件輸入流和響應(yīng)的輸出流對接:*/ 接收參數(shù):get 亂碼 new String(中文.getBytes(ISO-8859-1),UTF-8);一種:超方式.(不)* 二種:手動(dòng)編碼方式完成文件.設(shè)置兩個(gè)頭和一個(gè)流:Content-Type:文件 MIME 的類型.Content-Distion:文件的輸入流:設(shè)置 response 的緩沖區(qū)的編碼 response.setCharacterEncoding(UTF-8);設(shè)置瀏覽器默認(rèn)打開的編碼.response.setHeader(Content-Type, text/html;cha

5、rset=UTF-8);response.setContentType(text/html;charset=UTF-8);相當(dāng)于上面兩句1.1.4 總結(jié): 中文文件名:中文文件在不同的瀏覽器中編碼方式不同:IE:URL 編碼Firefox:Base64 編碼if(agent.contains(Firefox)/ 火狐瀏覽器filename = base64EncodeFileName(filename);else/ IE,其他瀏覽器filename = URLEncoder.encode(filename, UTF-8);public sic String base64EncodeFileNa

6、me(String fileName) BASE64Encoder base64Encoder = new BASE64Encoder(); try return =?UTF-8?B?+ new String(base64Encoder.encode(fileName.getBytes(UTF-8) + ?=;String filename = request.getParameter(filename); System.out.pr ln(filename);/ 設(shè)置兩個(gè)頭和一個(gè)流:/ 設(shè)置 Content-Type 頭String fileType = this.getServletCon

7、text().getMimeType(filename); response.setContentType(fileType);/ 設(shè)置 Content-Disition:response.setHeader(Content-Disition, attaent;filename=+filename);/ 設(shè)置文件的輸入流:String path = this.getServletContext().getRealPath(/download/+filename); / InputStream is = new FileInputStreath);OutputStream os = respon

8、se.getOutputStream(); len = 0;byte b = new byte1024; while(len = is.read(b)!=-1)os.write(b, 0, len);is.close();1.2案例二:的的功能的實(shí)現(xiàn):1.2.1 需求:在商城的上完成一個(gè)的功能:1.2.2 分析: 技術(shù)分析【請求對象-request 對象】獲得客戶機(jī)信息:getMethod();-獲得請求方式.getQueryString();-獲得請求路徑后的參數(shù).getRemoteAddr();-獲得客戶機(jī)的 IP 地址.getRequestURI();-獲得請求的路徑getRequest

9、URL();-獲得請求的路徑 catch (UnsupportedEncodingException e) e.pr StackTrace();throw new RuntimeException(e);獲得請求頭請求參數(shù):用來作為域?qū)ο蟠嫒≈? 步驟分析:步驟一:設(shè)計(jì)頁面:的按鈕:提交到 Servlet 中.步驟二:點(diǎn)擊頁面中的步驟三:在 Servlet 中接收參數(shù):步驟四:封裝實(shí)體中.步驟五:調(diào)用業(yè)務(wù)層.處理數(shù)據(jù).步驟六:根據(jù)處理的結(jié)果做出響應(yīng).1.2.3 代碼實(shí)現(xiàn):1.創(chuàng)建數(shù)據(jù)庫create database web10; use web10;create table user(idpr

10、imary key auto_increment,username varchar(20), password varchar(20),varchar(20), name varchar(20),sex varchar(10),birthday date, hobby varchar(50);2.接收參數(shù):request.getParameter(String name);request.getParameterValues(String name);request.getParamaterMap(); 3.參數(shù)接收中的亂碼處理.removeAttribute(String) setribut

11、e(String,Object)getribute(String)getParemeter(String) getParameterMap() getParameterNames()getParameterValues(String)request.getHeader(“User-Agent”);request.getHeader(“Referer”);* getContextPath();-獲得工程名1.2.4 總結(jié): 轉(zhuǎn)發(fā)和重定向的區(qū)別:【重定向】【轉(zhuǎn)發(fā)】【區(qū)別】 使用轉(zhuǎn)發(fā)和重定登錄的功能優(yōu)化:使用 request 域保存一個(gè)值:在一次請求范圍內(nèi)有效的.登錄失敗就可以保存一個(gè)錯(cuò)誤信息到 r

12、equest 中在動(dòng)態(tài)頁面中取出這個(gè)值$msg轉(zhuǎn)發(fā)的地址欄不變的.重定向的地址欄發(fā)生變化的.轉(zhuǎn)發(fā)是一次請求一次響應(yīng),重定向是兩次請求兩次響應(yīng).request 域?qū)ο蟠嫒〉闹翟谵D(zhuǎn)發(fā)中是有效的,在重定向無效的.轉(zhuǎn)發(fā)的路徑不需要加工程名.重定向的路徑需要加工程名.request.getRequestDispatcher(String path).forward(request,response);response.sendRedirect(String path); - 完成重定向T 亂碼處理:的時(shí)候,這種提交才是T 提交.其他的都是 get.T 方式提交的參數(shù)在請求體中.request 對象在接收參數(shù).request 對象有緩存區(qū).默認(rèn)緩沖區(qū)的編碼ISO-8859-1.處理方式:設(shè)置 request 的緩沖區(qū)的編碼.* request.setCharacterEncoding(“UTF-8”);GET 方式亂碼處理:GET 方式提交的參數(shù)會(huì)在地址欄上顯示 在請求行的路徑后面.瀏覽器就會(huì)對路徑進(jìn)行一次編碼

溫馨提示

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

最新文檔

評論

0/150

提交評論