Cookie API介绍

一.Java提供的操作Cookie的API

  Java中的javax.servlet.http.Cookie类用于创建一个Cookie


Cookie类的主要方法


No.


方法


类型


描述


1


Cookie(String name, String value)


构造方法


实例化Cookie对象,传入cooke名称和cookie的值


2


public String getName()


普通方法


取得Cookie的名字


3


public String getValue()


普通方法


取得Cookie的值


4


public void setValue(String newValue)


普通方法


设置Cookie的值


5


public void setMaxAge(int expiry)


普通方法


设置Cookie的最大保存时间,即cookie的有效期,当服务器给浏览器回送一个cookie时,如果在服务器端没有调用setMaxAge方法设置cookie的有效期,那么cookie的有效期只在一次会话过程中有效,用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一次会话,当用户关闭浏览器,会话就结束了,此时cookie就会失效,如果在服务器端使用setMaxAge方法设置了cookie的有效期,比如设置了30分钟,那么当服务器把cookie发送给浏览器时,此时cookie就会在客户端的硬盘上存储30分钟,在30分钟内,即使浏览器关了,cookie依然存在,在30分钟内,打开浏览器访问服务器时,浏览器都会把cookie一起带上,这样就可以在服务器端获取到客户端浏览器传递过来的cookie里面的信息了,这就是cookie设置maxAge和不设置maxAge的区别,不设置maxAge,那么cookie就只在一次会话中有效,一旦用户关闭了浏览器,那么cookie就没有了,那么浏览器是怎么做到这一点的呢,我们启动一个浏览器,就相当于启动一个应用程序,而服务器回送的cookie首先是存在浏览器的缓存中的,当浏览器关闭时,浏览器的缓存自然就没有了,所以存储在缓存中的cookie自然就被清掉了,而如果设置了cookie的有效期,那么浏览器在关闭时,就会把缓存中的cookie写到硬盘上存储起来,这样cookie就能够一直存在了。


6


public int getMaxAge()


普通方法


获取Cookies的有效期


7


public void setPath(String uri)


普通方法


设置cookie的有效路径,比如把cookie的有效路径设置为"/xdp",那么浏览器访问"xdp"目录下的web资源时,都会带上cookie,再比如把cookie的有效路径设置为"/xdp/gacl",那么浏览器只有在访问"xdp"目录下的"gacl"这个目录里面的web资源时才会带上cookie一起访问,而当访问"xdp"目录下的web资源时,浏览器是不带cookie的


8


public String getPath()


普通方法


获取cookie的有效路径


9


public void setDomain(String pattern)


普通方法


 设置cookie的有效域


10


public String getDomain()


普通方法


 获取cookie的有效域

二.Cookie实例

实例1  获取网页的最后访问时间

获取客户端保存的最后访问时间

Cookie[] cookies=req.getCookies();//获取客户端的所有cookie对象
for(int i=0;cookies!=null&&i<cookies.length;i++)
{
if("lastAccessTime".equals(cookies[i].getName()))//判断当前cookie中的name是否是想要的cookie
{
long l=Long.parseLong(cookies[i].getValue());//如果是想要的cookie,则把cookie输出
out.print("你的最后访问时间是:"+new Date(l).toLocaleString());//yyyy-MM-dd
}
}
//创建Cookie,并把信息写回客户端
Cookie ck=new Cookie("lastAccessTime", System.currentTimeMillis()+"");
//设置cookie的有效时间,单位是秒
ck.setMaxAge(60*1);//保存时间为5分钟
//把cookie信息写回客户端浏览器
resp.addCookie(ck);

运行效果 cookie访问时间会不断地更新

实例二 删除cookie

删除cookie时,务必要保证路径一致

//创建一个Cookie对象

Cookie ck=new Cookie("lastAccessTime", "");

ck.setPath("/");//设置被删除cookie的path,否则可能删错对象
ck.setMaxAge(0);//相当于删除
response.addCookie(ck);//将ck写回客户端缓存

三.cookie细节

1.一个Cookie只能标识一种信息,它至少含有一个标识该信息的名称(NAME)和设置值(VALUE)。

2.一个WEB站点可以给一个WEB浏览器发送多个Cookie,一个WEB浏览器也可以存储多个WEB站点提供的Cookie。

3.浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。

4.如果创建了一个cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cookie(即存储在浏览器的内存中),用户退出浏览器之后即被删除。若希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0则是命令浏览器删除该cookie。

原文地址:https://www.cnblogs.com/longlyseul/p/9906001.html

时间: 2024-10-21 19:17:35

Cookie API介绍的相关文章

Linux平台上SQLite数据库教程(二)——C语言API介绍

Linux平台上SQLite数据库教程(二)--C语言API介绍 前言:本文将介绍几个基本的SQLite3数据库的C语言API接口,主要用到两个文件:sqlite3.c.sqlite3.h.源码地址:https://github.com/AnSwErYWJ/SQLite. 打开数据库 1.原型: int sqlite3_open( const char* filename, /* 数据库文件名, 必须为 UTF-8 格式 */ sqlite3** ppDB /* 输出: SQLite 数据库句柄

Cookie学习-------介绍

什么是 Cookie? Cookie是存储于访问者计算机中的变量. Cookie是Web服务器保存在用户计算机上等的文本文件的小块用户信息,每当用户访问Web服务器时,保存在用户计算机上的相关Cookie由客户端读取到服务器端,服务器端根据Cookie信息为用户制定服务. 例如:访问某个网站时在页面中体现用户登录次数等. Cookie的语法 set-Cookie:name=value;[exprise=date];[path=dir];[domain=domainname];[secure] C

【转】asp.net中的cookie使用介绍

来源:http://www.jb51.net/article/30398.htm 一.cookie导读,理解什么是cookie 1.什么是cookie:cookie是一种能够让网站服务器把少量数据(4kb左右)存储到客户端的硬盘或内存.并且读可以取出来的一种技术. 2.当你浏览某网站时,由web服务器放置于你硬盘上的一个非常小的文本文件,它可以记录你的用户id.浏览过的网页或者停留的时间等网站想要你保存的信息.当你再次通过浏览器访问该网站时,浏览器会自动将属于该网站的cookie发送到服务器去,

CasperJS API介绍

一.使用标准JavaScript对象作为可选参数构造CasperJS实例 1 直接在create()函数里面使用 var casper = require('casper').create({ clientScripts: [ 'includes/jquery.js', // These two scripts will be injected in remote 'includes/underscore.js' // DOM on every request ], pageSettings:

WKWebView与JS交互实战技巧之API介绍

前言 前一章我给大家介绍了iOS与HTML5的交互,用的是UIWebView,今天给大家介绍另外一种基于 iOS 8 新推出的 WKWebView 组件,构建出自己的混合开发框架. WKWebView 简介 WKWebView 是苹果在 iOS 8 中引入的新组件,目的是给出一个新的高性能的 Web View 解决方案,摆脱过去 UIWebView 的老旧笨重特别是内存占用量巨大的问题. 苹果将 UIWebViewDelegate 与 UIWebView 重构成了 14 个类和 3 个协议,引入

CEPH OBJECTSTORE API介绍

Thomas是本人在Ceph中国社区翻译小组所用的笔名,该文首次发布在Ceph中国社区,现转载到本人博客,以供大家传阅 CEPH OBJECTSTORE API介绍 本文由 Ceph中国社区-Thomas翻译,陈晓熹校稿 . 英文出处:THE CEPH OBJECTSTORE API 欢迎加入 翻译小组 简介 object store是Ceph OSD的一部分,它完成实际的数据存储.当前有三种不同的object store可用: FileStore: 文件系统+日志后备的存储 KeyValueS

SharePoint 2013 Excel Services REST API介绍

原文:SharePoint 2013 Excel Services REST API介绍 前言:Excel Services 中的 REST API 是 Microsoft SharePoint Server 2010 的新增项.利用 REST API,可通过 URL 直接访问工作簿部件或元素. 一.REST 服务基于两个要求: 用于定位网络资源的寻址方案 用于返回这些资源的表示形式的方法 二.REST URL基本URI的三个组成部分是: REST aspx 页 URI:http://<Serv

Android无线测试之—UiAutomator UiScrollable API介绍三

获取列表子元素 一.相关API介绍 返回值 API 描述 UiObject getChildByDescription(UiSelector childPattern, String text, boolean allowScrollSearch) 是否允许滚动查看获取具备UiSelector条件元素集合后再以文本描述条件查找对象 UiObject getChildByDescription(UiSelector childPattern, String text) 默认滚动获取具备UiSele

Commons-lang API介绍

4.1 Commons-lang API介绍 4.1.1 StringUtils 4.1.2 StringEscapeUtils 4.1.3 ArrayUtils 4.1.4 DateUtils 4.1.5 DateFormatUtils 4.1.6 RandomUtils 4.1.7 NumberUtils 4.1.8 FieldUtils 4.1.9 CharUtils 4.1.10 BooleanUtils   4.1.11 ExceptionUtils 1    StringUtils方