3月20日

Cookie & Session

(一)會(huì)話技術(shù)的概述

1、每個(gè)用戶與服務(wù)器進(jìn)行交互過程中,產(chǎn)生一些各自的數(shù)據(jù),程序想要把這些數(shù)據(jù)進(jìn)行保存,就需要使用會(huì)話技術(shù)

2、例如:用戶點(diǎn)擊超鏈接購買一個(gè)商品,程序應(yīng)該保存用戶所購買的商品,以便于用戶點(diǎn)擊結(jié)賬時(shí),可以得到用戶所購買的商品信息

3、思考:用戶購買的商品保存在Request或ServletContext中是否可以?答案:無論保存在Request或ServletContext中都不行(二)會(huì)話技術(shù)的實(shí)現(xiàn)原理一、會(huì)話技術(shù)分類1、Cookie技術(shù)

(1)Cookie是客戶端技術(shù),程序把每個(gè)用戶的數(shù)據(jù)以cookie的形式保存到各自的瀏覽器中,

(2)當(dāng)用戶使用瀏覽器再次訪問服務(wù)器中的Web資源的時(shí)候,就會(huì)帶著各自的數(shù)據(jù)過去。

(3)這樣Web資源處理的就是用戶各自的數(shù)據(jù)了

2、Session技術(shù)(1)Session是服務(wù)器端技術(shù),利用這個(gè)技術(shù),服務(wù)器在運(yùn)行時(shí)為每一個(gè)用戶的瀏覽器創(chuàng)建一個(gè)獨(dú)享的Session對(duì)象。(2)由于Session為用戶瀏覽器獨(dú)享,所有用戶在訪問服務(wù)器的時(shí)候,可以把各自的數(shù)據(jù)放在各自的Session中,(3)當(dāng)用戶再次訪問服務(wù)器中的Web資源的時(shí)候,其他的Web資源再從用戶各自的Session中取出數(shù)據(jù),為用戶服務(wù)二、會(huì)話技術(shù)的實(shí)現(xiàn)原理1、Cookie的實(shí)現(xiàn)原理2、Session的實(shí)現(xiàn)原理(三)記錄用戶上次訪問時(shí)間的分析分析需求和流程(四)記錄用戶上次訪問時(shí)間的代碼實(shí)現(xiàn)一、Cookie的簡單使用1、獲得從瀏覽器帶過來的Cookie? ? 通過HttpServletRequest對(duì)象中的方法:? ? ? ? getCookies()2、向?yàn)g覽器回寫Cookie? ? 通過HttpServletResponse對(duì)象中的方法:? ? ? ? addCookie(Cookie cookie)3、Cookie的構(gòu)造? ? Cookie(String name, String value)二、案例代碼實(shí)現(xiàn)? ? 創(chuàng)建一個(gè)Web項(xiàng)目創(chuàng)建包結(jié)構(gòu)? ? 代碼實(shí)現(xiàn)? ? ? ? 編寫工具類? ? ? ? 編寫Servlet(五)Cookie的分類一、案例存在問題問題描述:? ? 用戶訪問Servlet,記錄用戶的上次訪問時(shí)間,但是如果用戶將瀏覽器關(guān)閉,再重新打開瀏覽器訪問程序,程序就會(huì)把其當(dāng)成是第一次訪問的用戶(顯示:您好,歡迎來到本網(wǎng)站)二、Cookie的分類1、默認(rèn)級(jí)別的Cookie指的是沒有設(shè)置有效時(shí)間的Cookie,默認(rèn)的情況下,只要關(guān)閉了瀏覽器,Cookie也會(huì)被銷毀(Cookie存在于瀏覽器的內(nèi)存中,當(dāng)關(guān)閉了瀏覽器,Cookie就銷毀了)2、持久級(jí)別的Cookie指的是具有有效的Cookie,這種Cookie的內(nèi)容不是保存在瀏覽器的內(nèi)存中,而是將Cookie的內(nèi)容保存(持久化)到硬盤上。當(dāng)關(guān)閉瀏覽器,再次打開時(shí),會(huì)加載硬盤上的文件,從而Cookie中的數(shù)據(jù)就不會(huì)丟失(六)Cookie的API的概述一、構(gòu)造方法? ? Cookie(String name, String value)? ? 需要傳入字符串類型的名稱和值二、其他的方法? ? 獲得Cookie的名稱:getName()? ? 獲得Cookie的值:getValue()? ? 設(shè)置Cookie的有效域名:setDomain(String domain)? ? 設(shè)置Cookie的有效路徑:setPath(String uri)? ? 設(shè)置Cookie的有效時(shí)長:setMaxAge(int expiry)三、代碼改進(jìn)案例問題解決(七)Cookie的使用細(xì)節(jié)1、一個(gè)Cookie只能標(biāo)識(shí)一種信息,至少含有一個(gè)標(biāo)識(shí)該信息的名稱和值(即鍵值對(duì))2、一個(gè)web站點(diǎn)可以給一個(gè)瀏覽器發(fā)送多個(gè)Cookie,一個(gè)Web瀏覽器也可以存儲(chǔ)多個(gè)Web站點(diǎn)的Cookie3、老版本瀏覽器一般只允許存放300個(gè)Cookie,每個(gè)站點(diǎn)最多可以存放20個(gè)Cookie,每個(gè)Cookie的大小限制為4KB,瀏覽器存放的Cookie的大小和個(gè)數(shù)是有限制的4、如果創(chuàng)建了一個(gè)Cookie,并發(fā)送到瀏覽器,默認(rèn)情況下,它是一個(gè)會(huì)話級(jí)別的Cookie,用戶退出瀏覽器就被刪除了5、如果希望將這個(gè)Cookie存到磁盤上,需要設(shè)置有效時(shí)長,就要調(diào)用setMaxAge(int expiry)方法,以秒為單位6、需要手動(dòng)刪除持久性Cookie的話,可以將Cookie的有效時(shí)長設(shè)置為0,必須注意:刪除Coo



?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 背景在HTTP協(xié)議的定義中,采用了一種機(jī)制來記錄客戶端和服務(wù)器端交互的信息,這種機(jī)制被稱為cookie,cooki...
    時(shí)芥藍(lán)閱讀 2,471評(píng)論 1 17
  • 注:本文轉(zhuǎn)載自前端大全 背景 在HTTP協(xié)議的定義中,采用了一種機(jī)制來記錄客戶端和服務(wù)器端交互的信息,這種機(jī)制被稱...
    楠小忎閱讀 742評(píng)論 0 0
  • 1. cookie 1.1 什么是cookie cookie 是存儲(chǔ)于訪問者的計(jì)算機(jī)中的變量。每當(dāng)同一臺(tái)計(jì)算機(jī)通過...
    cbw100閱讀 4,196評(píng)論 0 13
  • 寫在前面 cookie和session的區(qū)別: 1、cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服...
    Pitfalls閱讀 1,589評(píng)論 0 17
  • 花褪殘紅青杏小。 燕子飛時(shí),綠水人家繞。 枝上柳綿吹又少, 天涯何處無芳草! 墻里秋千墻外道。 墻外行人,墻里佳人...
    37f656f2331b閱讀 199評(píng)論 0 1

友情鏈接更多精彩內(nèi)容