版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、狀態(tài)管理第四章回顧及作業(yè)點評JSP如何處理客戶端的請求?請描述轉(zhuǎn)發(fā)與重定向有何區(qū)別?JSP如何實現(xiàn)數(shù)據(jù)庫訪問?預習檢查除了request對象和response對象,JSP還包括哪些內(nèi)置對象?Cookie的作用?如何實現(xiàn)訪問控制?請說明session對象與application對象的區(qū)別?使用Cookie實現(xiàn)保存已訪問的信息使用session對象實現(xiàn)頁面訪問控制使用application對象實現(xiàn)統(tǒng)計在線人數(shù)本章任務掌握Cookie的原理及應用掌握session的原理及應用掌握application的原理及應用本章目標生活中的Cookie瀏覽購物網(wǎng)站查看不同商品時,系統(tǒng)會自動記錄已經(jīng)瀏覽過的商品
2、什么是CookieCookie是Web服務器保存在客戶端的一系列文本信息Cookie的作用對特定對象的追蹤統(tǒng)計網(wǎng)頁瀏覽次數(shù)簡化登錄安全性能容易信息泄露Cookie的語法2-1導入包創(chuàng)建Cookieparameter:用于代表cookie的名稱(key)value:用于表示當前key名稱所對應的值寫入CookieCookie newCookie=new Cookie(parameter, value);response.addCookie(newCookie)import=javax.servlet.http.CookieCookie的語法2-2設置Cookie屬性的常用方法類型方法名稱說 明v
3、oidsetMaxAge(int expiry)設置Cookie的有效期,以秒為單位voidsetValue(String value)在Cookie創(chuàng)建后,對Cookie進行賦值 StringgetName()獲取Cookie的名稱StringgetValue()獲取Cookie的值StringgetMaxAge()獲取Cookie的有效時間,以秒為單位JSP中應用Cookie2-1用戶登錄成功后,將用戶信息保存到Cookie中,在頁面讀取Cookie并顯示JSP中應用Cookie2-2從登錄驗證頁面表單中獲取用戶名在顯示頁面顯示用戶名%/獲取請求中的Cookie,以數(shù)組方式保存 Cooki
4、e cookies =request.getCookies(); /循環(huán)遍歷數(shù)組,得到key=uname的Cookie for(int i=0;i 歡迎你:/獲取key對應的value,輸出顯示 創(chuàng)建Cookie,使用response的addCookie方法保存Cookie使用reqeust獲取Cookie數(shù)組,通過cookie的名稱獲取對應的內(nèi)容演示示例:使用Cookie保存用戶名稱練習使用Cookie簡化用戶登錄需求說明用戶首次登錄時要求輸入用戶名和密碼登錄成功后保存用戶的登錄狀態(tài)設置cookie的有效期為5分鐘在cookie有效期內(nèi),可無需登錄直接進入歡迎頁面提示如果用戶名和密碼正確,創(chuàng)
5、建Cookie保存信息使用setMaxAge()方法設置Cookie的有效期頁面訪問時首先讀取Cookie進行用戶信息判斷完成時間:25分鐘生活中的訪問控制下載電子書時,系統(tǒng)會提示用戶登錄網(wǎng)站 點擊下載, 系統(tǒng)轉(zhuǎn)入登錄頁面 每次下載之前,系統(tǒng)如何判斷用戶是否已經(jīng)登錄?如何實現(xiàn)訪問控制系統(tǒng)如何保存不同用戶的登錄信息?使用JSP會話跟蹤機制,可以維持每個用戶的會話信息,也就是為不同的用戶保存不同的數(shù)據(jù) 12用戶登錄進入用戶注冊頁面系統(tǒng)保存該用戶的登錄信息進入欲訪問的頁面是否是注冊用戶否是用戶直接訪問某個頁面進入用戶登錄頁面顯示該頁面內(nèi)容系統(tǒng)是否保存了該用戶登錄信息否是訪問流程控制分析瀏覽器關(guān)閉,本
6、次會話結(jié)束什么是會話一個會話就是瀏覽器與服務器之間的一次通話,包含瀏覽器與服務器之間的多次請求、響應過程 瀏覽器session對象請求 1瀏覽器請求 2nsession是JSP內(nèi)置對象,與瀏覽器一一對應,允許用戶存儲和提取會話狀態(tài)的信息響應 1響應 2nsession對象JSP內(nèi)置對象sessionsession對象用來存儲有關(guān)用戶會話的所有信息session對象常用方法:類型方法名稱說 明voidsetAttribute(String key,Object value)以key/value的形式保存對象值ObjectgetAttribute(String key)通過key獲取對象值 int
7、getMaxInactiveInterval()獲取session的有效非活動時間,以秒為單位StringgetId()獲取session對象的編號voidinvalidate()設置session對象失效session與窗口的關(guān)系一個session對應一個窗口,那么通過超鏈接打開的窗口是否也是新的session呢?演示示例:判斷session的ID每個session對象都與瀏覽器一一對應 重新開啟一個瀏覽器,相當于重新創(chuàng)建一個session對象重新開啟一個IE窗口,直接訪問系統(tǒng)首頁面通過超鏈接打開的新窗口,新窗口的session與其父窗口的session相同在新聞發(fā)布系統(tǒng)中,增加訪問控制功能
8、,具體要求如下:提供用戶登錄功能管理員有權(quán)對新聞實現(xiàn)增刪改的操作使用session實現(xiàn)訪問控制4-1登錄處理頁面1、獲得登錄信息2、查詢數(shù)據(jù)庫,判斷該用戶是否注冊3、如果該用戶已注冊,在session中保存該用戶的登錄信息4、如果用戶時管理員就跳轉(zhuǎn)到管理員界面;否則跳轉(zhuǎn)到新聞發(fā)布系統(tǒng)的首頁面管理員界面1、從session中提取該用戶信息2、如果用戶信息存在,顯示管理員界面內(nèi)容4、如果用戶信息不存在,跳轉(zhuǎn)到登錄頁面用戶已注冊session中無法提取到用戶信息123使用session實現(xiàn)訪問控制4-2在控制頁面獲取用戶請求的登錄信息進行驗證登錄處理頁面的代碼片斷在session中存放用戶登錄信息使
9、用session實現(xiàn)訪問控制4-3 在新聞發(fā)布系統(tǒng)新聞發(fā)布頁面增加登錄驗證如果session中不存在該用戶的登錄信息,轉(zhuǎn)入登錄頁面使用session實現(xiàn)訪問控制4-4訪問控制效果驗證,步驟如下:直接在IE地址欄中輸入URL,訪問系統(tǒng)首頁面通過登錄頁面進入系統(tǒng)首頁面重新開啟一個IE窗口,直接訪問系統(tǒng)首頁面演示示例:使用session實現(xiàn)訪問控制練習使用session實現(xiàn)訪問控制需求說明新聞發(fā)布必須是管理員登錄后才能發(fā)布業(yè)務處理頁面獲取用戶登錄信息訪問數(shù)據(jù)庫進行登錄驗證驗證成功后將信息保存到session在新聞發(fā)布頁面添加訪問控制提示:session中保存的數(shù)據(jù)類型是Object類型完成時間:20
10、分鐘include指令2-1除了首頁面,其它頁面中同樣需要加入登錄驗證, 有沒有辦法避免冗余代碼的出現(xiàn)?可以將一些共性的內(nèi)容寫入一個單獨的文件中,然后通過include指令引用該文件,從而降低代碼的冗余問題,也便于修改共性內(nèi)容 include指令2-2創(chuàng)建登錄驗證文件 loginControl.jsp在后臺首頁面中使用include指令引用登錄驗證文件Cookie與session的比較session是在服務器端保存用戶信息,Cookie是在客戶端保存用戶信息session中保存的是對象,Cookie保存的是字符串session隨會話結(jié)束而關(guān)閉,Cookie可以長期保存在客戶端Cookie通常用
11、于保存不重要的用戶信息,重要的信息使用session保存JSP內(nèi)置對象applicationapplication類似于系統(tǒng)的“全局變量”,用于實現(xiàn)用戶之間的數(shù)據(jù)共享application對象的常用方法:void setAttribute(String key, Object value):以鍵/值的方式,將一個對象的值存放到application中Object getAttribute(String key):根據(jù)鍵去獲取application中存放對象的值application.setAttribute(LOGINED_USER, new ArrayList();if (applicati
12、on.getAttribute(LOGINED_USER) != null) List loginedUsers = (List) application.getAttribute(LOGINED_USER);application對象application是JSP內(nèi)置對象實現(xiàn)服務內(nèi)數(shù)據(jù)的共享在服務內(nèi)值存在一個對象實例application對象的常用方法類型方法名稱說 明voidsetAttribute(String key,Object value)以key/value的形式保存對象值ObjectgetAttribute(String key)通過key獲取對象值 StringgetReal
13、Path(String path)返回相對路徑的真實路徑實現(xiàn)訪問人數(shù)統(tǒng)計2-1創(chuàng)建登錄處理頁面登錄處理頁面代碼片斷if (rs.next() User logineduser = new User(name, pass);session.setAttribute(LOGINED_USER, logineduser);List loginedUsers = new ArrayList(); /訪問者列表if (application.getAttribute(LOGINED_USER) != null) loginedUsers = (List) application.getAttribute
14、(LOGINED_USER);loginedUsers.add(logineduser); /把新登錄用戶的信息存入訪問者列表中application.setAttribute(LOGINED_USER, loginedUsers);response.sendRedirect(index.jsp);在全局范圍內(nèi)存入訪問者列表從全局范圍內(nèi)取出原有的訪問者列表實現(xiàn)訪問人數(shù)統(tǒng)計2-2創(chuàng)建已訪問人數(shù)統(tǒng)計頁面已訪問人數(shù)統(tǒng)計頁面代碼片斷目前,有人已經(jīng)訪問過本網(wǎng)站!從全局范圍內(nèi)取出訪問者列表演示示例:訪問人數(shù)統(tǒng)計效果練習網(wǎng)頁計數(shù)器需求說明統(tǒng)計網(wǎng)頁訪問次數(shù)業(yè)務處理頁面設置網(wǎng)頁訪問計數(shù)器初始值使用applica
15、tion保存計數(shù)器頁面加載時首先取出application中原始計數(shù)器的值在原始計數(shù)器值基礎上執(zhí)行+1操作,然后在保存到application中完成時間:20分鐘JSP內(nèi)置對象的范圍對象的范圍范圍決定了JSP是否可以進行對象訪問范圍的分類名稱說 明page范圍在一個頁面范圍內(nèi)有效,通過pageContext對象訪問該范圍內(nèi)的對象request范圍 在一個服務器請求范圍內(nèi)有效,與客戶端請求綁定一起session范圍在一次會話范圍內(nèi)容有效,在會話期間與session綁定的對象皆屬于該范圍application范圍在一個應用服務器范圍內(nèi)有效,當應用服務啟動后即創(chuàng)建該對象,并向所有用戶所共享演示示例:對象范圍的測試練習新聞欄目的讀取需求說明:從數(shù)據(jù)庫中讀取出新聞欄目按照頁面布局實現(xiàn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度農(nóng)業(yè)生態(tài)公園綠化景觀施工監(jiān)理合同4篇
- 2025年度冷鏈食品加工基地1#生產(chǎn)線冷鏈食品冷鏈配送服務合同4篇
- 二零二五版美術(shù)館東館館舍租賃消防安全管理合同3篇
- 二零二五年度模特形象代言人合同
- 二零二五年度互聯(lián)網(wǎng)數(shù)據(jù)中心運維人員聘用合同范本4篇
- 二零二五年度安置房買賣合同集錦:安置房維修基金管理規(guī)范3篇
- 二零二五年度應急救援駕駛員聘用合同4篇
- 二零二五年度儲煤場租賃及煤炭倉儲設施租賃與維護合同4篇
- 案例1-西南航空公司的核心競爭力
- 二零二五版農(nóng)業(yè)種植項目科技培訓與人才培養(yǎng)合同4篇
- (完整版)高考英語詞匯3500詞(精校版)
- 我的家鄉(xiāng)瓊海
- (2025)專業(yè)技術(shù)人員繼續(xù)教育公需課題庫(附含答案)
- 《互聯(lián)網(wǎng)現(xiàn)狀和發(fā)展》課件
- 【MOOC】計算機組成原理-電子科技大學 中國大學慕課MOOC答案
- 2024年上海健康醫(yī)學院單招職業(yè)適應性測試題庫及答案解析
- 2024年湖北省武漢市中考語文適應性試卷
- 非新生兒破傷風診療規(guī)范(2024年版)解讀
- 2024-2030年電炒鍋項目融資商業(yè)計劃書
- EDIFIER漫步者S880使用說明書
- 上海市華東師大二附中2025屆高二數(shù)學第一學期期末統(tǒng)考試題含解析
評論
0/150
提交評論