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

本文介绍了ASP.NET中的系统对象,包括Page、Request、Response、Server等,并详细解释了Cookie、Session和Application三种状态保持方式的工作原理及使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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变量。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pan_junbiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值