smiles

导航

系统对象与状态管理

ASP.NET中常见的系统对象:

 

对象名

说明

Page对象

Page对象是指向页面自身的方式,在整个页面的执行期间内,都可以使用该对象

Request对象

此对象封装了由Web浏览器或其它客户端生成的HTTP请求的细节(参数、属性和数据),提供从浏览器读取信息或者读取客户端信息等功能,用于页面请求期

Response对象

此对象封装了返回到HTTP客户端的输出,提供向浏览器输出信息或者发送指令,用于页面的执行期

Server对象

该对象是JSP没有的,它提供了服务器端的一些属性和方法。比如,页面文件的绝对路径

Application对象

为所有用户提供共享信息,作用于整个应用程序运行期

Session对象

为某个用户提供共享信息,作用于用户会话期。常用于验证用户登录,购物车,保存私有信息

Cookie对象

保持于客户端的共享信息方式

 

 

 

Page对象

 

1.@Page指令  新建页面的 .aspx 文件有两种视图:设计视图和源视图。

 

<%@ Page   Language="C#"   AutoEventWireup="true" 

CodeFile="Default.aspx.cs"   Inherits="_Default" %>

@Page指令定义了ASP.NET页面用于编译和解析的属性,每个aspx页面只能有一个@Page指令。

 

Language指定页面代码和后置代码使用的语言,需要注意的是,这里只支持微软 .NET 框架中的语言。

 

AutoEventWireup设置页面是否自动调用网页事件,默认(不写时)为true

 

CodeFile指定代码后置文件名,后置代码,该后置代码与页面是局部关系。

 

Inherits页面类

 

 

2.页面输入输出

Request对象的常用属性如下:

 

QueryString 集合主要用于收集HTTP协议中的GET 请求发送的数据,如果一个请求事件中被请求的程序URL中出现“?”号后的数据,则表示此次请求方式为GET。最常见的是超链接。

ServerVariable(环境变量)集合中包含了服务器和客户端的系统信息。

      

Response对象的常用方法如下:

A.        Write( )方法可以输出指定的文本内容。

B.        End()方法可以使Web 服务器停止当前的程序并返回结果。

C.        Redirect()方法可以将页面重定向到另外一个页面。

D.    Response.Buffer=false;设置或获取当前页是否缓冲输出,值为bool,默认为true.

E.    Response.Flush();立即将缓冲输出去。

 

Request.ServerVariables[“HTTP_USER_AGENT”]可获取当前客户端浏览器的版本信息。

Request.ServerVariables[“HTTP_ACCEPT_LANGUAGE”]可获取当前客户端浏览器使用的语言。

 

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

 

Cookie对象

Cookie是个存储在浏览器目录中的文本文件,当浏览该Cookie对应的站点时,Cookie作为HTTP头部文件的一部分在浏览器和服务器之间互相传递,这些数据和它们的传递过程对于用户来说不是直接可见的。

 

写入Cookie

1.       临时cookie的写入 

HttpCookie cookie=new HttpCookie( Cookie的名称”,“值”)

Response.Cookies.Add( cookie );

 

2.       永久 Cookie 写入

//1 定义一个 HttpCookie

        HttpCookie cookie = new HttpCookie("cookie2", this.TextBox2.Text);

       

         //2. 指定Cookie的过期时间,就会变成永远Cookie

        cookie.Expires = DateTime.Now.AddYears (30);

       

         //3 保存

        Response.Cookies.Add(cookie);

 

Cookie是存储在客户端的,所以它的使用就收到客户端浏览器的限制,大多数浏览器对Cookie的大小限制为4KB,就是说在Cookie中存储大量数据是不现实的。用户还可以通过修改浏览器设置将Cookie禁用,那么此时Cookie就无法使用。

 

Cookie一般用于完成以下工作:在用户未登录的情况下,记录用户的信息,比如:用户的浏览记录、用户上次登录时间等内容,进而可分析用户多久访问一次网站、用户的关注内容等,为网站商务宣传等提供必要信息。

 

Session对象

Session是存储在服务器端的数据,针对每一个连接,系统自动分配一个ID来标识每一个不同的用户,该ID在客户端和服务器间传递,达到唯一标识某一个用户的目的。

 

Session[session名称”]=值;

变量=Session[session名称”];

 

Session对象的特点如下:

1.       session对象包含某一个用户状态信息,此信息仅面向该连接,不与其他用户共享。

2.       会话超时或者过期,服务器即刻清除Session 对象,释放所占资源。

3.       会话期通过SessionID 传递状态信息,不像 Cookie 那样将所有的内容传输,客户端仅对SessionID 可见,而对状态信息的内容不可见。

 

Session对象的常见属性和方法:

属性和方法

说明

SessionID属性

包含唯一的用户会话标识符,它可用于在整个会话过程中记录用户信息。

 

 

Timeout 属性

用户设置用户超时的时间,单位为分钟,在该段时间内,用户即使没有任何操作,用户状态也不会清除。注意,此处的设置是正对服务器清除Session的时间而已的,因为如果一段时间内没有操作,服务器是无法知道用户是否在线,所以以超时时间为限。而客户端有自己的处理机制,不同的浏览器也不尽相同,一般关闭窗口就会造成Session丢失。

IsNewSession

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

Clear方法

从会话状态集合中移除所有的键和值

Abandon

结束session ,取消当前会话

 

Application对象

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

 

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

 

 

SessionCookie Application的区别?

 

Session 能够保存相对少量的、简单的数据,这是面向单个用户、单个连接的信息,保存于服务器端(会占用服务器资源)。当Session超时或者被关闭时将情况保存数据。由于用户停止使用应用程序后它仍然会存在一段时间(一般是20分钟),因此Session对象保存数据的效率比较低,适应于保存少量数据。

 

Cookie保存少量的、简单的数据,一般不允许超过4KB(与浏览器有关),使用期限可以进行灵活设定,面向单个用户,保存于浏览器中(也就是客户端)。而由于信息存储在客户端,最好不要保存敏感的信息。

 

Application 能够保存任意大小的信息,在整个应用程序周期中有效,是面对所有应用程序用户的,保存于服务器端。当我们的网站访问量过大时,可能造成性能上的瓶颈。因此我们不推荐使用该对象来保存大的数据集合。

 

 

 

Server对象

 

Server对象的常用方法

方法

说明

HtmlEncode

此方法带有一个字符串参数,可将其编码,使其在浏览器中正确显示。比如希望在页面输出一个“<br>”,又不想在浏览器中显示成换行,则需要使用该方法。

HtmlDecode

此方法与HtmlEncode方法相反,对已编码内容解码

MapPath

此方法带有一个虚拟路径,可返回该路径在物理磁盘中的准确位置。此方法在Web开发中使用频率比较高,一般实现文件读写都需要该方法。Server.MapPath( string  path );返回物理路径

UrlEncode

Url地址进行编码,对于Url需要传输含有“#”、“&”等特殊字符的参数时,需要进行编码,否则后面的内容不会被识别

UrlDecode

此方法与UrlEncode方法相反,对URL地址进行解码

Execute

在当前页面执行参数指定的页面,执行完成后继续执行本页面

Transfer

参数指定的页面处理完成后,页面执行就结束,不像Execute那样还要返回控制权给先前的页面

 

 

浏览器版本:Request.ServerVariables[HTTP_USER_AGENT]

浏览器语言:Request.ServerVariables[HTTP_ACCEPT_LANGUAGE]

浏览器类型:Request.Browser.Browser;

浏览器版本:Request.Browser.Version ;

浏览器是否支持背景音乐:Request.Browser.BackgroundSounds;

浏览器是否支持框架:Request.Browser.Frames;

客户端IP地址: Request.UserHostAddress;

客户端主机名: Request.UserHostName;

客户端操作系统: Request.Browser.Platform;

服务器机器名称: Server.MachineName;

网站根路径: Server.MapPath("Default.aspx");

 

posted on 2009-03-12 19:28  心欣  阅读(374)  评论(0编辑  收藏  举报