初识Cookie

来源:互联网 发布:淘宝开店要交钱吗 编辑:程序博客网 时间:2024/06/07 06:15

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名获得想要的cookieif(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);//获取客户端携带的cookieCookie[] cookies = requset.getCookies();String lasttime="";//判断有没有cookie存在,有的话遍历cookieif(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);}
原创粉丝点击