Cookie创建获取修改小结

205 阅读1分钟

Cookie的创建

  1. 首先在服务器tomcat上创建Cookie对象
  2. 再通知客户端保存Cookie
  3. 通过响应头Set-Cookie 通知客户端保存Cookie
  4. 收到响应后,发现有set-cookie响应头,就去看一下,有没有这个Cookie.没有就创建,有就修改 代码实现如下
Cookie cookie = new Cookie("key1", "value1");
resp.addCookie(cookie);
resp.getWriter().write("Cookie创建成功");

Cookie的获取

服务器获取客户端的 Cookie 只需要一行代码:req.getCookies():Cookie[]。但为了避免空指针异常我们得进行判断 代码实现

  Cookie[] cookies = req.getCookies();


        for (Cookie cookie : cookies) {
            // getName方法返回Cookie的key(名)
            // getValue方法返回Cookie的value值
            resp.getWriter().write("Cookie[" + cookie.getName() + "=" + cookie.getValue() + "] <br/>");        
        if (name == null || cookies == null || cookies.length == 0) {
            return null;
        }

        for (Cookie cookie : cookies) {
            if (name.equals(cookie.getName())) {
                return cookie;
            }
        }
//        for (Cookie cookie : cookies) {
//            if ("key2".equals(cookie.getName())) {
//                iWantCookie = cookie;
//                break;
//            }
//        }
            // 如果不等于null,说明赋过值,也就是找到了需要的Cookie
            if (iWantCookie != null) {
                resp.getWriter().write("找到了需要的Cookie");
            }


        }

Cookie的修改

方案一:

1、先创建一个要修改的同名(指的就是 key)的 Cookie 对象

2、在构造器,同时赋于新的 Cookie 值。

3、调用 response.addCookie( Cookie );

代码实现

 Cookie cookie = new Cookie("key1","newValue1");
 resp.addCookie(cookie);

方案二:

1、先查找到需要修改的 Cookie 对象

2、调用 setValue()方法赋于新的 Cookie 值。

3、调用 response.addCookie()通知客户端保存修改

代码实现


if (cookie != null) {

cookie.setValue("newValue2");
resp.addCookie(cookie);