#Cookie势篡、Session#JavaWeb學習筆記(2020/3/2)

一、會話技術(shù)

客戶端之間的通話:Cookie技術(shù)
服務器端會話技術(shù):Session技術(shù)

目的是在一次會話中共享數(shù)據(jù)蹲诀。

1、Cookie技術(shù)

使用Cookie的步驟:

  • 1.一個Servlet中畸悬、創(chuàng)建一個Cookie對象,存入鍵值對信息
           Cookie cookie = new Cookie("msg","こんにちは");
  • 2.使用response對象的 void addCookie(Cookie var1);方法添加Cookie到當前會話中侧甫。
           response.addCookie(cookie);
  • 3.另一個Servlet中、使用request對象獲取Cookie對象數(shù)組蹋宦。
           Cookie[] cookies = request.getCookies();
  • 4.通過Cookie的getName()方法和getValue()方法,獲取存入的鍵值對信息
            String name = cookie.getName();
            String value = cookie.getValue();

Cookie的原理:

image.png

Cookie的生命周期

Cookie默認是存儲在瀏覽器內(nèi)存中的咒锻,當瀏覽器關(guān)閉后冷冗,Cookie就消失了。
可以設置Cookie的生命周期:
setMaxAge(int seconds)

  1. 正數(shù):將Cookie數(shù)據(jù)寫到硬盤的文件中惑艇。
    持久化存儲蒿辙。并指定cookie存活時間拇泛,時間到后,cookie文件自動失效思灌。
  2. 負數(shù):默認值
  3. 零:刪除cookie信息

Tomcat 8 之后俺叭,Cookie可以存儲中文數(shù)據(jù)了!

Cookie的共享范圍

  • 1.同一個Tomcat之間泰偿、不同項目之間Cookie默認是不共享的熄守。
    設置 cookie.setPath("/");后,不同項目之間就能共享了耗跛。
  • 2.不同Tomcat之間裕照,默認Cookie也是不能共享的。
    設置一級域名相同可以實現(xiàn)不同服務器之間的Cookie共享调塌。
    cookie.setDomain(String path)
    例如: cookie.setDomain(".TopDomain.com");則sub1.TopDomain.com和sub1.TopDomain.com之間的cookie是可以共享的晋南。

如何修改Cookie

  • 1.獲取該cookie
  • 2.使用cookie.setValue(String value);方法設置新值
  • 3.使用response.AddCookie(cookie)返回到響應頭中

Tomcat 8 對特殊字符還是無法處理,cookie的value不讓用特殊字符羔砾,比如說空格

解決方法:
存儲:將value值轉(zhuǎn)換為URL編碼负间,URLEncoder.encode(value,"utf-8");
存入cookie中。
使用:要使用的話姜凄,先解碼唉擂,URLDecoder.decode(value,"utf-8");
再使用即可

cookie的特點
  1. cookie存儲數(shù)據(jù)在客戶端瀏覽器
  2. 瀏覽器對于單個cookie 的大小有限制(4kb) 以及 對同一個域名下的總cookie數(shù)量也有限制(20個)

2、Session技術(shù)

Session是服務器端的會話技術(shù)檀葛,依賴于Cookie來進行數(shù)據(jù)共享玩祟。
1. 獲取HttpSession對象:
HttpSession session = request.getSession();
2. 使用HttpSession對象:
Object getAttribute(String name)
void setAttribute(String name, Object value)
void removeAttribute(String name)

原理:

image.png

注意點:

    1. 當客戶端關(guān)閉后,服務器不關(guān)閉屿聋,兩次獲取session是否為同一個空扎?
      默認情況是不是同一個,因為關(guān)閉客戶端也就是關(guān)閉了會話润讥,Cookie就消失了转锈,之前的session也找不到了。
      延長銷毀時間:
      把JSESSIONID手動存入Cookie中楚殿,并延長Cookie的存活時間撮慨。
    1. 客戶端不關(guān)閉,服務器關(guān)閉后脆粥,兩次獲取的session是同一個嗎砌溺?
      顯然不是、服務器關(guān)閉了变隔,服務器中的session對象就全部銷毀了规伐。
      延長銷毀時間:
      session鈍化+session活化、簡單來說就是把session對象序列化到硬盤上匣缘,當服務器啟動時猖闪,再反序列化到服務器中即可鲜棠,把session對象存起來
  • 3.session什么時候被銷毀培慌?

    • 關(guān)閉服務器
    • 自殺豁陆,session對象調(diào)用invalidate()方法,銷毀所有session對象
    • 一段時間不活動后吵护,銷毀session對象盒音,默認30分鐘。


      image.png

session的特點:

  • 1.session存儲數(shù)據(jù)到服務器端何址,沒有大小限制里逆。
  • 2.session可以存儲任意類型數(shù)據(jù)。
  • 3.session存儲在服務器端用爪,比cookie安全原押。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市偎血,隨后出現(xiàn)的幾起案子诸衔,更是在濱河造成了極大的恐慌,老刑警劉巖颇玷,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件笨农,死亡現(xiàn)場離奇詭異,居然都是意外死亡帖渠,警方通過查閱死者的電腦和手機谒亦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來空郊,“玉大人份招,你說我怎么就攤上這事∧酰” “怎么了锁摔?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長哼审。 經(jīng)常有香客問我谐腰,道長,這世上最難降的妖魔是什么涩盾? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任十气,我火速辦了婚禮,結(jié)果婚禮上旁赊,老公的妹妹穿的比我還像新娘桦踊。我一直安慰自己,他們只是感情好终畅,可當我...
    茶點故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布籍胯。 她就那樣靜靜地躺著,像睡著了一般离福。 火紅的嫁衣襯著肌膚如雪杖狼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天妖爷,我揣著相機與錄音蝶涩,去河邊找鬼。 笑死絮识,一個胖子當著我的面吹牛绿聘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播次舌,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼熄攘,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了彼念?” 一聲冷哼從身側(cè)響起挪圾,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎逐沙,沒想到半個月后哲思,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡吩案,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年棚赔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片徘郭。...
    茶點故事閱讀 38,768評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡靠益,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出崎岂,到底是詐尸還是另有隱情捆毫,我是刑警寧澤,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布冲甘,位于F島的核電站绩卤,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏江醇。R本人自食惡果不足惜濒憋,卻給世界環(huán)境...
    茶點故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望陶夜。 院中可真熱鬧凛驮,春花似錦、人聲如沸条辟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至本姥,卻和暖如春肩袍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背婚惫。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工氛赐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人先舷。 一個月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓艰管,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蒋川。 傳聞我的和親對象是個殘疾皇子牲芋,可洞房花燭夜當晚...
    茶點故事閱讀 43,666評論 2 350

推薦閱讀更多精彩內(nèi)容