JavaScript和Java使用Cookie总结(一)--cookie基础操作函数

      本以为Cookie读写有多复杂,今天一研究原来so easy,无论是JavaScript中,还是JSP中,读写Cookie的代码都很固定,以下代码就是这些函数。

     (一)浏览器存储路径

     1.IE 存放路径:

  C:\Documents and Settings\ 你的用户名 \Cookies 文件夹

         注:每个 cookie 是一个 txt 文件,文件名是以 用户名 @ 网站 URL” 命名的

    缓存路径:

  C:\Documents and Settings\ce\Local Settings\Temporary Internet Files

      2.FireFox 存放路径:

 C:\Documents and Settings\用户名\Application Data\Mozilla\Firefox\Profiles\随机目录,在目录下可以看到一个cookie.sqlite文件(firefox3.X版 本),所有的cookie都是保存在这个文件中。

 

    (二)JavaScript 操纵 cookie 函数

                function setCookie(sName, sValue, oExpires, sPath, sDomain, bSecure) {
                    var sCookie = sName + "=" + encodeURIComponent(sValue);     
                    if (oExpires) {
                        sCookie += "; expires=" + oExpires.toGMTString();
                    }             
                    if (sPath) {
                        sCookie += "; path=" + sPath;
                    }            
                    if (sDomain) {
                        sCookie += "; domain=" + sDomain;
                    }             
                    if (bSecure) {
                        sCookie += "; secure";
                    }             
                    document.cookie = sCookie;
                }                                
                function getCookie(sName) {               
                    var sRE = "(?:; )?" + sName + "=([^;]*);?";
                    var oRE = new RegExp(sRE);                    
                    if (oRE.test(document.cookie)) {
                        return decodeURIComponent(RegExp["$1"]);
                    } else {
                        return null;
                    }               
                }                
                function deleteCookie(sName, sPath, sDomain) {
                    var sCookie = sName + "=; expires=" + (new Date(0)).toGMTString();
                    if (sPath) {
                        sCookie += "; path=" + sPath;
                    }                
                    if (sDomain) {
                        sCookie += "; domain=" + sDomain;
                    }                    
                    document.cookie = sCookie;
                }

    例子:

setCookie("name", "Nicholas",new Date(2010,8,16),"/JavaScriptDemo");
 

      (三) JSP 操纵 cookie 函数

<%!
        //读取Cookie
  	public static Cookie getCookie(HttpServletRequest request,String name){
		Cookie[] cookies = request.getCookies();
		
		if(cookies != null){
			for(int i=0;i<cookies.length;i++){
				if(cookies[i].getName().equals(name)){
					return cookies[i];
				}
			}
		}
		return null;
	}
%>

 

<%
  		Cookie cookie = getCookie(request,"name");
  		out.write(URLDecoder.decode(cookie.getValue(), "utf-8"));   //解码	
%>

 

<%
  	   Cookie nameCookie = new Cookie("name",URLEncoder.encode("中文字符","utf-8"));
  	   nameCookie.setMaxAge(2000);//指定cookie的最大寿命,单位秒。
  	   nameCookie.setDomain(".mysite1.com");//一般不需要设置,除非需要跨域读取cookie值	
  	   nameCookie.setPath("/");
  	   response.addCookie(nameCookie);
%>

 

<%
  	    //清空cookie
	    Cookie domain = new Cookie("name","");
	    domain.setDomain(".mysite1.com" );//需要跟客户端Cookie文件中的域名一致
	    domain.setMaxAge(0);//重点设置cookie过期时间为0秒
	    domain.setPath("/");;
	    response.addCookie( domain );
%>

 

总结:

    1. 解决cookie读取乱码问题

//JSP中解决乱码问题
URLEncoder.encode(userinfo,"utf-8")   //编码
URLDecoder.decode(cookie.getValue(),"utf-8")   //解码
//JavaScript中解决乱码问题
encodeURIComponent(sValue); //编码
decodeURIComponent(sValue); //解码
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值