![2.JSP實(shí)現(xiàn)數(shù)據(jù)傳遞和保存_第1頁(yè)](http://file4.renrendoc.com/view/73de2a1c529a3874f2b3fd2e5d1285a1/73de2a1c529a3874f2b3fd2e5d1285a11.gif)
![2.JSP實(shí)現(xiàn)數(shù)據(jù)傳遞和保存_第2頁(yè)](http://file4.renrendoc.com/view/73de2a1c529a3874f2b3fd2e5d1285a1/73de2a1c529a3874f2b3fd2e5d1285a12.gif)
![2.JSP實(shí)現(xiàn)數(shù)據(jù)傳遞和保存_第3頁(yè)](http://file4.renrendoc.com/view/73de2a1c529a3874f2b3fd2e5d1285a1/73de2a1c529a3874f2b3fd2e5d1285a13.gif)
![2.JSP實(shí)現(xiàn)數(shù)據(jù)傳遞和保存_第4頁(yè)](http://file4.renrendoc.com/view/73de2a1c529a3874f2b3fd2e5d1285a1/73de2a1c529a3874f2b3fd2e5d1285a14.gif)
![2.JSP實(shí)現(xiàn)數(shù)據(jù)傳遞和保存_第5頁(yè)](http://file4.renrendoc.com/view/73de2a1c529a3874f2b3fd2e5d1285a1/73de2a1c529a3874f2b3fd2e5d1285a15.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
JSP實(shí)現(xiàn)數(shù)據(jù)傳遞和保存
線上線下平臺(tái)預(yù)習(xí)2/41本課目標(biāo)學(xué)完本次課程后,你能夠:掌握request和response的使用解決頁(yè)面中出現(xiàn)的中文亂碼掌握轉(zhuǎn)發(fā)和重定向的區(qū)別掌握session存取數(shù)據(jù)理解cookie理解application3/41概述任務(wù)實(shí)現(xiàn)新聞系統(tǒng)的用戶(hù)注冊(cè)內(nèi)容requestresponse4/41獲取表單提交的數(shù)據(jù)-1我們?cè)诰W(wǎng)頁(yè)的表單中填入數(shù)據(jù),提交表單后,數(shù)據(jù)被提交到哪里去了?JSP問(wèn)題5/41獲取表單提交的數(shù)據(jù)-2請(qǐng)求對(duì)象:requestpublicStringgetParameter(Stringname)示例HTML代碼:<inputtype="text"name="userName"/>JSP代碼:StringuserName =request.getParameter("userName");演示示例1:獲取表單提交的數(shù)據(jù)6/41get與post區(qū)別比較項(xiàng)Getpost參數(shù)出現(xiàn)在URL中是否長(zhǎng)度限制有無(wú)安全性低高URL可傳播是否7/41獲取同名的多個(gè)參數(shù)<inputtype="checkbox"name="mailId"value="10001"/><inputtype="checkbox"name="mailId"value="10002"/><inputtype="checkbox"name="mailId"value="10003"/><inputtype="checkbox"name="mailId"value="10004"/><inputtype="checkbox"name="mailId"value="10005"/>String[]mailIds=request.getParameterValues("mailId");if(mailIds!=null&&mailIds.length!=0){ //循環(huán)mailIds訪問(wèn)提交的數(shù)據(jù)}else{ //未提交與參數(shù)mailId相關(guān)的數(shù)據(jù)}8/41request對(duì)象常用方法方法名稱(chēng)說(shuō)明StringgetParameter(Stringname)根據(jù)表單組件名稱(chēng)獲取提交數(shù)據(jù)String[]getParameterValues(Stringname)獲取表單組件對(duì)應(yīng)多個(gè)值時(shí)的請(qǐng)求數(shù)據(jù)voidsetCharacterEncoding(Stringcharset)指定每個(gè)請(qǐng)求的編碼RequestDispatchergetRequestDispatcher(Stringpath)返回一個(gè)RequestDispatcher對(duì)象,該對(duì)象的forward()方法用于轉(zhuǎn)發(fā)請(qǐng)求9/41內(nèi)置對(duì)象JSP已經(jīng)準(zhǔn)備好的,可以直接使用的對(duì)象請(qǐng)求對(duì)象:request輸出對(duì)象:out響應(yīng)對(duì)象:response應(yīng)用程序?qū)ο螅篴pplication會(huì)話對(duì)象:session頁(yè)面上下文對(duì)象:pageContext頁(yè)面對(duì)象:page配置對(duì)象:config異常對(duì)象:exception10/41需求說(shuō)明編寫(xiě)登錄頁(yè)面(userLogin.jsp),表單包含字段:用戶(hù)名和密碼提交表單到loginSuccess.jsp頁(yè)面,并在該頁(yè)面中顯示提交的用戶(hù)名和密碼分析在loginSuccess.jsp中使用request取出表單提交的數(shù)據(jù)在頁(yè)面中顯示課堂練習(xí)完成時(shí)間:5分鐘共性問(wèn)題集中講解11/41JSP中默認(rèn)使用的字符編碼方式:iso-8859-1,不支持中文常見(jiàn)的支持中文的編碼方式中文亂碼你提交的是中文用戶(hù)名嗎?編碼方式收錄的字符gb2312常用簡(jiǎn)體漢字gbk簡(jiǎn)體和繁體漢字utf-8所有國(guó)家需要的字符問(wèn)題12/41解決中文亂碼設(shè)置請(qǐng)求和響應(yīng)的編碼方式request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");<%@
pagelanguage="java"contentType="text/html;charset=utf-8"%>get請(qǐng)求出現(xiàn)亂碼治標(biāo)的方法:newString(s.getBytes("iso-8859-1"),"utf-8");治本的方法:配置tomcat\conf\server.xml文件URIEncoding="UTF-8"useBodyEncodingForURI="true"<ConnectorconnectionTimeout="20000"port="8080"protocol="HTTP/1.1"redirectPort="8443"URIEncoding="UTF-8"/>演示示例2:中文亂碼處理13/41在請(qǐng)求中存取屬性-1在請(qǐng)求中保存屬性publicvoidsetAttribute(Stringname,Objecto)request.setAttribute("mess","注冊(cè)失敗");在請(qǐng)求中獲取屬性publicObjectgetAttribute(Stringname)屬性名屬性值引用類(lèi)型屬性名屬性值1、在使用屬性值的時(shí)候要做非空判斷,否則會(huì)出現(xiàn)空指針異常2、它的返回值類(lèi)型是Object類(lèi)型,需要做數(shù)據(jù)類(lèi)型的轉(zhuǎn)換注意14/41在請(qǐng)求中存取屬性-2你會(huì)這樣寫(xiě)嗎?Stringmess=(String)request.getAttribute("mess");if(mess!=null){//在請(qǐng)求中取到"mess"屬性對(duì)應(yīng)的屬性值,正常使用mess數(shù)據(jù)}else{//在請(qǐng)求中沒(méi)有取到"mess"屬性對(duì)應(yīng)的屬性值,使用備選方案}Stringmess=request.getAttribute("mess");mess.length();問(wèn)題15/41轉(zhuǎn)發(fā)RequestDispatcher對(duì)象forward()方法重定向?qū)⒂脩?hù)請(qǐng)求重新定位到一個(gè)新的URL轉(zhuǎn)發(fā)與重定向response.sendRedirect("url")1、request.getRequestDispatcher("url").forward(request,response)2、<jsp:forwardpage="url"/>語(yǔ)法語(yǔ)法演示示例3:轉(zhuǎn)發(fā)與重定向16/41轉(zhuǎn)發(fā)與重定向的區(qū)別-1轉(zhuǎn)發(fā)的工作方式請(qǐng)求JSP處理中…請(qǐng)求、響應(yīng)客戶(hù)端服務(wù)器響應(yīng)結(jié)果處理結(jié)束URL沒(méi)有發(fā)生變化17/41轉(zhuǎn)發(fā)與重定向的區(qū)別-2重定向的工作方式請(qǐng)求JSP新地址客戶(hù)端服務(wù)器結(jié)果第二次請(qǐng)求所對(duì)應(yīng)的URL地址響應(yīng)再次請(qǐng)求響應(yīng)18/41轉(zhuǎn)發(fā)與重定向的區(qū)別轉(zhuǎn)發(fā)與重定向的區(qū)別-3比較項(xiàng)轉(zhuǎn)發(fā)重定向URL變化否是重新發(fā)出請(qǐng)求不會(huì)會(huì)是否攜帶請(qǐng)求是否目標(biāo)URL要求僅本W(wǎng)eb應(yīng)用任意URL重定向是客戶(hù)端行為,轉(zhuǎn)發(fā)是服務(wù)器行為注意19/41課堂練習(xí)需求說(shuō)明繼續(xù)完善上次上機(jī)練習(xí),在JSP中防止中文亂碼假定用戶(hù)名:系統(tǒng)管理員,密碼:123可以登錄成功,其他用戶(hù)拒絕登錄,正確實(shí)現(xiàn)頁(yè)面的跳轉(zhuǎn)和提示分析在JSP中設(shè)置編碼方式判斷用戶(hù)是否可以登錄并實(shí)現(xiàn)跳轉(zhuǎn)共性問(wèn)題集中講解完成時(shí)間:10分鐘20/41小結(jié)實(shí)現(xiàn)新聞系統(tǒng)的用戶(hù)注冊(cè)請(qǐng)求對(duì)象request響應(yīng)對(duì)象response解決中文亂碼轉(zhuǎn)發(fā)和重定向區(qū)別21/41概述任務(wù)在新聞系統(tǒng)中保存用戶(hù)狀態(tài)登錄時(shí)自動(dòng)填寫(xiě)用戶(hù)名統(tǒng)計(jì)頁(yè)面訪問(wèn)次數(shù)內(nèi)容重難點(diǎn)session理解cookie理解application22/41使用session保存用戶(hù)名-1使用會(huì)話對(duì)象session實(shí)現(xiàn)一個(gè)會(huì)話就是瀏覽器與服務(wù)器之間的一次通話會(huì)話可以在多次請(qǐng)求中保存和使用數(shù)據(jù)注冊(cè)成功后自動(dòng)登錄,登錄后記住用戶(hù)狀態(tài),并在多個(gè)頁(yè)面顯示用戶(hù)名,如何實(shí)現(xiàn)?通話提問(wèn)23/41使用session保存用戶(hù)名-2sessionpublicvoidsetAttribute(Stringname,Objectvalue);用法:session.setAttribute("userName","張三豐");publicObjectgetAttribute(Stringname);用法:StringuserName=(String)session.getAttribute("userName");演示示例4
:使用session保存用戶(hù)名語(yǔ)法24/41session的工作方式每個(gè)session都有一個(gè)唯一的sessionidpublicStringgetId();session.getId();服務(wù)器瀏覽器瀏覽器請(qǐng)求請(qǐng)求響應(yīng)(攜帶sessionid)請(qǐng)求(攜帶sessionid)sessionidFCA000…sessionid28F73…25/41會(huì)話的清除和過(guò)期-1若沒(méi)有清理機(jī)制,會(huì)導(dǎo)致性能問(wèn)題或服務(wù)器崩潰程序主動(dòng)清除session數(shù)據(jù)服務(wù)器主動(dòng)清除長(zhǎng)時(shí)間沒(méi)有再次發(fā)出請(qǐng)求的sessionsession的數(shù)據(jù)是在服務(wù)器端的,服務(wù)器保存的會(huì)話數(shù)據(jù)量會(huì)越來(lái)越大,從而導(dǎo)致性能問(wèn)題問(wèn)題26/41會(huì)話的清除和過(guò)期-2程序主動(dòng)清除session數(shù)據(jù)設(shè)置會(huì)話失效:session.invalidate();移除會(huì)話的一個(gè)屬性publicvoidremoveAttribute(Stringname);用法:session.removeAttribute("userName");語(yǔ)法27/41會(huì)話的清除和過(guò)期-3服務(wù)器主動(dòng)清除長(zhǎng)時(shí)間沒(méi)有再次發(fā)出請(qǐng)求的session設(shè)置會(huì)話過(guò)期時(shí)間方法一:方法二:publicvoidsetMaxInactiveInterval(intinterval);
<session-config><session-timeout>30</session-timeout></session-config>單位:秒單位:分鐘演示示例5
:session清除與過(guò)期28/41小結(jié)用瀏覽器訪問(wèn)服務(wù)器——產(chǎn)生會(huì)話通過(guò)瀏覽器在網(wǎng)站登錄——在會(huì)話中保存數(shù)據(jù)登錄成功后用個(gè)人身份進(jìn)行訪問(wèn)——會(huì)話有效期內(nèi)關(guān)閉了瀏覽器——結(jié)束會(huì)話服務(wù)器主動(dòng)結(jié)束會(huì)話——會(huì)話到期使會(huì)話失效、刪除屬性——及時(shí)釋放會(huì)話資源程序主動(dòng)結(jié)束會(huì)話、會(huì)話到期——會(huì)話中的數(shù)據(jù)丟失29/41需求說(shuō)明繼續(xù)完善上次上機(jī)練習(xí),實(shí)現(xiàn)登錄成功后,在session中保存用戶(hù)信息并跳轉(zhuǎn)至index.jsp頁(yè)面中,在該頁(yè)面中顯示用戶(hù)名(注:需進(jìn)行session是否為空的判斷)index.jsp頁(yè)面中提供注銷(xiāo)按鈕,點(diǎn)擊注銷(xiāo)按鈕之后頁(yè)面跳轉(zhuǎn)至userLogin.jsp登錄頁(yè)面分析登錄頁(yè)提交表單到對(duì)應(yīng)的JSP頁(yè)面登錄成功時(shí)在session中保存用戶(hù)信息在其他頁(yè)面中從session中取出用戶(hù)信息顯示清空session,實(shí)現(xiàn)注銷(xiāo)課堂練習(xí)共性問(wèn)題集中講解完成時(shí)間:10分鐘30/41使用cookie自動(dòng)填寫(xiě)用戶(hù)名cookie以文件方式保存數(shù)據(jù)添加數(shù)據(jù)publicvoidaddCookie(Cookiecookie)獲取數(shù)據(jù)publicCookie[]getCookies()設(shè)置有效期publicvoidsetMaxAge(intexpiry)用戶(hù)可以禁用cookie1、瀏覽器關(guān)閉,會(huì)話結(jié)束,但為什么有些論壇在用戶(hù)再次進(jìn)入的時(shí)候卻可以識(shí)別用戶(hù)身份,并且用戶(hù)狀態(tài)為:已登錄?2、用戶(hù)每次訪問(wèn)郵箱的時(shí)候,頁(yè)面上會(huì)自動(dòng)顯示該用戶(hù)名?問(wèn)題演示示例6
:使用cookie自動(dòng)填寫(xiě)用戶(hù)名31/41課堂練習(xí)需求說(shuō)明繼續(xù)完善上次上機(jī)練習(xí),在cookie中保存用戶(hù)名,關(guān)閉瀏覽器再次打開(kāi)index.jsp頁(yè)面時(shí),自動(dòng)填寫(xiě)用戶(hù)名分析登錄成功時(shí),在cookie中保存用戶(hù)名在登錄頁(yè)獲取cookie中保存的用戶(hù)名完成自動(dòng)填寫(xiě)用戶(hù)名功能共性問(wèn)題集中講解完成時(shí)間:5分鐘32/41application實(shí)現(xiàn)計(jì)數(shù)器分析每個(gè)用戶(hù)都需要使用訪問(wèn)次數(shù)application可在整個(gè)項(xiàng)目中共享使用數(shù)據(jù)使用application實(shí)現(xiàn)計(jì)數(shù)器每次訪問(wèn)該頁(yè)面,計(jì)數(shù)器加1解決方法publicvoidsetAttribute(Stringname,Objectobject)publicObjectgetAttribute(Stringname)統(tǒng)計(jì)頁(yè)面的訪問(wèn)次數(shù)?問(wèn)題演示示例7
:使用application實(shí)現(xiàn)計(jì)數(shù)器33/41課堂練習(xí)需求說(shuō)明繼續(xù)完善上次上機(jī)練習(xí),實(shí)現(xiàn)統(tǒng)計(jì)userLogin.jsp登錄頁(yè)面被訪問(wèn)的次數(shù)分析訪問(wèn)登錄頁(yè)的時(shí)候?qū)㈨?yè)面訪問(wèn)次
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 七年級(jí)數(shù)學(xué)上冊(cè)第5章一元一次方程5.4一元一次方程的應(yīng)用第1課時(shí)基本數(shù)量與行程問(wèn)題聽(tīng)評(píng)課記錄(新版浙教版)
- 冀教版七年級(jí)數(shù)學(xué)上冊(cè)聽(tīng)評(píng)課記錄5.4.4 追及、方案問(wèn)題
- 人教版數(shù)學(xué)九年級(jí)上冊(cè)26.1.2《二次函數(shù)的圖象》聽(tīng)評(píng)課記錄
- 生態(tài)產(chǎn)品供應(yīng)合同(2篇)
- 環(huán)境監(jiān)測(cè)系統(tǒng)招標(biāo)合同(2篇)
- 部編版八年級(jí)歷史上冊(cè)《第16課 毛澤東開(kāi)辟井岡山道路》聽(tīng)課評(píng)課記錄
- 晉教版地理七年級(jí)上冊(cè)《3.1 海陸分布》聽(tīng)課評(píng)課記錄4
- 首師大版道德與法治七年級(jí)上冊(cè)2.1《青春悄悄來(lái)》聽(tīng)課評(píng)課記錄
- 人教版歷史八年級(jí)上冊(cè)第25課《經(jīng)濟(jì)和社會(huì)生活的變化》聽(tīng)課評(píng)課記錄
- 北師大版歷史九年級(jí)上冊(cè)第1課《西亞和北非的古代文明》聽(tīng)課評(píng)課記錄
- 2024年安徽省初中學(xué)業(yè)水平考試中考數(shù)學(xué)試卷(真題+答案)
- 抖音房產(chǎn)直播敏感詞匯表
- 學(xué)前兒童美術(shù)教育與活動(dòng)指導(dǎo)第4版全套教學(xué)課件
- 標(biāo)桿門(mén)店打造方案
- 2022-2023年人教版九年級(jí)化學(xué)(上冊(cè))期末試題及答案(完整)
- 中華民族共同體概論課件專(zhuān)家版2第二講 樹(shù)立正確的中華民族歷史觀
- 食品安全公益訴訟
- 中學(xué)生低碳生活調(diào)查報(bào)告
- 游泳池經(jīng)營(yíng)合作方案
- 弱電項(xiàng)目經(jīng)理工作總結(jié)
- 擘畫(huà)未來(lái)技術(shù)藍(lán)圖
評(píng)論
0/150
提交評(píng)論