cookie和session都是会话跟踪技术,cookie一般储存客户端,session储存在服务器端(但sessionId储存在客户端),session的实现依赖于cookie,cookie存储不安全,session安全(用来储存重要信息),session储存占用服务器资源,一个cooike最多只能保存4k数据,大多数浏览器最多保存20个cookie。

因为cookie可以在浏览器禁用,所以可以用cookie加数据库的方式,如果cookie被禁用,可以用数据库获取值。

一.设置cookie
(1)创建一个Cookie对象:为字符串
    Cookie cookie = new Cookie("key","value");
    请务必牢记,名称和值中都不能包含空格或者如下的字符: [ ] ( ) = , " / ? @ : ;
(2) 设置有效期:调用setMaxAge()函数表明cookie在多长时间(以秒为单位)内有效。下面的操作将有效期设为了24小时。
    cookie.setMaxAge(60*60*24); 
(3) 将cookie发送至HTTP响应头中:调用response.addCookie()函数来向HTTP响应头中添加cookie。
    response.addCookie(cookie);
   eg:
   String str = URLEncoder.encode(request.getParameter("name"),"utf-8");  //从页面获取值
   // 设置 name 的cookie 
   Cookie name = new Cookie("name",str);
   // 设置cookie过期时间为24小时。
   name.setMaxAge(60*60*24); 
   // 在响应头部添加cookie
   response.addCookie( name );
 
二.在浏览器获取cookie
想要读取cookie,需要调用request.getCookies()方法来获得一个javax.servlet.http.Cookie对象的数组,然后遍历这个数组,使用getName()方法和getValue()方法来获取每一个cookie的名称和值。
   Cookie cookie = null;
   Cookie[] cookies = null;
   // 获取cookies的数据,是一个数组
   cookies = request.getCookies();
   if( cookies != null ){
      for (int i = 0; i < cookies.length; i++){
         cookie = cookies[i];
        
         out.print("参数名 : " + cookie.getName());
         out.print("<br>");
         out.print("参数值: " + URLDecoder.decode(cookie.getValue(), "utf-8") +" <br>");
         
      }
  }
三.删除cookie
   获取一个已经存在的cookie然后存储在Cookie对象中。
   将cookie的有效期设置为0。
   将这个cookie重新添加进响应头中。
   Cookie cookie = null;
   Cookie[] cookies = null;
   // 获取当前域名下的cookies,是一个数组
   cookies = request.getCookies();
   if( cookies != null ){
      for (int i = 0; i < cookies.length; i++){
         cookie = cookies[i];
         if((cookie.getName( )).compareTo("name") == 0 ){
            cookie.setMaxAge(0);
            response.addCookie(cookie);
            out.print("删除 Cookie: " + cookie.getName( ) + "<br/>");
         }
         out.print("参数名 : " + cookie.getName());
         out.print("<br>");
         out.print("参数值: " + URLDecoder.decode(cookie.getValue(), "utf-8") +" <br>");
      }
  }

cookie的设置(创建),获取与删除相关推荐

  1. JS cookie的设置、获取和删除(非常详细)

    在编程领域,Cookie 代表一种小型的文本文件,可以让开发人员在用户计算机上存储少量的数据(大约 4kb),来记录用户的某些信息,例如用户身份.喜好等,当用户下次访问网站时,网站可以通过检索这些信息 ...

  2. cookie的设置、获取以及删除

    首先介绍一下cookie的基本信息: cookie是以域为单位的,它必须放在服务器的的环境下,但是cookie的容量小,只有4kb,并且也不安全,还有入股cookie的名字相同,会修改或者覆盖原来的值 ...

  3. php cookie expires,php cookie类(设置、获取、删除cookie值)

    分享一个php cookie操作的类,可以设置cookie.获取cookie.删除cookie. 代码: /** * php cookie类 * class:PHP_COOKIE * by www.j ...

  4. cookie分号后面没有值_Cookie的属性(cookie的设置、获取和删除)

    每个cookie都有四个可选的属性,他们分别控制cookie的生存周期.可见性.安全性等. Cookies最初设计时,是为了CGI编程.但是,我们也可以使用Javascript脚本来操纵cookies ...

  5. JS设置,获取,删除cookie

    JS设置,获取,删除cookie 由于chrome等浏览器存在samesite安全措施,导致传统http页面后端无法设置cookie到前端,所以考虑在返回值中添加cookie值,使用前端js进行coo ...

  6. js设置,获取,删除属性(setAttribute, getAttribute, removeAttribute)

    设置,获取,删除属性 setAttribute() setAttribute() 方法添加指定的属性,并为其赋指定的值. 如果这个指定的属性已存在,则仅设置/更改值. getAttribute() g ...

  7. Web前端数据存储—cookie机制(设置,获取,删除cookie)

    今天看到cookie机制就来记录一下,我们前端一般存储cookie都是在登录的时候进行的,两种,选一个就行(其实都一样,只不过一个明细化了). 我们先了解一下 cookie: HTTPCookie,通 ...

  8. 设置,获取和删除Cookies

    #region 保存用户名的Cookie/// <summary>/// 设置Cookie/// </summary>/// <param name="cook ...

  9. Go设置、获取和删除Cookie

    Go操作Cookie // A Cookie represents an HTTP cookie as sent in the Set-Cookie header of an // HTTP resp ...

  10. cookie的设置和获取

    // 创建cookie function setCookie(name, value, expires, path, domain, secure) { var cookieText = encode ...

最新文章

  1. SXS完全查杀+预防方案2
  2. Web3.js 0.20.x API 中文版翻译 1
  3. java web 初始化方法_Java Web(二) 类的初始化及初始化顺序
  4. On-Heap与Off-Heap
  5. 俄罗斯黑客收到500万美元赎金!美国燃油管道商认怂,民众为抢汽油大打出手...
  6. dev c++ 64位_RHEL7.8添加本地源以及扩展GCC,C++的32位和静态库支持
  7. Failed to issue method call: Unit mysql.service failed to load: No such file or directory解决的方式...
  8. matlab常用函数——数学函数
  9. python初心记录二
  10. python中pickle模块无法导入_python pickle模块
  11. win10 3dmax 激活后反复激活和激活码无效问题
  12. box-sizing: border-box的作用
  13. 互联网软件开发和传统软件开发的不同(转型互联网开发需要适应的那些事)
  14. 一款精简的webshell管理工具 -- Assassin
  15. matlab 模糊提取,[转载]Matlab 的fspecial函数用法 图像模糊、提取边缘
  16. ImageJ 叠加明场和荧光场图片
  17. Jersey搭建restFul形式接口
  18. 2016全球大数据战略版图剖析(4):分析篇下
  19. 练习1(华为交换机忘记console口密码)
  20. 再议成就系统框架设计

热门文章

  1. 一个AI玩遍多个游戏
  2. 高新企业成长性指标有哪些计算公式?
  3. 数学建模——判断照片中的人物是否佩戴眼镜
  4. Linux扩大swap分区
  5. mysql备份数据库命令_mysql备份与还原 数据库的常用命令。
  6. centos备份mysql数据库
  7. ReportViewer 控件安装
  8. 分布式事务解决方案——Alibaba-seata
  9. 探探提醒对方账号异常_我告诉你探探账号异常不能回复消息怎么办
  10. 【Appium踩坑】Mitmproxy脚本+Appium启动后,手机无网络问题