Cookie概述与应用

一、概述
Cookie是Web服务器保存在客户端的一系列文本信息

典型应用一:判断注册用户是否已经登录网站。
典型应用二:”购物车“的处理。

Cookie的作用:
    对特定对象的追踪
    保存用户网页浏览记录与习惯
    简化登录

安全风险:容易泄露用户信息

cookie保存对象大小是有限制的,包括每个域名所包含的cookie数,cookie的总大小,这些均与使用的浏览器有关。在所有浏览器中,任何cookie大小超过限制的都会被忽略,且永远不会被设置。



二、Cookie与session的共同点与区别

共同点:都是用来保存用户状态的一种机制,并且都有生存期限,都会过期
区别:
sessioncookie
在服务器端保存用户信息在客户端保存用户信息
session中保存的是object类型cookie保存的是string类型
随会话的结束而将其存储的数据销毁cookie可以长期保存在客户端
保存重要信息保存不重要信息,如用户习惯




三、应用
创建Cookie对象
Cookie newCookie = new Cookie(String key,Object value);
写入Cookie对象
response.addCookie(newCookie);
读取Cookie对象
Cookie[] cookies = request.getCookies();

示例:
通过request获得用户名密码后将其保存到Cookie中
  1. // 通过request获取用户名密码
  2. String username = URLEncoder.encode(request.getParameter("username"), "utf-8");
  3. String password = request.getParameter("password");
  4. // 将用户密码保存到Cookie中
  5. Cookie usernameCookie = new Cookie("username", username);
  6. Cookie passwordCookie = new Cookie("password", password);
  7. // 设置Cookie的最大生存期限(单位为秒)
  8. usernameCookie.setMaxAge(864000);
  9. passwordCookie.setMaxAge(864000);
  10. // 通过response对象将Cookie保存
  11. response.addCookie(usernameCookie);
  12. response.addCookie(passwordCookie);
从Cookie中获取用户名密码并将其赋值给username和password
  1. String username = "";
  2. String password = "";
  3. // 读取Cookie
  4. Cookie[] cookies = request.getCookies();
  5. if (cookies != null && cookies.length > 0) {
  6. for (Cookie c : cookies) {
  7. if (c.getName().equals("username")) {
  8. username = URLDecoder.decode(c.getValue(), "utf-8");
  9. }
  10. if (c.getName().equals("password")) {
  11. password = c.getValue();
  12. }
  13. }
  14. }


本笔记地址(如果页面显示效果不好可以直接看笔记)
原文地址:https://www.cnblogs.com/crowsong/p/6364764.html