cookie和session基本使用以及封装

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: |||超大  

Cookie:

是一小段文本信息,用户请求页面的时候,在浏览器和服务器之间传递。用户每次访问的时候都会记录cookie,cookie里可以包含用户信息,浏览的历史记录等等;Cookie是由服务器端生成,但是它是属于客户端的,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。

基本语法:

编写cookie

存:---创建cookie对象,分配自定义cookie名称

HttpCookie mycookie=newHttpCookie(“ UserSettings”);用户自定义名称;

mycookie.values.add(“name1”,”value1”); 为cookie添加键值对

Mycookie.values.add(“name2 ”,”value2”);

换种写法 mycookie【“name1”】=“value1”;也是一样

mycookie.Expires=DateTime.Now.AddDays(1d);过期时间设置为一天

Response.Cookies.Add(mycookie); 添加到cookie集合中去

注意的地方:不指定该 Cookie 的过期限制,则该 Cookie 将不会保留在客户端计算机上,当用户会话到期时该 Cookie 即到期。Cookie 仅能存储 String 类型的值。在将任何非字符串值存储到 Cookie 中之前,必须将它们转换为字符串

取:if(Request.Cookies[“ UserSettings”]!=null){stringgetVal=””;if(Resquest.Cookies[“ UserSettings”][“name1”]!=null){

getVal=Resquest.Cookies[“ UserSettings”][“name1”];

}

}

//删除cookie

//只要把cookie设置成过期时间;if(Request.Cookies["UserSettings"] !=null)

{

HttpCookie myCookie=newHttpCookie("UserSettings");

myCookie.Expires= DateTime.Now.AddDays(-1d);

Response.Cookies.Add(myCookie);

}

cookie封装成一个方法:

1 创建cookie对象并且赋value,修改cookie的value值可以用这个方法;因为必须重新设过期时间

2 strCookieName: cookie 的对象名

3 iExpires: cookie 的有效时间 0 代表一周, -1 代表永久 ,大于2小于60 代表天数 其他代表 分钟数

4 strValue: cookie对象的值5publicstaticvoidSetCookie(stringstrCookieName,intiExpires ,stringstrValue) {6HttpCookie objCookie=newHttpCookie(strCookieName);7objCookie.Value=System.Web.HttpUtility.UrlEncode(strCookieName);8If(iExpires>=0){9switch(iExpires>=0){10case0:11objCookie.Expires=DateTime.Now.AddDays(7);

break;12case-1:13objCookie.Expires=DateTime.MaxValue;

break;14}15default:16if( iExpires>=60)17objCookie.Expires=DateTime.Now.AddSeconds(iExpires);18else19objCookie.Expires=DateTime.Now.AddDays(iExpires);2021}22HttpContext.Current.Response.Cookie.Add(objCookie);23}2425 读取cookie

26 传入相同的名字就可以了。

27 读取cookie某个对象的value 如果不存在就返回字符串”“28publicstaticstringGetcookie(stringstrCookieName){29switch(HttpContext.Current.Request.Cookies[strCookieName] ==null){30casetrue:31strCookieName= String.Empty;

break;32casefalse:33strCookieName=System.Web.HttpUtility.UrlDecode(HttpContext.Current.Request.Cookies[strCookieName].Value);

break;34}35returnstrCookieName;36}

最常用的就是session 了

选择封装

//存session的值

// 设置session的值publicstaticvoidSetSession(stringname,objectvalue){try{

HttpContext.Current.Session[name]=value;

}catch(Exception ex ){

WriteErrorLog(ex,”HelperError”)

}

}

//错误日志publicstaticvoidWriteErrorLog(Exception ex,stringErroType){if(ex==null)return;

System.Text.StringBuilder sbui=newStringBuilder();stringdatetime =DateTime.Now.ToString("yyyyMMddHHmmss_ffff");

sbui.Append("错误等级:\r\n");

sbui.Append(ErrorType);

sbui.Append("\r\n错误的信息:\r\n");

sbui.Append(ex.Message);

sbui.Append("\r\n错误的堆栈:\r\n");

sbui.Append(ex.StackTrace);

sbui.Append("\r\n出错的方法名:\r\n");

sbui.Append(ex.TargetSite.Name);

sbui.Append("\r\n出错的类名:\r\n");

sbui.Append(ex.TargetSite.DeclaringType.FullName);

WriteErrorLog(sbui.ToString());

}

//获取session的值 这个事可以取实体publicstaticobjectGetSession(stringname){objectobj_Value=null;try{

obj_Value=HttpContext.Current.Session[name];

}catch(Exception ex){

obj_Value=null;

WriteErrorLog(ex,”HelperError”);

}returnobj_Value;

}

//这个取字符串publicstaticstringGetStringSession(stringname) {stringStr_Value ="";try{if(HttpContext.Current.Session[name] !=null)

Str_Value=HttpContext.Current.Session[name].ToString();

}catch(Exception ex) {

Str_Value=String.Empty;

WriteErrorLog(ex,"HelperError");

}returnStr_Value;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航