1. 程式人生 > >瀏覽器獲取cookie的兩種方式

瀏覽器獲取cookie的兩種方式

1 使用者登入成功後在放入session後,向用戶的瀏覽器cookie中插入使用者資料

 //將使用者資訊放入session中
session.setAttribute("user", select_user);
//將使用者資訊通過response寫入cookie
//cookie 路徑會預設使用mvc或者jsp所配置的專案路徑作為cookie的儲存資料夾
//每次在修改瀏覽器的cookie之後,1、重新設定過期時間,2、設定後cookie覆蓋掉
String encode  = "";
try {
encode = URLEncoder.encode(select_user.getYh_nch(), "utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Cookie cookie = new Cookie("yh_nch", encode);

cookie.setMaxAge(60*60);
response.addCookie(cookie);

}

A 下次使用者訪問index方法時,從客戶端獲取使用者資料,轉發給首頁jsp

  Cookie[] cookies = request.getCookies();
//宣告邊量
String yh_nch = "";
for (int i = 0; i < cookies.length; i++) {

//獲取cookie
if(cookies[i].getName().equals("yh_nch")) {
yh_nch = cookies[i].getValue();
}
}
//中文解碼,更換編碼格式
String decode = URLDecoder.decode(yh_nch, "utf-8");
map.put("yh_nch", decode);

   B 在首頁的頁面上用js獲得瀏覽器cookie,再從cookie中取得使用者資料,顯示在首頁jsp

 $(function(){
var yh_nch = get_my_cookie_value("yh_nch");
yh_nch = decodeURIComponent(yh_nch);  //中文解碼,瀏覽器支援
$("#header").text(yh_nch);
})

function get_my_cookie_value(key){
var val = "";
//獲取一個cookie字串屬性
//該屬性是一個可讀可寫的字串,可使用該屬性對當前文件的 cookie 進行讀取、
//建立、修改和刪除操作。
var cookies =  document.cookie;
//空格替換為空字串-- /\s/--是正則表示式空格的意思
cookies.replace(/\s/,"");
//;進行分割,獲得陣列   ---因為獲得的字串屬性,多個cookie鍵值對  中間有“ ;”的形式
var cookie_array = cookies.split(";");
for (i=0;i<cookie_array.length;i++){
//對“=”進行分割
var cookie_kv = cookie_array[i].split("=");
//獲取值
if(cookie_kv[0]=="yh_nch"){
val = cookie_kv[1];
}
}

return val;
}