代码空间项目 -- cookie的基本使用
cookie在日常开发b/s架构时候经常使用,可以在记住用户,方便自动登录,也可以记住用户的偏好并对应推送广告
下面说说开发时候的基本用法:
1.创建cookie
//设置cookie,键值对形式
Cookie namecookie = new Cookie("name",name);
Cookie passwordcookie = new Cookie("password",pwd);
//设置生命周期,以秒为单位,设置为0即删除,设置为-1在浏览器关闭时删除
namecookie.setMaxAge(60*60*24);
passwordcookie.setMaxAge(60*60*24);
//设置或取得cookie适用的路径,"/"表示指定服务器的所有页面都应该收到该cookie
namecookie.setPath("/");
passwordcookie.setPath("/");
//通过HttpServletResponse保存cookie对象
response.addCookie(namecookie);
response.addCookie(passwordcookie);
2.获取cookie
//获取一个cookie数组
Cookie[] cookies = request.getCookies();
if(cookies != null){
for(Cookie cookie : cookies){
//获取数组中key="name"的值,
if(cookie.getName().equals("name")){
System.out.println(cookie.getValue());
}
}
}
3.删除cookie
//获取一个cookie数组
Cookie[] cookies = request.getCookies();
if(cookies != null){
//循环cookie数组
for(Cookie cookie : cookies){
cookie = new Cookie(cookie.getName(),""); //为cookie赋空值
cookie.setPath("/");//设置的路径和创建时候相同
cookie.setMaxAge(0);//0代表立即删除,-1代表浏览器关闭时删除
response.addCookie(cookie); //重新新增cookie,即删除
}
}
4.注意事项
在tomcat7环境下,对中文支持不太好,如果存储的是中文字符,需要对其转码
存储时:
name = URLEncoder.encode(name,"UTF-8");
pwd = URLEncoder.encode(pwd,"UTF-8");
读取时:
URLDecoder.decode(cookie.getValue(),"UTF-8");