JSP五:学习Cookie

时间:2022-07-22
本文章向大家介绍JSP五:学习Cookie,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Cookie

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

使用

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

常用方法

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

Session 和 Cookie 的区别

session:保存在服务器,保存的数据是 Object,会随着会话的结束而销毁。主要用来保存重要信息

cookie:保存在浏览器,保存的数据是 String,可以长期保存在浏览器中,用来保存不重要信息

存储用户信息:

session:

存setAttribute("name","admin")

getAttribute("name") 取

⽣命周期:

  • 服务端:只要 WEB 应用重启就销毁
  • 客户端:只要浏览器关闭就销毁。

退:session.invalidate()

cookie:

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

取:Cookie[] cookies = request.getCookies();

输出:

for (Cookie cookie:cookies){
    if(cookie.getName().equals("name")){
        out.write("欢迎回来"+cookie.getValue());
    }
}

⽣命周期:不随服务端的重启而销毁。

客户端:默认是只要关闭浏览器就销毁,我们通过 setMaxAge()方法设置有效期,一旦设置了有效期,则不随浏览器的关闭而销毁,而由设置的时间来决定。

退:setMaxAge(0) 把有效时间设置为0