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

ASP.NET系统对象与状态管理

2013-01-13 11:27 369 查看
1、系统对象

在ASP.NET页面中包含一系列类,在页面中可以直接使用,我们称之为系统对象。

ASP.NET中常用的系统对象:
Page对象:Page对象是指向页面自身的方式,在整个页面的执行期内,都可以使用该对象。
Request对象:此对象封装了由Web浏览器或其他客户端生成的HTTP请求的细节(参数、属性和数据),提供从浏览器读取信息或读取客户端信息等功能,用于页面请求期。
Response对象:对象封装了返回HTTP客户端的输出,提供向浏览器输出信息或发送指令,用于页面执行期。
Server对象:该对象提供了服务器端的一些属性和方法。比如,页面文件的绝对路径等。
Application对象:为所有用户提供共享信息,作用于整个应用程序运行期。
Session对象:为某个用户提供共享信息,作用于用户会话期。
Cookie对象:保持于客户端的共享信息方法。
ViewState对象:被用于同一页面值的传递,不可跨页面,有点类似隐藏控件。
Cache对象:该对象提供了实现用于 Web 应用程序的缓存。
1.1 Page对象

ASP.NET的页面类都继承System.Web.UI.Page类,每一个ASP.NET的页面对应一个页面类。
@Page指令:新建页面的.aspx文件在第一行可以看到这样一行代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
@Page指令定义了ASP.NET页面用于编译和解析的属性,每个aspx页面只能有一个@page指令。

Language:指定页面代码和后置代码使用的语言,需要注意的是,这里只支持微软.NET框架中的语言。
AutoEventWireup:设置页面是否自动调用网页事件,默认(不写时)为true。
CodeFile:指定代码后置文件名,后置代码,该后置代码与页面是局部关系。
Inherits:页面类。
1.2 页面输入输出

页面的输入输出涉及到了Request对象和Response对象。
1.2.1 Request对象的常用属性:
QueryString集合:主要用于收集HTTP协议中的Get请求发送的数据,如果一个请求事件中被请求的程序URL中发现“?”号后的数据,则表示此次请求的方式为Get。
Form集合:与QueryString类似,但它用于收集Post方法发送的请求数据(Get方式一般只能传递256B的数据,而Post方法可以达到2MB)。
ServerVariables(环境变量)集合:包含了服务器和客户端的系统信息。
Params集合:是以上三种方法的集合,它不区分是由哪种方式传递的参数。相比而言,该方法需要在最大的范围(如URL参数、表单、环境变量等)寻找匹配字段,所以效率较低。
1.2.2 Response对象常用方法:
Write()方法可以输出指定的文本内容。
End()方法可以使Web服务器停止当前的程序并返回结果。
Redirect()方法可以将页面重定向到另外一个页面。
规范:

Request.ServerVariables["HTTP_USER_AGENT"]         //获取当前客户端浏览器的版本信息
Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"]    //获取当前客户端浏览器使用的语言

1.3 Server对象

Server对象封装了一些Web服务器相关的常用方法。如:

Server.MapPath(string path)函数:此方法带有一个虚拟路径,可以返回该路径在物理磁盘中的准确位置。

string path="/xml/book.xml";
string mapPath = Server.MapPath(path);
1.4 ViewState对象



ViewState对象同一页面值的传递,不可跨页面。

ViewState["PageIndex"] = 1;            //ViewState对象的写入
object obj = ViewState["PageIndex"];   //ViewState对象的读取


2、状态保持

由于HTTP协议是无状态的,所有用户登录就需要对用户信息进行保持,我们称之为状态保持。在ASP.NET中有Cookie、Session、Application三种状态保持的方式。

2.1 Cookie对象

Cookie是个存储在浏览器目录中的文本文件。Cookie对象分别属于Request对象和Response对象,每一个Cookie对象都属于集合Cookies(注意后面有个s,它暗示我们这是一个集合对象),所有访问Cookie的方式就可以使用索引器的方式。语法:

Response.Cookies[Cookie的名称].Value=变量值;          //写入Cookie
string 变量名=Response.Cookies[Cookie的名称].Value;   //读取Cookie
Cookie所对应的类名是HttpCookie,所以添加新Cookie还有一种方法:

HttpCookie hcCookie = new HttpCookie("Cookie的名称","值");
Response.Cookies.Add(hcCookie);
Cookie对象的常用属性如下:

Name:Cookie变量的名称。

Value:取得或者设置Cookie变量的内容(值)。

Expires:设定Cookie变量的有效时间。

需要注意的是:如果没有设置Cookie失效日期,它们仅保存到关闭浏览器程序为止;如果将Cookie对象的Expires设置为MaxValue,则表示Cookie永远不会过期。

2.2 Session对象

Session对象是存储在服务器端的数据。语法:

Session["Session名称"]=值;
变量=Session["Session名称"];
Session对象的常见属性和方法:
SessionID属性:包含唯一的用户会话标识符,它可以用于在整个会话过程中记录用户信息。

Tiemout属性:设置Session对象超时的时间,单位为分钟。

IsNewSession属性:如果已按当前请求创建会话,那么该属性将返回true。

Clear方法:从会话状态集合中移除所有的键和值。

Abandon方法:结束Session,取消当前会话。

2.3 Application对象



Application对象是个应用程序级得对象,用来在所有用户间共享信息,并可以在Web应用程序运行期间持久地保持数据。

由于Application对象是应用程序级别的状态保持方式,所以能够保存超越会话级别的状态信息,如在线人数等。

Application["Application名称"]=值;
变量=Application["Application名称"];
Application对象的常用属性:

All:返回全部的Application对象变量到一个对象数组。

AllKeys:返回全部的Application对象变量到一个字符串数组。

Count:取得Application对象变量的数量。

Item:允许使用索引或Application变量名称传回内容值。

Application对象的常用方法:

Add:新增一个Application对象变量。

Clear:清除全部的Application对象变量。

Get:使用索引或变量名称传回变量值。

Set:使用变量名称更新一个Application对象变量的内容。

Lock:锁定全部的Application变量。

UnLock:解除锁定的Application变量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: