Cookie的创建
- 首先在服务器tomcat上创建Cookie对象
- 再通知客户端保存Cookie
- 通过响应头Set-Cookie 通知客户端保存Cookie
- 收到响应后,发现有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);