版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第二章JSP數據交互(一)預習檢查request和response對象的作用和常用方法是什么?針對GET和POST請求如何處理中文亂碼?轉發(fā)與重定向的區(qū)別和應用場合是什么?session對象的作用和常用方法是什么?集中測試2/40回顧與作業(yè)點評在JSP頁面中計算兩個數的和,將結果輸出顯示,橫線處應填寫什么代碼?<%@pagelanguage="java"import="java.util.*,java.text.*"contentType="text/html;charset=utf-8"%><html> <head><title>計算求和</title></head> <body> 兩個數的求和結果為: <% intnumA=4,numB=5; intresult=numA+numB; %> ————— </body></html><%=result%><%out.print(result);%>3/40回顧點評作業(yè)的提交情況和共性問題,教員備課時完成作業(yè)點評本章任務實現(xiàn)在JSP頁面中獲取注冊信息實現(xiàn)企業(yè)郵箱登錄驗證功能實現(xiàn)新聞發(fā)布系統(tǒng)頁面訪問控制4/40本章目標熟練應用request對象獲取用戶請求熟練應用response對象處理響應熟練應用轉發(fā)與重定向控制頁面跳轉掌握session的原理及應用掌握include指令的應用5/40什么是JSP內置對象JSP內置對象是Web容器創(chuàng)建的一組對象<%int[]value={60,70,80};for(inti:value){out.println(i);}
%>沒有進行聲明和創(chuàng)建,但卻可以使用out對象6/40示例JSP內置對象常用的JSP內置對象application…outsessionresponserequest常用的JSP內置對象7/40JSP內置對象request6-1如何實現(xiàn)學員的注冊功能?注冊信息包括:用戶名、密碼、信息來源頁面提交后,顯示學員輸入的數據問題8/40如何獲得用戶填寫的信息?分析JSP內置對象request6-2request對象主要用于處理客戶端請求JSP頁面request對象客戶端請求獲取請求中的信息使用9/40……JSP內置對象request6-3request對象常用方法方法名稱
說明StringgetParameter(Stringname)根據表單組件名稱獲取提交數據String[]getParameterValues(Stringname)獲取表單組件對應多個值時的請求數據voidsetCharacterEncoding(Stringcharset)指定每個請求的編碼RequestDispatchergetRequestDispatcher(Stringpath)返回一個RequestDispatcher對象,該對象的forward()方法用于轉發(fā)請求10/40JSP內置對象request6-4學員注冊頁面<formname="form1"method="post"action="reginfo.jsp"><tableborder="0"align="center"><tr><td>用戶名</td><td><inputtype="text"name="name"></td></tr><tr><td>密碼</td><td><inputtype="password"name="pwd"></td></tr><tr><td>信息來源</td><td><inputtype="checkbox"name="channel"value="報刊">報刊
<inputtype="checkbox"name="channel"value="網絡">網絡
<inputtype="checkbox"name="channel"value="朋友推薦">朋友推薦
<inputtype="checkbox"name="channel"value="電視">電視
</td></tr><!--省略提交、取消按鈕--></table></form>11/40示例信息讀取顯示頁面為什么我們輸入的中文都是亂碼顯示?<%//讀取用戶名和密碼Stringname=request.getParameter("name");Stringpwd=request.getParameter("pwd");
……//HTML頁面//讀取復選框選擇項String[]channels=request.getParameterValues("channel");if(channels!=null){for(Stringchannel:channels){out.println(channel);}}%>JSP內置對象request6-5提問演示示例1:學員注冊12/40示例在頁面設置支持中文字符的字符集,如:UTF-8獲取數據時解決中文亂碼問題<%//以POST方式提交數據時//設置讀取請求信息的字符編碼為UTF-8
request.setCharacterEncoding("UTF-8");
//讀取用戶名和密碼Stringname=request.getParameter("name");Stringpwd=request.getParameter("pwd");%>POST方式JSP內置對象request6-6<%//以GET方式提交數據時//讀取用戶名和密碼Stringname=request.getParameter("name");//對請求數據進行字符編碼
name=newString(name.getBytes("ISO-8859-1"),"UTF-8");%>GET方式1在Tomcat目錄結構\conf\server.xml中設置字符集<Connectorport="8080"protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"URIEncoding="UTF-8"/>GET方式213/40示例學員操作—獲取注冊信息需求說明通過表單提交注冊信息使用request對象獲取表單提交數據將獲取的數據輸出顯示用request.getParameter()方法獲取提交的數據注意處理中文亂碼練習提示完成時間:20分鐘14/40共性問題集中講解常見問題及解決辦法代碼規(guī)范問題調試技巧共性問題集中講解15/40JSP內置對象response3-1response對象用于響應客戶請求并向客戶端輸出信息頁面重定向voidsendRedirect(Stringlocation)客戶端將重新發(fā)送請求到指定的URLJSP頁面response對象客戶端響應從服務器中檢索的信息設置響應參數等16/40<formname="form1"method="post"action="control.jsp">用戶名:<inputtype="text"name="userName">密碼:<inputtype="password"name="pwd"><inputtype="submit"value="登錄"><form>JSP內置對象response3-2實現(xiàn)登錄驗證,并在驗證成功后跳轉至歡迎頁面input.jsp<%request.setCharacterEncoding("UTF-8");Stringname=request.getParameter("userName");Stringpwd=request.getParameter("pwd");if("sa".equals(name)&&"sa".equals(pwd)) response.sendRedirect("e.jsp");%>control.jsp跳轉至歡迎頁面客戶端重新發(fā)送請求演示示例2:response對象17/40示例JSP內置對象response3-3頁面實現(xiàn)跳轉了,請求的信息是否也一起轉移呢?如何才能實現(xiàn)頁面跳轉后,請求信息不丟失呢?使用轉發(fā)取代重定向實現(xiàn)頁面跳轉問題演示示例3:頁面跳轉后獲取請求信息18/40請求的轉發(fā)轉發(fā)的作用在服務器端,將請求發(fā)送給服務器上的其他資源,以共同完成一次請求的處理轉發(fā)的實現(xiàn)RequestDispatcher對象的forward()方法<%RequestDispatcherrd=request.getRequestDispatcher("e.jsp");rd.forward(request,response);%>在多個頁面交互過程中請求中的數據可以共享演示示例4:頁面轉發(fā)后獲取請求信息19/40示例演示示例5:查詢字符串的應用小結轉發(fā)轉發(fā)是在服務器端發(fā)揮作用,將同一請求在服務器資源之間進行傳遞客戶端瀏覽器的地址欄不會顯示轉向后的地址重定向重定向是在客戶端發(fā)揮作用,通過發(fā)送一個新的請求實現(xiàn)頁面轉向在地址欄中可以顯示轉向后的地址20/40學員操作—實現(xiàn)企業(yè)郵箱登錄驗證功能需求說明實現(xiàn)企業(yè)郵箱登錄驗證功能用戶通過JSP頁面輸入用戶名和密碼如果用戶名為lucky,密碼為123456,在歡迎頁面顯示“你好:lucky!”(使用轉發(fā))如果驗證登錄失敗,則返回登錄頁面重新登錄(使用重定向)練習完成時間:20分鐘21/40共性問題集中講解常見問題及解決辦法代碼規(guī)范問題調試技巧共性問題集中講解22/40什么是會話一個會話就是在一段時間內,一個客戶端與Web服務器的一連串相關的交互過程瀏覽器請求1瀏覽器請求2…n響應1響應2…n同一個session對象sessionid相同23/40JSP內置對象sessionsession對象常用方法:方法名稱說明StringgetId()獲取sessionidvoidsetMaxInactiveInterval(intinterval)設定session的非活動時間intgetMaxInactiveInterval()獲取session的有效非活動時間(以秒為單位)voidinvalidate()設置session對象失效voidsetAttribute(Stringkey,Objectvalue)以key/value的形式保存對象值ObjectgetAttribute(Stringkey)通過key獲取對象值voidremoveAttribute(Stringkey)從session中刪除指定名稱(key)所對應的對象24/40session與窗口的關系每個session對象都與一個瀏覽器窗口對應,重新開啟一個瀏覽器窗口,可以重新創(chuàng)建一個session對象(不同版本瀏覽器可能有所差別)通過超鏈接打開的新窗口,新窗口的session與其父窗口的session相同分析演示示例6:獲取session的ID25/40使用session實現(xiàn)訪問控制4-1在新聞發(fā)布系統(tǒng)中,增加訪問控制功能提供用戶登錄功能管理員有權對新聞實現(xiàn)增、刪、改的操作登錄處理頁面1、獲得登錄信息2、查詢數據庫,判斷該用戶是否注冊3、如果該用戶已注冊,在session中保存該用戶的登錄信息4、如果用戶是管理員就跳轉到管理員界面;否則跳轉到新聞發(fā)布系統(tǒng)的首頁面管理員界面1、從session中提取該用戶信息2、如果用戶信息存在,顯示管理員界面內容3、如果用戶信息不存在,跳轉到登錄頁面用戶已注冊session中無法提取到用戶信息12326/40使用session實現(xiàn)訪問控制4-2在控制頁面獲取用戶請求的登錄信息進行驗證<%if("admin".equals(name)&&"admin".equals(pwd)){//如果是已注冊用戶session.setAttribute("login",name);//設置session過期時間session.setMaxInactiveInterval(10*60);request.getRequestDispatcher("admin.jsp").forward(request,response);}else{response.sendRedirect("index.jsp");}%>在session中存放用戶登錄信息27/40示例使用session實現(xiàn)訪問控制4-3在新聞發(fā)布系統(tǒng)新聞發(fā)布頁面增加登錄驗證<%Stringlogin=(String)session.getAttribute("login");if(login==null){ response.sendRedirect("index.jsp"); return;}%>如果session中不存在用戶的登錄信息,轉入登錄頁面演示示例7:使用session實現(xiàn)訪問控制28/40示例使用session實現(xiàn)訪問控制4-4訪問控制效果驗證,步驟如下:直接在瀏覽器地址欄中輸入URL,訪問系統(tǒng)首頁通過登錄頁面進入系統(tǒng)首頁面重新開啟一個新會話窗口,直接訪問系統(tǒng)首頁面29/40學員操作—實現(xiàn)新聞發(fā)布系統(tǒng)訪問控制需求說明新聞發(fā)布系統(tǒng)只允許管理員能夠進入后臺操作頁面普通用戶只有瀏覽新聞和發(fā)布評論的權限session.getAttribute(Stringkey)方法的返回值是一個Object,必須進行強制類型轉換練習提示完成時間:25分鐘30/40共性問題集中講解常見問題及解決辦法代碼規(guī)范問題調試技巧共性問題集中講解31/40session對象的失效手動設置失效:invalidate()超時失效通過setMaxInactiveInterval()方法,單位是秒通過設置項目的web.xml或Tomcat目錄下的/conf/web.xml文件,單位是分鐘<%session.setAttribute("login","admin");session.setMaxInactiveInterval(600);response.sendRedirect("admin.jsp");%><session-config><session-timeout>10</session-timeout></session-config>語法32/40示例示例include指令2-1除了首頁面,其它頁面中同樣需要加入登錄驗證,有沒有辦法避免冗余代碼的出現(xiàn)?可以將一些共性的內容寫入一個單獨的文件中,然后通過include指令引用該文件問題33/40include指令2-2創(chuàng)建登錄驗證文件loginControl.jsp在后臺首頁面中使用include指令引用登錄驗證文件<%Stringlogin=(String)session.getAttribute("login");if(login==null){
response.sendRedirect("index.jsp"); r
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年南丹縣消防救援大隊招聘備考題庫帶答案詳解
- 2025年武漢某初級中學招聘骨干教師6人備考題庫含答案詳解
- 福建醫(yī)科大學2025年安全保衛(wèi)工作人員招聘備考題庫(十四)及完整答案詳解一套
- 2025年福建圖書聯(lián)合發(fā)行有限責任公司招聘備考題庫參考答案詳解
- 2025年貴州桐林鎮(zhèn)村“兩委”后備力量招募備考題庫有答案詳解
- 2025年晉江公開招聘26名政府專職消防員備考題庫及答案詳解參考
- 人力資源經理面試題及考察重點含答案
- 面試題集京東物流司機的招聘要點
- 銀行IT運維面試題庫及答案
- 天翼終端測試工程師測試項目管理知識含答案
- 初三勵志、拼搏主題班會課件
- Cuk斬波完整版本
- GB/T 3521-2023石墨化學分析方法
- 一年級數學重疊問題練習題
- 三維動畫及特效制作智慧樹知到課后章節(jié)答案2023年下吉林電子信息職業(yè)技術學院
- 胰腺囊腫的護理查房
- 臨床醫(yī)學概論常見癥狀課件
- 物業(yè)管理理論實務教材
- 仁川國際機場
- 全檢員考試試題
- 光刻和刻蝕工藝
評論
0/150
提交評論