介绍
Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息 。
特点 :
Cookie是浏览器技术, 基于浏览器.
Cookie 是将数据存储在浏览器 ,可以设置时间.
使用场景
登录的记住我
jd的购物车数据
广告点击统计等等
使用
package com.cookie;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyCookieTest1 extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
/*
* 1 第一次请求,请求中没有Cookie
* 2 创建cookie,响应到浏览器
* 3 以后浏览器每次请求当前服务器,都会带上之前的cookie
* ---------------------
* req.getCookies(); 获得所有Cookie
* new Cookie("key", "val") 创建Cookie
* 没有更新cookie,只有通过同名key去覆盖cookie的值来达到更新
* 删除cookie
* cookie 默认是保存至浏览器关闭
* 通过设置cookie的生命时间去销毁cookie --> 设置存在0秒
*
*/
// 从请求中获得所有cookie
Cookie[] cookies = req.getCookies();
for (int i = 0; cookies!= null && i < cookies.length; i++) {
// 获得cookie的名字 获得cookie的值
System.out.println(cookies[i].getName()+"="+cookies[i].getValue());
}
// 向浏览器设置cookie
// 1 创建cookie对象
Cookie c1 = new Cookie("c1", "val222");
// 2 将cookie对象响应回浏览器
resp.addCookie(c1);
}
}
记录用户最后访问的时间
1 第一次用户访问该请求
2 请求的cookie中获得最后一次访问的时间 , 输出
3 获得当前时间,将时间设置到cookie中并响应回浏览器
package com.cookie;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyCookieTest2 extends HttpServlet{
/**
* 记录最后一次访问时间
*/
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
/*
* 获得cookie中记录的时间
*/
Cookie[] cookies = req.getCookies();
for (int i = 0; cookies != null && i < cookies.length; i++) {
Cookie c = cookies[i];
if ("lastAccessTime".equals(c.getName())) {
System.out.println("最后一次访问时间 : "+c.getValue());
}
}
// 将当前时间,设置到Cookie中,并响应
String format = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
resp.setCharacterEncoding("utf-8");
System.out.println(format);
resp.addCookie(new Cookie("lastAccessTime",format ));
}
}
Cookie和Session的关系
session是基于cookie
特点
Cookie | Session |
只能存文本 | 存任意对象 |
最大存4kb | 无限大 |
存储在浏览器 | 存储在服务器 |
| session基于cookie |
最多存30个站点,每个站点存15个cookie |
|