设置Cookie
//设置cookie Cookie cookie = new Cookie("TOM","111"); //设置有效期,默认秒为单位 cookie. setMaxAge(7*24*60*60); //7天 //添加cookie到客户端 response.addCookie(cookie);
获取Cookie
<% //获取cookie Cookie[] cookies = request.getCookies(); if(cookies!=null && cookies.length>0) { for(int i=0; i<cookies.length;i++) { out.print(cookies[i].getName() +"————"+ cookies[i].getValue() + "<br/>"); } } %>
Cookie的中文支持
Cookie不支持中文的显示,必要的时候,需要进行转码和解码。
转码
strings[j]=java.net.URLEncoder.encode(list.get(i-1)[j],"UTF-8"); URLEncoder.encode("张三") ;
解码
out.print(java.net.URLDecoder.decode(cookies[i].getValue(),"UTF-8") + "<br/>"); Cookie[] cks = request.getCookies() ; for(Cookie c : cks) { out.write(c.getName() +"="+URLDecoder.decode(c.getValue())+"<br>") ; }
============================================================================================
1)向客户端浏览器写入Cookie //1.创建一个Cookie对象 Cookie cookie = new Cookie(name,“”shindo“”); //2.setMaxAge:设置Cookie的最大时效,以秒为单位,若为0,表示立即删除该Cookie, //若为负数,表示不存储该Cookie,若为正数,表示该Cookie的存储时间。 cookie.setMaxAge(30); //3.设置Cookie的作用范围:可以作用当前目录和当前目录的子目录,但不能作用于当前目录的上一级目录。 cookie.setPath(request.getContextPath()); //4.调用response的一个方法把Cookie传给客户端 response.addCookie(cookie); 2)从浏览器读取Cookie //1.获取Cookie Cookie[] cookies = request.getCookies(); if(cookies != null && cookies.lenth > 0){ for(){ //2.获取Cookiede name 和value out.print(cookie.getName() + ":" + cookie.getValue()); out.print("<br>"); } }
=====================================================================================
// new一个Cookie对象,键值对为参数 Cookie cookie = new Cookie("key", "value"); // 设置Cookie最大生存时间,以秒为单位,负数的话为浏览器进程,关闭浏览器Cookie消失 cookie.setMaxAge(60); // 一分钟 // 将Cookie添加到Response中,使之生效 response.addCookie(cookie); 读取Cookie,读取Cookie只能从request中获取全部Cookie,然后迭代之.虽然Cookie也是键值对,但是貌似不能像Map一样通过Key来获取值. Java代码 收藏代码 // 从request中获取Cookie,拿到的是一个Cookie数组 Cookie[] cookies = request.getCookies(); // 然后迭代之 if (cookies != null && cookies.length > 0) { //如果没有设置过Cookie会返回null for (Cookie cookie : cookies) {...} } 删除Cookie,删除Cookie的话,只需要将Cookie的生存期设为0即可 Java代码 收藏代码 Cookie[] cookies = request.getCookies(); if (cookies != null && cookies.length > 0) { for (Cookie cookie : cookies) { String name = cookie.getName(); // 找到需要删除的Cookie if (name.compareTo("key") == 0) { // 设置生存期为0 cookie.setMaxAge(0); // 设回Response中生效 response.addCookie(cookie); } } } 修改Cookie,修改Cookie和删除的步骤是一样的,先找到需要删除的Cookie,然后设置它的新的Value,再设回Response Java代码 收藏代码 Cookie[] cookies = request.getCookies(); if (cookies != null && cookies.length > ) { for (Cookie cookie : cookies) { if (cookie.getName.compareTo("key") == 0) { cookie.setValue("newValue"); response.addCookie(cookie); break; } } }
时间: 2024-08-11 00:36:04