初识Cookie

Cookie创建 发送 获取

1. 创建cookie
也就是服务器向客服端发送一个cookie

    Cookie cookie = new Cookie(String name,String value);

示例:

    Cookie cookie = new Cookie("name""laowang");
    //cookie中的的cookie信息不支持中文
那么创建的cookie会以响应头的形式发送到客户端------Set-cookie:name=laowang;

2.为cookie设置持久化时间

    cookie.setMaxAge(10*60);//十分钟;
如果不给cookie设置持久化时间,那么cookie将会在关闭浏览器时自动销毁,如果设置了持久化时间,cookie将会保存到浏览器的本地磁盘文件中,保存时长为设置的时间长,过期自动删除。

3.为cookie设置携带路径

  cookie.setPath(String path);

示例:

cookie.setPath("/Web");//代表访问Web下的任何资源都携带cookie。
cookie.setPath("/Web/sendcookie");//代表在访问Web/sendcookie资源时才携带cookie。

如果没有设置携带路径,那么在访问产生cookie的Web资源所在路径都携带cookie。比如:cookie是在Web下的demo文件下的sendcookie资源中产生的,即路径为“/Web/demo/sendcookie”。那么当你访问”/Web/demo/…/…/…”路径下的所有资源都携带cookie。
4.向客服端发送cookie

response.addCookie(Cookie cookie);

5.删除cookie
如果你之前创建一个cookie设置的持久化时间太长,等不及了想马上就干掉那个cookie。那么你就在之前同路径下创建一个同名的cookie,把持久化时间设置为0覆盖即可。
>6.服务器如何从客服端获取cookie信息

Cookie[] cookies = request.getCookies();//获得客服端携带的cookie数据。
//通过cookie名获得想要的cookie
if(cookies!=null){
    for(Cookie cookie:cookies){
        //获得cookie的名称
        String cookiename=cookie.getName();
        if(cookiename.equals("name")){
            //获取cookie的值
            String cookieValue=cookie.getValue();
        }
    }
}

示例:获取cookie访问的最新时间

//定义时间格式
SimpleDateFormat format = new SimpleDateFormat(yyyy-MM-dd hh:mm:ss);
//把时间解析成字符性
String time = format.format(new Date());
//创建cookie,记录最新访问时间,把时间作为数据让cookie携带
Cookie cookie = new Cookie("lasttime","time");
cookie.setMaxAge(10*60);
response.addCookie(cookie);
//获取客户端携带的cookie
Cookie[] cookies = requset.getCookies();
String lasttime="";
//判断有没有cookie存在,有的话遍历cookie
if(cookies!=null){
    for(Cookie cookie:cookies){
    //判断携带时间的cookie是否存在,存在就获取其cookie数据,即得到相应的访问时间
        if("lasttime".equals(cookie.getName())){
            lasttime=cookie.getValue();
        }
    }
}
response.setContentType("text/html;charset=utf-8");
if(lasttime==null){
    response.getWrite().write("第一次啊!");
}else{
    response.getWrite().write("上次访问时间为:"+lasttime);
}

你可能感兴趣的:(cookie,服务器,javaweb)