日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Servlet】Cookie会话跟踪技术

發(fā)布時(shí)間:2025/3/15 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Servlet】Cookie会话跟踪技术 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Cookie

Cookie技術(shù)是一種在客戶端保持會(huì)話跟蹤的解決方案,會(huì)話數(shù)據(jù)保存在客戶端瀏覽器。

Cookie在用戶第一次訪問服務(wù)器時(shí),由服務(wù)器通過響應(yīng)頭的方式發(fā)送給客戶端瀏覽器;當(dāng)用戶再次向服務(wù)器發(fā)送請(qǐng)求時(shí)會(huì)附帶上這些文本信息。

在使用Cookie時(shí),要保證客戶端瀏覽器接受Cookie。

存儲(chǔ)Cookie會(huì)話數(shù)據(jù)

javax.servlet.http.Cookie類,用于存儲(chǔ)會(huì)話數(shù)據(jù),存儲(chǔ)過程如下:

  • 構(gòu)造Cookie對(duì)象:Cookie(java.lang.String name, java.lang.String value)。
  • 設(shè)置Cookie:
  • void setPath(java.lang.String uri):設(shè)置Cookie的有效訪問路徑。
  • void setMaxAge(int expiry): 設(shè)置Cookie的有效時(shí)間。
  • 正整數(shù):時(shí)間若為正整數(shù),表示Cookie存活的秒數(shù)。
  • 負(fù)整數(shù):表示其為臨時(shí)Cookie,數(shù)據(jù)保存瀏覽器的內(nèi)存中,瀏覽器關(guān)閉Cookie就丟失了。
  • 零:表示通知瀏覽器刪除相應(yīng)的Cookie。
  • void setValue(java.lang.String newValue):設(shè)置Cookie的值。Cookie數(shù)據(jù)類型只能保存非中文字符串類型的??梢员4娑鄠€(gè)Cookie,但是瀏覽器一般只允許存放300個(gè)Cookie,每個(gè)站點(diǎn)最多存放20個(gè)Cookie,每個(gè)Cookie的大小限制為4KB。
  • 將Cookie對(duì)象響應(yīng)給客戶端瀏覽器,存儲(chǔ)在客戶端機(jī)器上。發(fā)送Cookie:void response.addCookie(Cookie cookie)
  • 獲取Cookie會(huì)話數(shù)據(jù)

    存儲(chǔ)在客戶端的Cookie,通過HttpServletRequest對(duì)象的getCookies()方法獲取,該方法返回所訪問網(wǎng)站的所有Cookie的對(duì)象數(shù)組,遍歷該數(shù)組可以獲得各個(gè)Cookie對(duì)象。

    Cookie[] cookies = request.getCookies(); if(cookies != null) {for(Cookie c : cookies){out.println("屬性名:" + c.getName());out.println("屬性值" + c.getValue());} }

    Cookie訪問路徑

    在默認(rèn)情況下,創(chuàng)建Cookie時(shí)沒有設(shè)置路徑,該Cookie只能被當(dāng)前目錄及子目錄應(yīng)用訪問。Cookie的setPath()方法可以重新指定其訪問路徑,例如:將其設(shè)置為在某個(gè)應(yīng)用下的某個(gè)路徑共享,或者在同一服務(wù)器內(nèi)的所有應(yīng)用共享。

    設(shè)置Cookie的有效訪問路徑:void setPath(java.lang.String uri)。

    有效路徑指的是Cookie的有效路徑保存在哪里,那么瀏覽器在有效路徑下訪問服務(wù)器時(shí)就會(huì)帶著Cookie信息,否則不帶Cookie信息。

    Cookie存活時(shí)間

    Cookie有一定的存活時(shí)間,不會(huì)在客戶端一直保存,默認(rèn)情況下,Cookie保存在瀏覽器內(nèi)存中,在瀏覽器關(guān)閉時(shí)失效,這種Cookie也稱為會(huì)話Cookie,若要使Cookie較長時(shí)間的保存在磁盤上,可以通過Cookie對(duì)象的setMaxAge()方法設(shè)置其存活時(shí)間。

    Cookie對(duì)象可以通過setMaxAge()方法設(shè)置其存活時(shí)間,時(shí)間以秒為單位:void setMaxAge(int expiry)

    • 時(shí)間若為正整數(shù),表示其存活的秒數(shù)。
    • 時(shí)間若為負(fù)數(shù),表示其為臨時(shí)Cookie。
    • 時(shí)間若為0,表示通知瀏覽器刪除相應(yīng)的Cookie,刪除Cookie時(shí),path必須一致,否則不會(huì)刪除。

    例如:

    • name.setMaxAge(7*24*60*60);
    • name.setMaxAge(0); //刪除Cookie

    Cookie的局限性

    Cookie的缺點(diǎn)主要集中在其安全性和隱私保護(hù)上,主要包括以下幾種:

    • Cookie可能被禁用,當(dāng)用戶非常注重個(gè)人隱私保護(hù)時(shí),很可能會(huì)禁用瀏覽器的Cookie功能。
    • Cookie可能被刪除,因?yàn)槊總€(gè)Cookie都是硬盤上的一個(gè)文件,因此很有可能被用戶刪除。
    • Cookie的大小和個(gè)數(shù)受限,不同瀏覽器有所區(qū)別,基本上單個(gè)Cookie保存的數(shù)據(jù)不能超過4095個(gè)字節(jié),50個(gè)/每個(gè)域名。
    • Cookie安全性不夠高,所有的Cookie都是以純文本的形式記錄于文件中,因此如果要保存用戶名密碼等信息時(shí),最好事先經(jīng)過加密處理。

    總結(jié)

    以上是生活随笔為你收集整理的【Servlet】Cookie会话跟踪技术的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。