`
chengyu2099
  • 浏览: 460186 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

js 操作 cookie

阅读更多
1、设置COOKIE数据:

最基本的COOKIE只包括COOKIE名和它的值,语法如下

document.cookie="Cookie_name=Cookie_value"

警告     不要在cookie名或值中使用如分号(;)、逗号(,)或者空格等特殊字符。

但是,假设我们需要保存的名或值有这些符号,怎么办呢?最简单的办法就是使用escape(string)方法,这个方法是用一个字符串参数,把其中的非字母或数字字符转换为等价的数值(16进制),然后在前面加上百分号。

如:document.cookie="book_name="+escape("Special Edition Using JavaScript")

结果为:Special%20Edition%20Using%20JavaScrpit

2、获取COOKIE值:

获取cookie的值要稍微麻烦一点,首先要把cookie属性保存到一个变量:cookie_string=document.cookie 从而得到一个形如 cookie_name=cookie_value 的字符串。然后取等号的索引位置,再使用String对象的substring()方法抽取值,如果值使用了escape()方法编码,还要用 unescape() 进行解码。cookie_string=unescape(document.cookie)

(注:大哥大姐,看文章时别忘记关注我哟,嘿嘿) 
3、处理多个COOKIE:

定义多个COOKIE   documet.cookie="name1=value1;   name2=value2" 每个cookie之间用分号和一个空格分开

处理用 split() 方法,如: var cookie_array = document.cookie.split(";")

即 cookie_arrar[0]和[1]各为上面的COOKIE字符串。 

4、终止日期:

var   days=30; 

var   expire_date=new Date(); 

var ms_from_now=days*24*60*60*1000;

expire_date.setTime(expire_date.getTime()+ms_from_now);

var expire_string=expire_date.toGMTString();//转为GMT格式的String 

document.cookie="count_cookie=visit_number;   expires="+expire_string;

5、其他参数:

document.cookie="name=value;   path=cookie_dir";//指定访问的目录,所有页面访问,则把path设为根目录(/)。

参数domain用于指定站点上可以访问cookie的主机名,如果没有指定,则默认为站点所在的WEB服务器的主机名。如果服务器只有一个主机名,则不需要考虑这个参数。如:domain=.domain.com

secure, 这是一个boolean值。如果为真,则该cookie只发往使用HTTPS(安全)协议连接的浏览器;如果为假(或忽略)则发给所有的浏览器,即使使用了不安全的HTTP协议。如:document.cookie="name1=value1;   true"。




     			var Asresult = eval('('+XMLHR.responseText+')');
     			var browsePh = '';
     			var firstPhoto = '';
     			for(var i=0;i<Asresult.length;i++)
     			{	
     				var BrowseName = Asresult[i];
     				browsePh += '<img src= d:\\upload\\'+albumidBrowse+'\\'+BrowseName + ' width="80" height="50" rel='+'d:\\upload\\'+albumidBrowse+'\\'+ BrowseName +' 
					name="#" />';
     				if(i==0)
     				{
     					firstPhoto = '<img src= d:\\upload\\'+albumidBrowse+'\\'+BrowseName + ' width="640" height="400" id="mainphoto" 
						rel='+'d:\\upload\\'+albumidBrowse+'\\'+ BrowseName +' name="#" />';
     					document.cookie = "firstPhoto="+firstPhoto;
     				}
     			}
     			//获取当前路径
				a=self.location.toString();
				var b="";
				for(i=0;i<a.split("/").length-2 ;i++)
				{
				    b=b+a.split("/")[i].toString()+"/";
				}
				var pt = b+'album/'+'browsePhoto.jsp';
				document.cookie = "browsePh="+browsePh;
	     		window.info.location = b+'album/'+'browsePhoto.jsp';
 			

			<iframe name="info" src="" scrolling="auto" frameborder="0" width="100%" height="500"></iframe>



			<%
	String browsePh = "";
	String firstPhoto = "";
	Cookie[] cookies = request.getCookies();
	if(cookies!=null)
	{
	 for (int i = 0; i < cookies.length; i++)
     { 
    	Cookie c = cookies[i];
		if(c.getName().equalsIgnoreCase("browsePh"))
       	{
          browsePh = c.getValue();
          System.out.println("browsePh = "+browsePh);
        }
        if(c.getName().equalsIgnoreCase("firstPhoto"))
        {
        	firstPhoto = c.getValue();
         	System.out.println("firstPhoto = "+browsePh);
        }
       c.setMaxAge(-1);
     }
	}
%>
<div id="tbody">

    <div id="mainbody">
     	<%=firstPhoto %>
    </div>

	......


	如果不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览器会话期的cookie被称为会话cookie。会话cookie一般不存储在
	硬盘上而是保存在内存里,当然这种行为并不是规范规定的。如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。 


	String MpCookie = "";
	Cookie[] cookies = request.getCookies();
	if(cookies!=null)
	{
	 for (int i = 0; i < cookies.length; i++)
     { 
    	Cookie c = cookies[i];
		if(c.getName().equalsIgnoreCase("MpCookie"))
       	{
       	//decodeURIComponent
         MpCookie = c.getValue();
         System.out.println("*******************MpCookie = "+MpCookie);
        }
       c.setMaxAge(-1);
     }
	}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics