关于cookie的CRUD操作
2016-03-15 10:10
323 查看
说明
我们在实现网站的自动登录过程中有一种解决办法是将用户的账号和密码以加密的形式存放在浏览器的cookie中,当用户在cookie的有效期内再次访问网站时,该用户不用自己再输入用户名和密码,而是使用cookie中的用户名和密码进行登录。写入cookie
//将用户登录信息存储到cookie,下次免登录,cookie中存放中文一定要编码 Cookie cookie = new Cookie("userLogin",URLEncoder.encode(userName+"&"+password, "UTF-8")); cookie.setMaxAge(rememberTime*24*3600); //允许该应用下的所有界面使用这个cookie cookie.setPath("/BlackSheep"); response.addCookie(cookie);
读取cookie
//用户尚未登录,尝试从cookie中读取用户的登录信息 Cookie[] cookies = request.getCookies(); //获取用户存放在cookie中的登录信息 if(cookies != null) { for(Cookie ck : cookies) { if(ck.getName().equals("userLogin")) { String[] info = URLDecoder.decode(ck.getValue(), "UTF-8").split("&"); String userName = info[0]; String password = info[1]; //自动登录 User user = UserDao.hasUser(userName, password); if(user != null) { //将当前用户存放到session中 session.setAttribute("user", user); response.sendRedirect(request.getContextPath()+"/index.jsp"); } } } }
修改/删除cookie
Cookie[] cookies = request.getCookies(); //清除用户登录信息的cookie if(cookies != null) { for(Cookie ck : cookies) { if(ck.getName().equals("userLogin")) { //只能通过设置该cookie有效期为0来使该cookie失效 ck.setMaxAge(0); //允许该应用下的所有界面使用这个cookie ck.setPath("/BlackSheep"); response.addCookie(ck); } } }
总结
1)如果需要在cookie中存放中文字符一定要记得编码和解码,不然报错。2)cookie的有效期时间单位是秒。
3)cookie的setPath()方法,指定的是可以访问该cookie的目录。默认情况下只有设置了该cookie的页面才能够读取和修改该cookie,如果想要让这个cookie被同一应用下的所有页面共享,那么需要设置一下:
cookie.setPath("/projectName");如果想要让同一服务器下多个应用共享该cookie,那么应该这样设置:
cookie.setPath("/");
4)关于cookie的跨域名访问需要用到cookie.setDomain();具体可以参考http://blog.csdn.net/lwwgtm/article/details/8845994
5)对cookie做的修改和删除操作也需要用到cookie.setPath();才能让其它页面共享到。
6)最后,千万不要忘记将cookie写回去:
response.addCookie(cookie);
参考
http://blog.csdn.net/lwwgtm/article/details/8845994http://zhidao.baidu.com/link?url=QtcLDVmHOSd0_4b32WOfQJZ1WjYM_t1D4gAcD8PcgPYeQrnMZ-S9AyJ8L1EjjAj1BIA4FO_GP_PcoHS91nOiyq
相关文章推荐
- cookie的secure属性详解
- 浏览器 cookie 限制
- android读写cookie的方法示例
- 浅谈COOKIE和SESSION区别
- 深入解析Session是否必须依赖Cookie
- 对比分析php中Cookie与Session的异同
- 新手菜鸟必读:session与cookie的区别
- php实现通过cookie换肤的方法
- C#中Cookie之存储对象
- C#基于WebBrowser获取cookie的实现方法
- ASP.NET Cookie 操作实现
- php中cookie的作用域
- 写入cookie的JavaScript代码库 cookieLibrary.js
- ie7下利用ajax跨域盗取cookie的解决办法
- JS使用cookie实现DIV提示框只显示一次的方法
- js 通过cookie实现刷新不变化树形菜单
- 详谈javascript中的cookie
- 不要在cookie中使用特殊字符的原因分析
- cookie在javascript中的使用技巧以及隐私在服务器端的设置