v     Application对象 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1. Application对象来自于HttpApplictionState类,它可以在多个请求、连接之间共享公用信息,也可以在各个请求和连接之间充当信息传递的通道。

2. Application对象是共有的对象,所有用户都可以对某个特定的Application对象进行修改。

•        3.当用户第一次访问某虚拟目录的资源时Application对象被创建,退出应用程序或关闭服务器时被撤销。Application对象变量中止于停止IIS服务

 

   需要注意的点:

1.    因为Application是共有的,一般在Global.asax文件中设置

2.      为避免并发情况,使用lock方法

                    Application.Lock();

                    Application["Count"] = int.Parse(Application["Count"].ToString()) + 1;

                    Session["MyID"] = 0;

        Application.UnLock();

3. Application对象利用“键—值”对的字典方法来定义,

   其中“键”为字符串,代表状态的“名”,“值”可以是任何类型的数据。

              Application.Add("count", 1);  // 键值对的方法

                  Application["msg"] = "My Name";

 Application.Clear();     // 清除Application集合中的内容。

              Application.RemoveAll();

 

v     Session对象  

1、 HttpSessionState类的一个实例,其功能和Application对象类似,都是用来存储跨网页程序的变量或者对象。

2、 Session对象变量只针对单一网页使用者,也就是说各个连接的机器有各自的Session对象变量,不同的客户端无法互相存取。

3、 Session对象变量中止于联机机器离线时,也就是当网页使用者关掉浏览器或超过设定Session变量对象的有效时间时,Session对象变量就会消失。

 

v     什么是会话状态?会话状态(Session State)是为单个用户保留的状态。
v     Request对象   功能是从客户端得到数据。
v     Response对象  功能是想浏览器输出信息。
这两个对象经常用在一起。客户端和服务端的数据交互将得到了保障。

重点介绍下Request对象
•        它提供对当前页请求的访问,其中包括请求标题、Cookie、客户端证书、查询字符串等,你可以使用此类来读取浏览器已经发送的内容。

•        服务端常常使用Request对象从客户端得到数据信息

它有两个常用方法:
Form[]QueryString[]方法。
      客户端提交的方式有:
          get: 对应Request.QueryString[] 这是使用Url路径值提交。也称显示提交。
          post: 对应Request.Form[] 也称隐式提交。这是浏览器默认的提交方式。他是靠控件的namevalue传递值的。不识别ID属性,所以对于HTML页面控件必须要有Name属性。
        

 

v     Server对象   Server对象提供的方法和属性可以访问服务器。
      HttpServerUtility类的一个实例,它定义了一个与Web服务器相关的类提供对服务器上的方法和属性的访问。
      用法:
•        当前文件所在物理路径:Response.Write(Server.MapPath("."));
•        HTML编码:Response.Write(Server.HtmlEncode("<h1>好好学习,<br><h3>天天向上"));
•        URL编码:Response.Write(Server.UrlEncode("<h1>好好学习,<br><h3>天天向上"));
        解码:Response.Write(Server.HtmlEncode(str));
•        Server.Execute方法允许当前的ASPX页面执行一个同一Web服务器上的指定ASPX页面,当指定的ASPX页面执行完毕,控制流程重新返回原页面发出Server.Execute调用的位置。
•        Server.Transfer
•        它是从server端直接向下一页发起请求,不需要client再次发送请求. 如果你的网页非常依赖Response.Redirect,这个小小的改变可以提高将近25%的效率。

 

 

v     Cookie对象
 HttpCookieCollection类的一个实例,它用于保存客户端浏览器请求的服务器页面,也可以用它存取非敏感性的用户信息,信息保存的时间可以根据需要设置。
Cookie对象的所有信息保存在客户机器上。

 

 

 

 

 

容易混绕的知识点区分:
1.  ApplicationSession的相同点和不同点:
Application对象和Session对象都属于服务器对象,用来保存页面中或用户的一些数据。

Application对象是共有的对象,所有用户都可以对某个特定的Application对象进行修改。Session对象变量只针对单一网页使用者,也就是说各个连接的机器有各自的Session对象变量,不同的客户端无法互相存取。

 

Application对象变量中止于停止IIS服务;Session对象变量中止于联机机器离线时,也就是当网页使用者关掉浏览器或超过设定Session变量对象的有效时间时,Session对象变量就会消失。

 

 

2SessionCookie的相同点和不同点:
•        可以保存用户信息。

•        不同的是,Session对象的所有信息保存在服务器上,而Cookie对象的所有信息保存在客户机器上。

 

3Server.Execute()Server.Transfer()Response.Redirect()的区别:
•        Server.Execute方法允许当前的ASPX页面执行一个同一Web服务器上的指定ASPX页面,当指定的ASPX页面执行完毕,控制流程重新返回原页面发出Server.Execute调用的位置。
•        Server.Transfer
•        它是从server端直接向下一页发起请求,不需要client再次发送请求. 如果你的网页非常依赖Response.Redirect,这个小小的改变可以提高将近25%的效率。
用自己的话来说:

Server.Execute()会把所请求的页面加载到本页的前面和合并成一个页面。而Server.Transfer()把所请求的页面调过来加载到本页显示。

Server.Execute()Server.Transfer()都是从服务器中发出的请求。而Response.Redirect()是从客户端发出的请求。

所以Response.Redirect()要重新发一次请求呈现页面。在本页面执行完成后,呈现另外页面时本页面在内存当中会自动卸载。