Cookie

Cookie

一.是什么

Cookie 是服务端在 HTTP 响应中附带传给浏览器的⼀个⼩⽂本⽂件,⼀旦浏览器保存了某个 Cookie,在之后的请求和响应过程中,会将此 Cookie 来回传递,这样就可以通过 Cookie 这个载体完成客户端和服务端的数据交互。
二.怎样用
创建 Cookie
Cookie cookie = new Cookie("name","tom");
response.addCookie(cookie);

读取Cookie

Cookie[] cookies = request.getCookies();
for (Cookie cookie:cookies){
 out.write(cookie.getName()+":"+cookie.getValue()+"<br/>");
}

 

类比:cookie就像个绣球,被客户端传去服务器,然后又通过服务器响应(resp)回来

 

 

 

Cookie 常⽤的⽅法
void setMaxAge(int age) 设置 Cookie 的有效时间,单位为秒
int getMaxAge() 获取 Cookie 的有效时间
String getName() 获取 Cookie 的 name
String getValue() 获取 Cookie 的 value

查看默认时间

    Cookie []cookies=request.getCookies();
    out.write(cookies[0].getMaxAge());

四.cookie与session区别

  保存位置 保存数据 生命周期 保存信息
session 服务器 object
服务端:只要 WEB 应⽤重启就销毁,客户端:只要浏览器关闭就销毁
重要
cookie 浏览器 String
不随服务端的重启⽽销毁,客户端:默认是只要关闭浏览器就销毁,我们通过 setMaxAge()
⽅法设置有效期,⼀旦设置了有效期,则不随浏览器的关闭⽽销毁,⽽是由设置的时间来决定
不重要

 

session会随着服务器关闭,存储的数据消失

而cookie跟服务器无关,只跟浏览器有关

设置cookie里的信息可以保存7天

    cookie.setMaxAge(60*60*24*7);

 

 session的存取

  session.setAttribute("username",username);
  session.getAttribute("username")

session的退出登录:session.invalidate()

cookie的存

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

cookie的取

    Cookie[] cookies=request.getCookies();
        for(Cookie cookie:cookies){
            if(cookie.getName().equals("username")){
                out.write(cookie.getValue());
            }
        }

Cookie的退出登录:cookie.setMaxAge(0)

posted @ 2021-01-22 10:38  Hanabi_521  阅读(47)  评论(0编辑  收藏  举报