版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第7章會話跟蹤技術學習目的與要求本章重點對會話跟蹤技術作詳細地介紹。通過本章的學習,理解會話跟蹤的含義,掌握會話跟蹤技術的應用。會話跟蹤技術是一種在客戶端與服務器間保持HTTP狀態(tài)的解決方案。主要Cookie技術、session技術、URL重寫技術以及隱藏表單域技術?!禞avaWeb開發(fā)從入門到實戰(zhàn)(第2版·微課視頻版)》陳恒
主編,清華大學出版社,2024
目錄7.1.1Cookie技術7.1.2session技術7.1.3URL重寫技術7.1.4隱藏表單域技術7.1.5實踐環(huán)節(jié)——登錄注銷系統(tǒng)《JavaWeb開發(fā)從入門到實戰(zhàn)(第2版·微課視頻版)》陳恒
主編,清華大學出版社,2024
7.1.1Cookie技術Cookie技術是一種在客戶端保持會話跟蹤的解決方案。通過Cookie,服務器在接收來自客戶端瀏覽器的請求時,能夠通過分析請求頭的內容而得到客戶端特有的信息,從而動態(tài)生成與該客戶端相對應的內容。Cookie可以通過jakarta.servlet.http.Cookie類的構造方法Cookie(Stringname,Stringvalue)創(chuàng)建,示例代碼如下:CookievistedCountC=newCookie("vistedCount","1000");其中,第1個參數(shù)name用于指定Cookie的屬性名;第2個參數(shù)value用于指定屬性值?!禞avaWeb開發(fā)從入門到實戰(zhàn)(第2版·微課視頻版)》陳恒
主編,清華大學出版社,2024
7.1.1Cookie技術創(chuàng)建完成的Cookie對象,可以使用HttpServletResponse對象的addCookie()方法添加到響應對象中,進而讓Cookie對象存儲在客戶端機器上。存儲在客戶端的Cookie,可以通過HttpServletRequest對象的getCookies()方法獲取。Cookie有一定的存活時間,不會在客戶端一直保存。默認情況下,在瀏覽器關閉時失效。若要讓其長時間保存,可以通過Cookie對象的setMaxAge(inttime)方法設置其存活時間(以秒為單位),時間為正整數(shù),表示其存活的秒數(shù);若為負數(shù),表示其為臨時Cookie(在瀏覽器關閉時失效);若為0,表示通知瀏覽器刪除相應的Cookie對象。需要注意的是,在使用Cookie時,要保證瀏覽器接受Cookie?!禞avaWeb開發(fā)從入門到實戰(zhàn)(第2版·微課視頻版)》陳恒
主編,清華大學出版社,2024
7.1.1Cookie技術【例7-1】編寫1個Servlet,在該Servlet中測試Cookie對象的常用方法。啟動服務器,第1次請求CookieTest后(http://localhost:8080/ch7/CookieTest)的顯示結果如圖7.2所示。第2次請求CookieTest后(http://localhost:8080/ch7/CookieTest)的顯示結果如圖7.3所示?!禞avaWeb開發(fā)從入門到實戰(zhàn)(第2版·微課視頻版)》陳恒
主編,清華大學出版社,2024
7.1.1Cookie技術《JavaWeb開發(fā)從入門到實戰(zhàn)(第2版·微課視頻版)》陳恒
主編,清華大學出版社,2024
例7-1實例效果只限于使用同一個瀏覽器并且允許使用Cookie的情況下訪問,這是由Cookie本身的局限性決定的。Cookie的缺點主要集中在其安全性和隱私保護上,主要包括以下幾種:1.Cookie可能被禁用,有的用戶擔心隱私安全問題,很可能會禁用瀏覽器的Cookie功能。2.Cookie是與瀏覽器相關的,即使訪問同一個應用程序,不同瀏覽器之間所保存的Cookie也是不能互相訪問的。3.Cookie可能被刪除,因為每個Cookie都是硬盤上的一個文件,因此很有可能被用戶刪除。4.Cookie的大小和個數(shù)受限,單個Cookie保存的數(shù)據(jù)一般不能超過4KB,很多瀏覽器都限制一個域名最大保存數(shù)量;5.Cookie安全性不夠高,所有的Cookie都是以純文本的形式記錄于文件中,因此,如果要保存用戶名和密碼等信息時,最好事先做加密處理。目錄7.1.1Cookie技術7.1.2session技術7.1.3URL重寫技術7.1.4隱藏表單域技術7.1.5實踐環(huán)節(jié)——登錄注銷系統(tǒng)《JavaWeb開發(fā)從入門到實戰(zhàn)(第2版·微課視頻版)》陳恒
主編,清華大學出版社,2024
7.1.2session技術session技術是指使用HttpSession對象實現(xiàn)會話跟蹤技術,是一種在服務器端保持會話跟蹤的解決方案。HttpSession對象將在用戶第1次訪問服務器時由容器創(chuàng)建(只有訪問JSP、Servlet等程序時才會創(chuàng)建,只訪問HTML、image等靜態(tài)資源并不創(chuàng)建),當用戶調用其失效方法(invalidate()方法)或超過其最大不活動時間時會失效。在會話有效期間,用戶與服務器之間的多次請求都屬于同一個會話。服務器在創(chuàng)建session對象時,會為其分配一個唯一的會話標識sessionId,以“JSESSIONID”的屬性名保存在客戶端Cookie中,在用戶后續(xù)的請求中,服務器通過讀取Cookie中的JSESSIONID屬性值來識別不同的用戶,從而實現(xiàn)對每個用戶的會話跟蹤。有關session技術的使用請讀者參見4.4節(jié)和6.7節(jié)?!禞avaWeb開發(fā)從入門到實戰(zhàn)(第2版·微課視頻版)》陳恒
主編,清華大學出版社,2024
目錄7.1.1Cookie技術7.1.2session技術7.1.3URL重寫技術7.1.4隱藏表單域技術7.1.5實踐環(huán)節(jié)——登錄注銷系統(tǒng)《JavaWeb開發(fā)從入門到實戰(zhàn)(第2版·微課視頻版)》陳恒
主編,清華大學出版社,2024
7.1.3URL重寫技術URL重寫是指服務器程序對接收的URL請求重新寫成網(wǎng)站可以處理的另一個URL的過程。URL重寫技術是實現(xiàn)動態(tài)網(wǎng)站會話跟蹤的重要保障。在實際應用中,當不能確定客戶端瀏覽器是否支持Cookie的情況下,使用URL重寫技術可以對請求的URL地址追加會話標識,從而實現(xiàn)用戶的會話跟蹤功能。URL重寫實現(xiàn)會話跟蹤,要保證每個頁面都必須使用Servlet或JSP動態(tài)頁面。因為附加在URL上的SessionID是動態(tài)產生,所以對于靜態(tài)頁面的跳轉,URL重寫機制無能為力?!禞avaWeb開發(fā)從入門到實戰(zhàn)(第2版·微課視頻版)》陳恒
主編,清華大學出版社,2024
7.1.3URL重寫技術可以通過HttpServletResponse的encodeURL()方法和encodeRedirectURL()方法實現(xiàn)URL重寫,其中encodeRedirectURL()方法主要對使用sendRedirect()方法的URL進行重寫。URL重寫方法根據(jù)請求信息中是否包含Set-Cookie請求頭來決定是否進行URL重寫,若包含了該請求頭,將URL原樣輸出;若不包含,則將會話標識JSESSIONID重寫到URL中。URL重寫示例代碼如下:
//對重定向的URL進行重寫
StringencodeURL=response.encodeRedirectURL("toRedirectServlet");
response.sendRedirect(encodeURL);《JavaWeb開發(fā)從入門到實戰(zhàn)(第2版·微課視頻版)》陳恒
主編,清華大學出版社,2024
7.1.3URL重寫技術首先,對谷歌瀏覽器Cookie的禁用設置,如圖7.4所示。然后,使用禁用Cookie的谷歌瀏覽器運行例6-7,程序運行結果如圖7.5~7.7所示?!禞avaWeb開發(fā)從入門到實戰(zhàn)(第2版·微課視頻版)》陳恒
主編,清華大學出版社,2024
7.1.3URL重寫技術從圖7.6和7.7中,可以看出session對象發(fā)生了改變,也就是說在Cookie禁用的情況下,無法使用session技術跟蹤客戶端的用戶狀態(tài)?!纠?-2】使用URL重寫技術跟蹤例6-7的用戶狀態(tài)?!禞avaWeb開發(fā)從入門到實戰(zhàn)(第2版·微課視頻版)》陳恒
主編,清華大學出版社,2024
目錄7.1.1Cookie技術7.1.2session技術7.1.3URL重寫技術7.1.4隱藏表單域技術7.1.5實踐環(huán)節(jié)——登錄注銷系統(tǒng)《JavaWeb開發(fā)從入門到實戰(zhàn)(第2版·微課視頻版)》陳恒
主編,清華大學出版社,2024
7.1.4隱藏表單域技術利用HTML的hidden屬性,將客戶端的信息,在用戶不察覺的情形下,隨著請求一起發(fā)送給服務器處理。例如:<inputtype="hidden"name="userID"value="15">【例7-3】編寫JSP頁面login.jsp,在該頁面中通過表單向名字為login的Servlet對象(由LoginServlet類負責創(chuàng)建)提交用戶名,login將用戶名以隱藏表單域的形式提交給另一個Servlet對象greet(由GreetServlet類負責創(chuàng)建),greet將login.jsp提交的用戶名顯示在瀏覽器中。login和greet是處理不同請求的Servlet,但是也可以實現(xiàn)會話跟蹤?!禞avaWeb開發(fā)從入門到實戰(zhàn)(第2版·微課視頻版)》陳恒
主編,清華大學出版社,2024
目錄7.1.1Cookie技術7.1.2session技術7.1.3URL重寫技術7.1.4隱藏表單域技術7.1.5實踐環(huán)節(jié)——登錄注銷系統(tǒng)《JavaWeb開發(fā)從入門到實戰(zhàn)(第2版·微課視頻版)》陳恒
主編,清華大學出版社,2024
7.1.5實踐環(huán)節(jié)——登錄注銷系統(tǒng)編寫一個登錄注銷系統(tǒng),用戶登錄成功的情況下,將用戶的信息保存在會話HttpSession中,用戶信息可以在會話過程中任意頁面或Servlet中被獲取并顯示,使用HttpSession的invalidate()方法實現(xiàn)系統(tǒng)的注銷功能。一旦注銷,該用戶信息丟失,用戶需要重新登錄。該系統(tǒng)需要考慮用戶瀏覽器禁用Cookie的情況?!禞avaWeb開發(fā)從入門到實戰(zhàn)(第2版·微課視頻版)》陳恒
主編,清華大學出版社,2024
本章小結HTTP協(xié)議是一種無狀態(tài)的協(xié)議,也就是說當用戶請求一個資源,服務器根據(jù)客戶端請求做出響應,回發(fā)到客戶端后,就關閉了連接。但是,實際生活中可能有類似網(wǎng)上購物的場
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度人工智能實習生勞動合同3篇
- 采購合同中的家具定制3篇
- 采購合同評審表的使用方法3篇
- 采購合同樣本示例3篇
- 2024年度二手房中介買賣合同范文:快速交易版3篇
- 采購合同范本操作實務3篇
- 采購合同的綠色采購與可持續(xù)發(fā)展3篇
- 2024年洗車場地租賃與洗車服務品牌合作合同3篇
- 采購合同中的供應鏈在線協(xié)同管理平臺3篇
- 采購合同管理表格的使用心得3篇
- 天津工業(yè)大學《工程力學》2017-2018-1期末試卷及答案
- 基于手機藍牙的智能電燈與風扇控制的設計
- 能力素質,勝任力模型
- 高中地理學業(yè)水平考試知識點(全套)
- 轉速、電流雙閉環(huán)直流調速系統(tǒng)設計
- 工程總承包EPC實施方案
- 2021-2022學年安徽省銅陵市銅官區(qū)六年級(上)期末數(shù)學試卷答案與祥細解析
- 民間儒教安龍謝土《土皇經》
- 6南寧駿業(yè)貨幣資金審計工作底稿
- 環(huán)氧樹脂的固化機理及其常用固化劑.ppt
- 反恐怖應急預案
評論
0/150
提交評論