ASP.NET整理:Cookie,Application,Session,页面生命周期

一.设置Cookie的2种方式

1.    Repsonse.Cookie[“名”] = 值;

2.    HttpCookie hcCookie = new HttpCookie(“名”,值);

hcCookie.Expires = Date.Now.AddDays(1);这里可以增加月

Response.Cookies.Add(hcCookie);

从Cookie中取值:

string str = Response.Cookies[“名”].Value;

注意:

1.Cookie若没指定时间,则默认为到浏览器关闭为止,设为MaxValue则表示永不过期.

2.另外Cookie中只能存字符串,即Response.Cookie[“Quantity”] = 15;是错误的,只能”15”.

二.如何接受URL中参数

Request.QueryString[“URL参数后变量名”];

Request.Form[“URL参数后名”]

C#中没有类似于JAVA中的转发功能,没法传对象,要想传对象只能放在session中,或者viewstate页面状态保持中

三.ASP.NET页面的生命周期:

A.初始化

B.加载实例:PostBack--ViewState--<%@ Page .....%>//这个每个页面只能出现一次

C.服务器控件验证

D.控件事件

E.Render渲染显示

F.卸载

一般一些敏感类数据:用户名、密码、权限等存在session中,而用户上一次登录的时间存放在cookie中

四.Session相关

获得sessionId:Session.SessionID

∵SessionID是保存在Cookies中的,而Cookies是可被禁用掉的

∴可采用:URL重写技术,将SessionID附加到URL中;使用表单隐藏技术,服务器将SessionID以隐藏字段的方式添加到表单中。

1.Session语法:

Session[“名”] = 值; //注意这里没有Value属性,跟Cookie区别

2.获取:

变量 = Session[“名”];

3.特征:

session一旦过期,Server即刻清除Session对象,释放所占资源

4.属性:

Timeout:设置超时时间,单位:分;

5.方法:

Clear():从会话状态集合中清除所有键和值(清空值,内存中保留空间)

Abandon():结束Session,取消当前会话(安全退出功能),因为优先级较低,在当前页面执行完成过以后才执行,这也是为什么“安全退出”按钮点击后页面会跳转一下。

f.Session在配置文件中的一些设置:

<system.web>

<sessionState timeout=”20” cookieless=”true” mode=”SQLServer”></sessionState>

</system.web>

6.Session中可以存放对象:

User user = new User();

user.ID = 1;

userName = “Tom”;

Session[“userInfo”] = user;

可根据session知否为空来进行判断--->用于访问控制

if(Session[“userInfo”]==null)

{

Response.Redirect(“index.aspx”);

}

else

{

If(!Page.IsPostBack)

{

//...欢迎致辞等

}

读取session中的对象:User user = Session[“userInfo”] as User;

五.Application相关

赋值:

Application["名"] = 值;

取值:

变量 = Application["名"]; //Application中存储的都是Object类型,取的时候需转型

Global.asax文件:全局应用程序类

Application包含5个事件

Application_Start

Application_End

Application_Error

Session_Start

Session_End

使用Application的时候需要进行Lock()操作,eg:

统计人数功能,在Application_Start事件中:

Application.Lock();

Application["count"] = 0;

Application.Unlock();

在Session_Start中实现自增:

Application.Lock();

Application["count"]= (int)Application["count"]+1; //需类型转换;

Application.Unlock();

六.Request和Server属性

浏览器类型:Request.Browser.Browser

浏览器版本:Request.Browser.Version

客户端操作系统版本:Rquest.Browser.PlatForm

客户端IP地址:Request.UserHostAddress

客户端主机名:Request.UserHostName

服务器名称:Server.MachineName

服务器根目录:Server.MapPath

上一篇:java总结


下一篇:JS对于字符串的切割截取