JavaScript中设置cookie的值

cookie 与 session 是网页开发中常用的信息存储方式。Cookie是在客户端开辟的一块可存储用户信息的地方;Session是在服务器内存中开辟的一块存储用户信息的地方.JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的,而cookie是运行在客户端的,所以可以用JS来设置cookie。

在ITOO项目中,系统需要页面之间的传值,现在假设页面A,和页面B,页面B需要页面A的一个参数,才可以进行后面的操作,那么我们就需要将页面A参数值保存到cookie中,页面B通过Js获取参数值,进行后续操作。

js写入Cookie代码:

<span >//两个参数,一个是cookie的名子,一个是值  
function SetCookie(name, value)  
{  
    //定义一天  
    var days = 1;  
    var exp = new Date();  
    //定义的失效时间,  
    exp.setTime(exp.getTime() + days * 24 * 60 * 60 * 1000);    
    //写入Cookie  ,toGMTstring将时间转换成字符串。  
    document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString;  
    
  
}</span> 

  //escape 方法返回一个包含了 charstring 内容的字符串值( Unicode 格式)。所有空格、标点、重音符号以及其他非 ASCII 字符都用 %xx 编码代替,其中 xx 等于表示该字符的十六进制数。例如,空格返回的是 "%20" 。字符值大于 255 的以 %uxxxx 格式存储

js读取Cookie代码

<span >//读取cookies  
function getCookie(name)  
{          //匹配字段  
    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");  
           
    if(arr=document.cookie.match(reg))  
   
        return (arr[2]);  
    else  
        return null;  
}</span>  

  //一组cookie值是 name=value,name前面可能是开头(^)也可能是空格( ),匹配开头或者空格就是 "(^| )"

  然后匹配name所以是 "(^| )"+name,然后匹配等号所以是 "(^| )"+name+"= ,

  然后匹配value,value本身通过分号结尾的,所以这里表示不是分号的一个字符串,正则为 [^;]*,到这里就是

  "(^| )"+name+"=([^;]*),最后value的结尾是一个分号或者字符串结束,那么是 (;|$)

  至此,整个匹配cookie的正则完成了,就是 "(^| )"+name+"=([^;]*)(;|$)"

我们除了在Js中写入cookie中之外,还可以在Contraller中将值写入Cookie中。

写入Cookie方法是:

[javascript]view plaincopy

  1. <span > //将试卷和课程ID存入cookie中
  2. HttpCookie cookie = new HttpCookie("PaperID");
  3. cookie.Values.Add("PaperId", ExamPaperId.ToString());
  4. cookie.Values.Add("ConsorID", ExamPaper.CourseId);
  5. //添加到浏览器中
  6. Response.AppendCookie(cookie);</span>

读取Cookie方法是:

[javascript]view plaincopy

  1. <span >HttpCookie newCookie = Request.Cookies["PaperID"];
  2. //定义变量用于接收试卷ID
  3. string strPaper;
  4. if (newCookie != null)
  5. {
  6. strPaperId = newCookie.Values["PaperId"];
  7. }</span>