您的位置:首页 > 编程语言 > ASP

ASP.NET页面基本对象

2013-08-28 22:55 176 查看


ASP.NET页面基本对象

2011-03-23 16:46:17| 分类: ASP.NET | 标签:页面基本对象 application cookie session asp.net |字号 订阅

ASP.NET页面基本对象:Application、Session、Request、Response、Serven、Cookie、ViewState

1. Application、

所有的用户共用 (经典实例:统计网页访问人数),全局变量

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();

2. Session、

Session 对象可以保存任何数据类型

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

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

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

什么是会话状态?会话状态(Session State)是为单个用户保留的状态。

3. Request、

功能是从客户端得到数据。

一般第一次访问页面是使用get传值,回发是使用post方式传值。

在接受上一个页面传递过来的值时:

如果上一页使用的是get方式传值,那么就是使用'Request.QueryString["上一页需要传递值的控件ID"]'接收;

如果上一页使用的是post方式传值,那么就使用'Request.Form["上一页需要传递值的控件ID"]'接收。

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

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

它有两个常用方法:

Form[]和QueryString[]方法。

客户端提交的方式有:

get: 对应Request.QueryString[] 这是使用Url路径值提交。也称显示提交。

post: 对应Request.Form[] 也称隐式提交。这是浏览器默认的提交方式。他是靠控件的name和value传递值的。不识别ID属性,所以对于HTML页面控件必须要有Name属性。

4. Response、

功能是向浏览器输出信息。

Response.End(); 当遇到"Response.End();"时表示所有程序结束

Response.Write(""); 输出自定义信息

Response.Redirect("Default.aspx"); 表示跳转到指定的"Default.aspx"页面(服务器端跳转,客服端无法感知,属于客服端的请求)

5. Serven、

Server对象提供的方法和属性可以访问服务器。

Serven.MapPath("."); 表示当前所在的目录

Serven.MapPath("../"); 表示当前所在的目录的上一级目录

Serven.MapPath("../../"); 表示当前所在的目录的上一级目录的上一级目录

Serven.MapPath("~/"); 表示当前程序的根目录

Serven.Execute 方法是运行指定的页面并将结果返回到当前页面输出(不跳转到指定执行的页面,内部执行)

Serven.Transfer 方法是终止当前页面,跳转到指定的页面执行(终止当前页的执行,并为当前请求开始执行新页。)

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%的效率。

6. Cookie、

Cookie对象的创建:

HttpCookie cookie=new HttpCookie("Cookie名称","保存的值");

//指定Cookie的生命周期,如果没有指定cookie的生命周期那么系统会自动当做临时cookie处理,(这里表示生命周期为10天)

cookie.Expires=DateTine.Now.AddDays(10);

//把创建好的Cookie对象添加到客户端cookie文件

Response.Cookies.Add(cookie);

//读取Cookie文件信息

Request.cookie["Cookie名称"];

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

Cookie对象的所有信息保存在客户机器上。

7. ViewState

类似于Session对象,只是ViewState不存在生命周期,即在页面关闭之前视图状态对象是不会消失的。

ViewState只局限于某个页面,而不能跨页面使用。使用bass64编码方式保存。

容易混绕的知识点区分:

1. Application和Session的相同点和不同点:

Application对象和Session对象都属于服务器对象,用来保存页面中或用户的一些数据。

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

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

2.Session和Cookie的相同点和不同点:

? 可以保存用户信息。

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

3.Server.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()要重新发一次请求呈现页面。在本页面执行完成后,呈现另外页面时本页面在内存当中会自动卸载。



Serven.Execute 方法是运行指定的页面并将结果返回到当前页面输出(不跳转到指定执行的页面,内部执行)

Serven.Transfer 方法是终止当前页面,跳转到指定的页面执行(终止当前页的执行,并为当前请求开始执行新页。)

Response.Redirect("Default.aspx"); 表示跳转到指定的"Default.aspx"页面(服务器端跳转,客服端无法感知,属于客服端的请求)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: