知识点整理之Java的Cookie操作

时间:2025-01-06 00:06:50

创建Cookie

  1. // new一个Cookie对象,键值对为参数
  2. Cookie cookie = new Cookie("key", "value");
  3. // 设置Cookie最大生存时间,以秒为单位,负数的话为浏览器进程,关闭浏览器Cookie消失
  4. cookie.setMaxAge(60);  // 一分钟
  5. // 将Cookie添加到Response中,使之生效
  6. response.addCookie(cookie);

读取Cookie,读取Cookie只能从request中获取全部Cookie,然后迭代之.虽然Cookie也是键值对,但是貌似不能像Map一样通过Key来获取值.

  1. // 从request中获取Cookie,拿到的是一个Cookie数组
  2. Cookie[] cookies = request.getCookies();
  3. // 然后迭代之
  4. if (cookies != null && cookies.length > 0) { //如果没有设置过Cookie会返回null
  5. for (Cookie cookie : cookies) {...}
  6. }

删除Cookie,删除Cookie的话,只需要将Cookie的生存期设为0即可

  1. Cookie[] cookies = request.getCookies();
  2. if (cookies != null && cookies.length > 0) {
  3. for (Cookie cookie : cookies) {
  4. String name = cookie.getName();
  5. // 找到需要删除的Cookie
  6. if (name.compareTo("key") == 0) {
  7. // 设置生存期为0
  8. cookie.setMaxAge(0);
  9. // 设回Response中生效
  10. response.addCookie(cookie);
  11. }
  12. }
  13. }

修改Cookie,修改Cookie和删除的步骤是一样的,先找到需要删除的Cookie,然后设置它的新的Value,再设回Response

  1. Cookie[] cookies = request.getCookies();
  2. if (cookies != null && cookies.length > ) {
  3. for (Cookie cookie : cookies) {
  4. if (cookie.getName.compareTo("key") == 0) {
  5. cookie.setValue("newValue");
  6. response.addCookie(cookie);
  7. break;
  8. }
  9. }
  10. }