知识点整理之Java的Cookie操作
程序员文章站
2022-07-12 09:19:18
...
创建Cookie
// 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来获取值.
// 从request中获取Cookie,拿到的是一个Cookie数组 Cookie[] cookies = request.getCookies(); // 然后迭代之 if (cookies != null && cookies.length > 0) { //如果没有设置过Cookie会返回null for (Cookie cookie : cookies) {...} }
删除Cookie,删除Cookie的话,只需要将Cookie的生存期设为0即可
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
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; } } }