这一篇文章已经写的很详细了:
http://www.cnblogs.com/afuge/archive/2013/07/03/3169048.html
2,原生js操作cookie
jquery.cookie.js一般会出现cookie不兼容问题就要用原生的js了
<script language=javascript>
//获得coolie 的值
function cookie(name){
var cookiearray=document.cookie.split(; ); //得到分割的cookie名值对
var cookie=new object();
for (var i=0;i<cookiearray.length;i++){
var arr=cookiearray[i].split("="); //将名和值分开
if(arr[0]==name)return unescape(arr[1]); //如果是指定的cookie,则返回它的值
}
return "";
}
function delcookie(name)//删除cookie
{
document.cookie = name+"=;expires="+(new date(0)).togmtstring();
}
function getcookie(objname){//获取指定名称的cookie的值
var arrstr = document.cookie.split("; ");
for(var i = 0;i < arrstr.length;i ++){
var temp = arrstr[i].split("=");
if(temp[0] == objname) return unescape(temp[1]);
}
}
function addcookie(objname,objvalue,objhours){ //添加cookie
var str = objname + "=" + escape(objvalue);
if(objhours > 0){ //为时不设定过期时间,浏览器关闭时cookie自动消失
var date = new date();
var ms = objhours*3600*1000;
date.settime(date.gettime() + ms);
str += ; expires= + date.togmtstring();
}
document.cookie = str;
}
function setcookie(name,value)//两个参数,一个是cookie的名子,一个是值
{
var days = 30; //此 cookie 将被保存 30 天
var exp = new date(); //new date(december 31, 9998);
exp.settime(exp.gettime() + days*24*60*60*1000);
document.cookie = name + =+ escape (value) + ;expires= + exp.togmtstring();
}
function getcookie(name)//取cookies函数
{
var arr = document.cookie.match(new regexp((^| )+name+=([^;]*)(;|$)));
if(arr != null) return unescape(arr[2]); return null;
}
function delcookie(name)//删除cookie
{
var exp = new date();
exp.settime(exp.gettime() - 1);
var cval=getcookie(name);
if(cval!=null) document.cookie= name + =+cval+;expires=+exp.togmtstring();
}
</script>
3,服务器端处理
/// <summary>
/// 将点击的值存放到cookie中
/// </summary>
private void setcookievalue(httpcontext context, string dic, string cookiename, string keyname)
{
httpcookie cookie = new httpcookie(cookiename);//初使化并设置cookie的名称
if (context.request.cookies[cookiename] != null)
{
cookie = context.request.cookies[cookiename];
if (cookie.values.count > 0 && cookie.values.getvalues(keyname) != null && cookie.values.getvalues(keyname).length > 0)
{
remove(cookiename, keyname);
}
}
timespan ts = new timespan(0, 3, 0, 0, 0);//过期时间为3小时
cookie.expires = datetime.now.add(ts);//设置过期时间
cookie.values.add(keyname, dic);
context.response.appendcookie(cookie);
//ncookieutil.setcookie(keyname, dic);
}
/// <summary>
/// 将点击的值从cookie中取出
/// </summary>
public string getclickvalue(httpcontext context, string cookiename, string keyname)
{
string username = ;
if (context.request.cookies[cookiename] != null)
{
if (context.request.cookies[cookiename][keyname] != null)
{
username = context.request.cookies[cookiename][keyname].tostring();
}
}
//username = ncookieutil.getcookie(keyname);
return username;
}
/// <summary>
/// 移除cookie中指定的键,若是最后一个键则移除这个cookie
/// </summary>
public static void remove(string cookiename, string keyname)
{
httpcookie cookie = httpcontext.current.request.cookies[cookiename];
if (cookie != null)
{
if (cookie.values.count > 0)
{
if (cookie.values.count == 1)
{
//若是最后一个键则移除这个cookie,否则会多出一个空值
cookie.values.remove(httputility.urlencode(keyname));
cookie.expires = datetime.now.adddays(-1);
}
else
{
cookie.values.remove(httputility.urlencode(keyname));
}
httpcontext.current.response.cookies.add(cookie);
}
}
}
其实这三种方法还是建议用第二种方法!
以上就是cookie的三种操作方法的内容。