asp.net的几个内置对象

Asp.net的几个内置对象包括:Application、Session、Cookie、Request、Response、Server。

首先是比较如下的三个。


Application和Session

Application :全局对象,用来存储变量。不同的用户不同的时间都可以访问,在整个应用程序的生存周期中都是有效的。

Session:只是面向单一的用户,当客户首次与服务器连接时建立,同时分配一个SessionID。会话结束或者规定的时间内没有更新,Session被终止。

如下为一个使用Session和Application记录网页浏览量和当前浏览人数的简单的示例程序代码,体会二者的不同

       //当第一个用户请求时,触发该事件
        protected void Application_Start(object sender, EventArgs e)
        {
            //定义两个Application变量,在整个应用程序的生命周期里这个变量都是存在的
            Application["total"] = count; //记录浏览的总人数
            Application["online"] = 0; //记录在线人数
        }

        //每个用户发送请求是都会触发该事件,建立一个会话
	protected void Session_Start(object sender, EventArgs e)
        {
            //可能同时会有多个Session的Start事件被触发,但是只能依次的每次只能执行一个
            Application.Lock();//添加锁
	    //然后给两个变量加 1        				 		          			                              Application["total"] = (int)Application["total"] + 1;
            Application["online"] = (int)Application["online"] + 1;            			                                                      Application.UnLock();//执行完之后解锁
        }
	//每个用户的会话结束时触发该事件
       protected void Session_End(object sender, EventArgs e)
        {
	   Application.Lock();//添加锁                                                                         <span style="white-space:pre">					</span>   //在线人数减1      				 		          			                                             Application["online"] = (int)Application["online"] - 1;            		                                                             Application.UnLock();//执行完之后解锁
        }



上例中,在这整个的过程中,Application对象中的两个变量不同用户都可以使用,而且一直存在直到应用程序停止。而在Session对象的变量只能对一个用户有效,即不同用户的信息使用不同Session对象的变量保存。

Session和Cookie

Cookie:是在客户端保存SessionID的,使得服务器能够区别响应客户请求。有临时的和永久的。临时的在内存中,会话结束Cookie被删除。永久的在硬盘中,并且在指定的时间内一直可以使用。

         例如我们在登录一个网易或者CSDN时,会有“是否保存密码”之类的选项,如果选择Cookie就会是永久的,在一段时间内访问网易或者CSDN时都不用在次输入用户名密码,这就是使用保存在硬盘中的Cookie请求服务端。

Session保存在服务端,当在客户端首次与一台WWW服务器链接时,这是生成一个Session,同时在服务端会自动的生成一个SessionID并且将该ID回发到客户端的浏览器,而客户端的浏览器是将该ID保存在Cookie中的,当客户端再次向服务端发送HTTP请求时浏览器会将SessionID添加在HTTP的Header中,服务端会检查SessionID并且回应相应SessionID的Session信息。

 

Response和Reques

         当Web服务器收到客户端的http请求就会针对每次的请求分别建立一个代表请求的request对象和response对象

Response对象提供一些列的用于输出信息的方法,例如Response.Write()

Request对象可获取客户提交的数据,例如Request.QueryString()

 

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值