Cookie学习总结
Posted cell-coder
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cookie学习总结相关的知识,希望对你有一定的参考价值。
Cookie简述
1. 概念
一种客户端会话技术,可以将一些少量的数据保存在客户端。
2. 快速使用
步骤
创建cookie对象,并设定数据
- new Cookie(String name, String value);
发送cookie对象到客户端(将cookie加载到response)
- response.addCookie(Cookie cookie) ;
获取cookie(获取从客户端返回的request获取cookie)
- Cookie[] request.getCookies() ;
代码
//设定cookie数据,创建cookie对象 Cookie c=new Cookie("msg","hello");
//发送cookie对象到客户端 response.addCookie(c);
//获取cookie并打印 Cookie[] cs = request.getCookies(); if(cs!=null){ for (Cookie c : cs) { String name = c.getName(); String value = c.getValue(); System.out.println(name+":"+value); }
cookie的一些小细节
一次可不可以发送多个cookie?
- 可以,同时也可以接收到多个cookie。
- 只需要多创建几个cookie对象,多调用几次response的addCookie方法即可
cookie一般在计算机保存多长时间
默认情况下,只要关掉浏览器,cookie数据就会被销毁
如何持久化储存?
setMaxAge(int seconds)
正数:将cookie数据写进硬盘,持久储存,并指定销毁时间seconds。
负数:默认情况
零:删除cookie信息
代码
Cookie c1=new Cookie("msg","hello"); c1.setMaxAge(300); response.addCookie(c1); //300秒后自动销毁
cookie能否存中文?
- 在tomcat 8 之前 cookie中不能直接存储中文数据。(需要URL编码)
- 在tomcat 8 之后,cookie支持中文数据。特殊字符还是不支持,建议使用URL编码存储,URL解码解析
cookie共享问题?
- 在同一个服务器中,项目共享cookie
- 默认情况下,不共享
- 使用方法setPath(String path):设置cookie的获取范围。默认情况下,设置当前的虚拟目录,如果要共享,则可以将path设置为"/"
- 不同的服务器之间的cookie共享?
- setDomain(String path):如果设置一级域名相同,那么多个服务器之间cookie可以共享
- setDomain(".baidu.com"),那么tieba.baidu.com和news.baidu.com中cookie可以共享
- setDomain(String path):如果设置一级域名相同,那么多个服务器之间cookie可以共享
cookie的特点和作用
- cookie存储数据在客户端浏览器
- 浏览器对于单个cookie的大小以及同一个域名下总cookie数量也有限制(20个)
- 作用:
- 由于cookie在客户端数据并不安全,cookie一般用于存储少量不太敏感的数据
- 他可以完成一些类似于在没有登陆的情况下,完成服务器队客户端身份的识别
以上是关于Cookie学习总结的主要内容,如果未能解决你的问题,请参考以下文章
C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段