浏览器获取cookie的两种方式

来源:互联网 发布:countdown软件 怎么用 编辑:程序博客网 时间:2024/06/05 10:24

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;
}