Session、Cookie2

Session、Cookie2

Cookie 是服务端在 HTTP 响应中附带传给浏览器的⼀个⼩⽂本⽂件,⼀旦浏览器保存了某个 Cookie, 在之后的请求和响应过程中,会将此 Cookie 来回传递,这样就可以通过 Cookie 这个载体完成客户端 和服务端的数据交互。

1.Cookie常见操作

创建cookie

//创建一个Cookie
Cookie cookie=new Cookie("name","zhangsan");
response.addCookie(cookie);

读取cookie

//读取Cookie
//读取Cookie  只有这一个方法  拿出来是一个Cookie数组
Cookie[] cookies=request.getCookies();
for(Cookie cookie:cookies){
    //输出cookie的name
    out.write(cookie.getName());
    out.write("=");
    out.write(cookie.getValue());
    out.write("<br/>");
    //write 只能输出String类型  调用toString 转成String类型。
    out.write(cookie.toString());
    out.write("<br/>");
}

2.Cookie的常用方法

void setMaxAge(int age) 设置 Cookie 的有效时间,单位为秒

int getMaxAge() 获取 Cookie 的有效时间

String getName() 获取 Cookie 的 name

String getValue() 获取 Cookie 的 value

Session和Cookie的区别

session:保存在服务器 保存的数据是 Object 会随着会话的结束⽽销毁 保存重要信息

cookie:保存在浏览器 保存的数据是 String 可以⻓期保存在浏览器中,⽆会话⽆关 保存不重要信息

存储⽤户信息:

  1. session:setAttribute("name","admin") 存 getAttribute("name") 取

⽣命周期:服务端:只要 WEB 应⽤重启就销毁,客户端:只要浏览器关闭就销毁。 退出登录 :session.invalidate()

​ 2.cookie:response.addCookie(new Cookie(name,"admin")) 存

//取
Cookie[] cookies=request.getCookies();
for(Cookie cookie:cookies){
    //输出cookie的name
    out.write(cookie.getName());
    out.write("=");
    out.write(cookie.getValue());
    out.write("<br/>");

⽣命周期:不随服务端的重启⽽销毁,客户端:默认是只要关闭浏览器就销毁,我们通过 setMaxAge() ⽅法设置有效期,⼀旦设置了有效期,则不随浏览器的关闭⽽销毁,⽽是由设置的时间来决定。

退出登录:setMaxAge(0)

原文地址:https://www.cnblogs.com/wind-and-sky/p/14212751.html