Cookie备忘

本文详细解析了Cookie的概念及其在JavaScript和Java中的实现方式,并介绍了Cookie的应用场景,包括如何在JavaScript与Java间进行变量交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     有20多天不能上网了,憋屈极了,赶紧发表一下自己对Cookie的理解。

关于cookie的名字,无须废言。
Cookie到底是什么?
--cookie是document的一个属性,也就是说每个page对应一个cookie对象,所以
--cookie是一个有生命周期的对象,默认为一个会话期同session一样,但是可以设定到指定的日期。
--cookie还是一组属性。它最多可包含name、expires(GMT格式)、path、domain、secure,以半角的分号隔开。
    Domain:域属性表明cookie由哪个网站产生或者读取。(如:www.domain.com)
    Path: 通过设置网站上精确的路径,就能限制cookie的使用范围。如:"/maindir/subdir/path"
<script language="javascript">
function getCookie_value(cookie_name){
   cookie_name += "=";
   var cookieStr = document.cookie;
   var returnValue = "";
   if (cookieStr.length > 0){
      var index = cookieStr.indexOf(cookie_name);
      if (index != -1){
         index += cookie_name.length;
         returnValue = unescape(cookieStr.substring(index, cookieStr.indexOf(";",index)));
      }
   }
   return returnValue;
}

function setCookie(){
   var cookieStr = arguments[0]+"=";
   cookieStr += (arguments[1]?arguments[1]:"")+";"
   int argc = arguments.length;
   if (argc >= 3){
      var expDate = new Date();
      expDate.setTime(expDate.getTime()+24*3600*parseFloat(arguments[2]));  //days
      cookieStr += "expires="+expDate.toGMTString();
   }else if (argc >= 4){
      cookieStr += ";path="+arguments[3];
   }else if (argc >= 5){
      cookieStr += ";domain="+arguments[4];

   }else{
      cookieStr += ";secure";
   }
   document.cookie = cookieStr;
}
function clear_Cookie(){
   document.cookie = "";
}
</script>

J2EE1.4对Cookie的支持
Java对Cookie的定义跟JS不一样。Java里的Cookie是指“由Servlet发送给浏览器的并能回送到服务端的一组信息,一个Cookie的值可以惟一地标识一个客户端”,很显然,这里的Cookie并不与一个document相连,而是指在服务器和浏览器之间建立一个请求--回应的通话过程中的传送的一组简单数据,注意,这里是一组,而非一个。个数可以由HttpServletResponse.addCookie(Cookie)任意添加,而HttpServletRequest.getCookies() 一次性可以取出N个Cookie对象。
使用response增加cookie数据后,出现一些意想不到的现象:
1. 多了个JSESSIONID
2. new Cookie(name,value)中value不能有分号!
3. 在同一request中的多个Java Cookie,放在JS的document.cookie中是一个以分号隔开的“name=value”字符。

Cookie应用场景
JavaScript变量与Java变量交互。通常情况下,JavaScript可以方便的使用Java的输出变量,但反过来使用却并不容易。Cookie便提供了这样一种渠道。但目前为止,Java和JavaScript之间的Cookie通信只限于name和value,Cookie其他的属性如:expires,path,domain等均无效。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值