本文仅为个人学习笔记,如有错误请给予指点,谢谢!!!
什么是Cookie:
cookies是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段:Netscape Navigator使用一个名为cookies.txt本地文件保存从所有站点接收的Cookie信息;而IE浏览器把Cookie信息保存在类似于C:\windows\cookies的目录下。当用户再次访问某个站点时,服务端将要求浏览器查找并返回先前发送的Cookie信息,来识别这个用户。??
1 // 创建Cookie 2 3 Cookie cookie1 = new Cookie("key", "value");// 创建一个cookie,指定键、值; 4 5 //Cookie的生命周期 6 7 cookie1.setMaxAge(-1);// cookie的maxAge属性的默认值就是-1,表示只在浏览器内存中存活。一旦关闭浏览器窗口,那么cookie就会消失。 8 9 cookie1.setMaxAge(60);// 表示cookie对象可存活1小时。当生命大于0时,浏览器会把Cookie保存到硬盘上,就算关闭浏览器,就算重启客户端电脑,cookie也会存活1小时; 10 11 cookie1.setMaxAge(0);// 浏览器会吗哈桑删除这个cookie 12 13 // 获取CookieCookie只能从request中获取全部Cookie,然后循环迭代。 14 15 Cookie[] cs = request.getCookies();// 获取请求中的Cookie 16 17 if (cs != null) {// 如果请求中存在Cookie 18 19 for (Cookie c : cs) {// 遍历所有Cookie 20 21 if (c.getName().equals("id")) {// 获取Cookie名字,如果Cookie名字是id 22 23 response.getWriter().print("您的ID是:" + c.getValue());// 打印Cookie值 24 25 } 26 27 } 28 29 } 30 31 //删除Cookie 32 33 Cookie[] cookies = request.getCookies(); 34 35 if (cookies != null && cookies.length > 0) { 36 37 for (Cookie cookie2 : cookies) { 38 39 String name = cookie2.getName(); //获取Cookie的键 40 41 // 根据Cookie的键找到需要删除的Cookie 42 43 if (name.compareTo("key") == 0) { 44 45 // 设置生存期为0 46 47 cookie2.setMaxAge(0); 48 49 // 设回Response中生效 50 51 response.addCookie(cookie2); 52 53 } 54 55 } 56 57 } 58 59 //删除Cookie 60 61 Cookie cookie3 = new Cookie("key", "value"); 62 63 cookie3.setMaxAge(0); 64 65 //在响应中添加Cookie对象 66 67 response.addCookie(cookie);
注意!!
Cookie的name和value都不能使用中文,如果希望在Cookie中使用中文,那么需要先对中文进行URL编码,然后把编码后的字符串放到Cookie中。
向客户端响应中添加Cookie
String name = URLEncoder.encode("姓名", "UTF-8"); String value = URLEncoder.encode("张三", "UTF-8"); Cookie c = new Cookie(name, value); c.setMaxAge(3600); response.addCookie(c);
时间: 2024-10-12 07:31:54