cookie是乙個客戶端技術,主要是為了解決頁面引數傳遞的問題,要是通過url引數傳遞的話,那麼傳遞的引數可以看到,不安全。所以才會有cookie技術。
cookie主要有幾個方法,首先建立的時候,傳遞的是key-value字典型別。通過key可以獲取到value的值,一般是在別的頁面通過key去獲取到value的值。
其次cookie有乙個setmaxage方法,這個意思是設定過期時間,>0,=0,<0三種情況:第乙個就是設定乙個以秒來計的過期時間,如設定一天過期那麼就設定24*60*60,如果沒過期的話下次進瀏覽器的時候自帶cookie。第二個不設定cookie,當你這樣設定差不多意思就是直接廢掉了cookie,下個介面直接不能獲取到。第三個設定cookie為會話cookie,意思是當此瀏覽有效,當關閉瀏覽器下次再瀏覽不會帶有cookie。
cookie還有乙個方法是setpath,這個引數主要是針對訪問路徑的問題。舉個粟子,當前servlet的@webservlet(vaue="/cookie/login"),跳轉下個介面servlet的@wevservlet(value="welcome"),那麼兩個path其實是不一樣的,如果在下個介面訪問cookie的話那麼getcookies就會返回空的cookie陣列。所以大多數做法就是在初始化cookie的時候設定這個path,setpath("/")由於"/"代表全路徑。這樣訪問的時候下個介面servlet就可以獲取到cookie陣列,然後就可以做事情了。
注意點:由於cookie不支援中文,所以設定cookie的value時候需要編碼,不然訪問的時候會500錯誤,代表伺服器錯誤。需要通過urlencoder.encode(string string,"utf-8")設定編碼,然後再下個servlet介面獲取值的時候需要解碼urldecoder.decode(string string,"utf-8")。
總結:設定cookie的時候需要將初始化的cookie到response,響應給客戶端,然後客戶端就會自己儲存,下次客戶端會自己取出來,伺服器只需在request.getcookies裡面獲取cookie,通過cookie的key去獲取自己想要的value。
String 一些問題
前言 等號 對於基本型別,比較的是值,對於引用型別,比較的是記憶體位址。1.在物件池中建立,如果常量池中已經存在則返回常量池中已經有的。private static void test1 結果 true 2.乙個在string pool中,乙個在堆中。private static void test...
C 一些問題
1 if else語句和switch case語句的效率分析對比 switch效率高。switch的效率與分支數無關,當只有分支比較少的時候,if效率比switch高,因為switch有跳轉表。分支比較多,那當然是switch 根據大量的實際程式測試 不考慮不同的編譯器優化程度差異,假設都是最好的優...
mysql 一些問題
1 中文亂碼 問題 推薦用 uft 8 編碼 適配一切介面,mysql中 發生中文亂碼時 開啟mysql 安裝路徑 更改後 重啟mysql 服務即可,有時也需要 重新匯入資料庫 可能是與 source 檔案時 編碼沒有設定好 client password your password port 33...