`
isiqi
  • 浏览: 16028216 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论
阅读更多

一直都是简单去js实现cookie的一些操作,今天把js对cookie操作系统的整理了一遍,包括:js读取cookie,js添加cookie,js删除cookie,示例如下:





[下面讲的经个人觉得比较好哦!]
我们当然还得介绍cookie的四个属性。这些属性用下面的格式加到字符串值后面:

name=<value>[;expires=<date>][;domain=<domain>][;path=<path>][;secure]

名称=<值>[;expires=<日期>][;domain=<域>][;path=<路径>][;安全]

<value>,<date>,<domain>和<path>应当用对应的值替换。<date>应当使用GMT格式,可以使用Javascript脚本语言的日期类Date的.toGMTString()方法得到这一GMT格式的日期值。方括号代表这项是可选的。比如在[;secure]两边的方括号代表要想把cookie设置成安全的,就需要把";secure"加到cookie字符串值的后面。如果";secure"没有加到cookie字符串后面,那么这个cookie就是不安全的。不要把尖括号<>和方括号[]加到cookie里(除非它们是某些值的内容)。设置属性时,不限属性,可以用任何顺序设置。

下面是一个例子,在这个例子里,cookie"username"被设置成在15分钟之后过期,可以被服务器上的所有目录访问,可以被"mydomain.com"域里的所有服务器访问,安全状态为安全。


3.为什么我设置了cookie的过期时间如果为关闭的时候就自动清空的话怎么没用呢?
来研究一下JSP操纵cookie?
Cookie概念:
Cookie的格式实际上是一段纯文本信息,由服务器随着网页一起发送到客户端,并保存在客户端硬盘中指定的目录的.大家都传说Cookie会造成严重的安全威胁什么的,其实不是这么回事情.服务器读取Cookie的时候,只能够读取到这个服务器相关的信息.而且,浏览器一般只允许存放300个Cookie,每个站点最多存放20个,而且,每个Cookie的大小现在在4K,根本不会占用多少空间.并且,Cookie是有时效性质的.例如,设置了Cookie的存活时间为1分钟,则一分钟后这个Cookie就会被浏览器删除

Cookie版本:
目前有两个版本:
版本0:由Netscape公司制定的,也被几乎所有的浏览器支持.Java中为了保持兼容性,目前只支持到版本0,Cookie的内容中不能空格,方括号,圆括号,等于号(=),逗号,双引号,斜杠,问号,@符号,冒号,分号。
版本1:根据RFC2109文档制定的.放宽了很多限制.上面所限制的字符都可以使用.但为了保持兼容性,应该尽量避免使用这些特殊字符.

JSP中对Cookie的操作:类型方法名方法解释
StringgetComment()返回cookie中注释,如果没有注释的话将返回空值.
StringgetDomain()返回cookie中Cookie适用的域名.使用getDomain()方法可以指示浏览器把Cookie返回给同一域内的其他服务器,而通常 Cookie只返回给与发送它的服务器名字完全相同的服务器。注意域名必须以点开始
intgetMaxAge()返回Cookie过期之前的最大时间,以秒计算。
StringgetName()返回Cookie的名字
StringgetPath()返回Cookie适用的路径。如果不指定路径,Cookie将返回给当前页面所在目录及其子目录下的所有页面。
booleangetSecure()如果浏览器通过安全协议发送cookies将返回true值,如果浏览器使用标准协议则返回false值。
StringgetValue()返回Cookie的值。笔者也将在后面详细介绍getValue/setValue。
intgetVersion()返回Cookie所遵从的协议版本。
voidsetComment(Stringpurpose)设置cookie中注释
voidsetDomain(Stringpattern)设置cookie中Cookie适用的域名
voidsetMaxAge(intexpiry)以秒计算,设置Cookie过期时间。
voidsetPath(Stringuri)指定Cookie适用的路径。
voidsetSecure(booleanflag)指出浏览器使用的安全协议,例如HTTPS或SSL。
voidsetValue(StringnewValue)cookie创建后设置一个新的值。
voidsetVersion(intv)设置Cookie所遵从的协议版本

一个简单的例子
1.写入Cookie---writecookie.jsp
-------------------------------------------------------------

2.读取Cookie.jsp---readcookie.jsp
-------------------------------------------------------------


需要注意的两个问题:
1.Cookie有个适用路径的问题,就是说如果writecookie.jsp和readcookie.jsp要放在同意目录下,如果不在同一目录下,则写的时候需要设置路径,为readcookie.jsp所在的路径.
2.读入Cookie数组的时候需要判断是否为空(null),网上很多代码都没有写出这一点.

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics