ASP.NET的常用内置对象

我们都知道ASP.NET是完全面向对象的编译环境,它提供了实现编译功能的一系列的类库,这些类即包括有界面的控件,也包括无界面的对象,这些对象使用户更容易收集通过浏览器发送的信息、响应浏览器以及存储用户信息。

ASP.NET常用的六大内置对象分别是:

1.Response

2.Request

3.Server

4.Application

5.Session

6.Cookie

 

一、Response对象

Response对象是HttpResponse类的一个实例。该类主要是封装来自ASP.NET操作的HTTP响应信息。Response对象用语输出数据到客户端,包括向浏览器输出数据、重定向浏览器到另一个URL或向浏览器输出Cookie文件。ASP.NET中引用对象方法的语法是“对象名.方法名”。“方法”就是嵌入到对象定义中的程序代码,它定义对象怎样去处理信息。使用嵌入的方法,对象便知道如何去执行任务,而不用提供额外的指令。

1.Response对象的属性

   BufferOutput

   说明:获取或设置一个值,该值指示是否缓冲输出,并在完成处理整个页之后将其发送

   属性值:如果缓冲了到客户端的输出,则为true;否则为false。默认为true

   Cache

   说明:获取Web页的缓存策略(过期时间、保密性、变化子句)

   属性值:包含有关当前响应的缓存策略信息的HttpCachePolicy对象

   Charset

   说明:获取或设置输出流的HTTP字符集

   属性值:输出流的HTTP字符集

   IsClientConnected

   说明:获取一个值,通过该值指示客户端是否仍连接在服务器上

   属性值:如果客户端当前仍在连接,则为true;否则为false

2.Response对象的方法

   Response对象可以输出信息到客户端,包括直接发送信息给浏览器、重定向浏览器到另一个URL或设置cookie的值。ASP.NET中引用对象方法的语法是“对象名.方法名”。“方法”就是嵌入到对象定义中的程序代码,它定义对象怎样去处理信息。使用嵌入的方法,对象便知道如何去执行任务,而不用提供额外的指令。

   Write

   说明:将指定的字符串或表达式的结果写到当前的HTTP输出

   End

   说明:停止页面的执行并得到相应结果

   Clear

   说明:用来在不将缓存中的内容输出的前提下,清空当前页的缓存,仅当使用了缓存输出时,才可以利用Clear方法

   Flush

   说明:将缓存中的内容立即显示出来。该方法有一点和Clear方法一样,它在脚本前面没有将Buffer属性设置为True时会出错。和End方法不同的是,该方法调用后,该页面可继续执行

   Redirect

   说明:使浏览器立即重定向到程序指定的URL

2.Response对象的方法

Write

   说明:将指定的字符串或表达式的结果写到当前的HTTP输出

   End

   说明:停止页面的执行并得到相应结果

   Clear

   说明:用来在不将缓存中的内容输出的前提下,清空当前页的缓存,仅当使用了缓存输出时,才可以利用Clear方法

   Flush

   说明:将缓存中的内容立即显示出来。该方法有一点和Clear方法一样,它在脚本前面没有将Buffer属性设置为True时会出错。和End方法不同的是,该方法调用后,该页面可继续执行

   Redirect

   说明:使浏览器立即重定向到程序指定的URL

作为一个刚刚入门的.NET学习者,最常用到的可能就是:

1.Response.Write 变量数据或字符串

   Response.Write (变量数据或字符串)

例如:Response.Write("<script language=javascript>alert('欢迎学习ASP.NET')</script>") 

Response.Write("<script>window.open('WebForm2.aspx')</script>") 

2.Response对象的Redirect方法将客户端浏览器重定向到另外的URL上,即跳转到另一个网页。

例如: Response.Redirect("http://www.163.net/")

3. Response.End() 终止当前页的运行

 

二、Request对象

Request对象主要是让服务器取得客户端浏览器的一些数据,包括从HTML表单用Post或者GET方法传递的参数、Cookie和用户认证。因为Request对象是Page对象的成员之一,所以在程序中不需要做任何的声明即可直接使用; 其类名为 HttpRequest 

1.Request对象的属性

   QueryString

   说明:获取 HTTP 查询字符串变量集合

   属性值:NameValueCollection对象

   Path

   说明:获取当前请求的虚拟路径

   属性值:当前请求的虚拟路径

   UserHostAddress

   说明:获取远程客户端的 IP 主机地址

   属性值:远程客户端的IP地址

   Browser

   说明:获取有关正在请求的客户端的浏览器功能的信息

   属性值:HttpBrowserCapabilities对象

2.Request对象的方法

   BinaryRead

   说明:执行对当前输入流进行指定字节数的二进制读取

   MapPath

   说明:为当前请求将请求的URL中的虚拟路径映射到服务器上的物理路径

   常用的有:

1.使用Request.Form属性获取数据

通过该属性,读取<Form></Form>之间的表单数据.注意:提交方式要设置为“Post”。

Get方法相比较,使用Post方法可以将大量数据发送到服务器端

2.利用Request.QueryString属性获取数据

Request对象的QuerySting属性可以获取 HTTP 查询字符串变量集合 通过该属性,我们可以读取地址信息  http://localhost/aaa.aspx?uid=tom&pwd=abc 其中标识为红色部分的数据.

注意:提交方式要设置为“Get

3.问题:Request.Form用于表单提交方式为Post的情况,而Request.QueryString用于表单提交方式为Get的情况,如果用错,则获取不到数据。

解决方法:利用Request(“元素名”)来简化操作。

4.Request.ServerVariables("环境变量名称")

类似的还有:UserHostAddress,Browser,Cookies,ContentType,IsAuthenticated

 

三、Application对象

   Application对象是HttpApplicationState类的一个实例。

HttpApplicationState类的单个实例,将在客户端第一次从某个特定的ASP.NET应用程序虚拟目录中请求任何URL资源时创建。对于Web服务器上的每个ASP.NET应用程序,都要创建一个单独的实例。然后通过内部Application对象公开对每个实例的引用。Application对象使给定应用程序的所有用户之间共享信息,并且在服务器运行期间持久地保存数据。因为多个用户可以共享一个Application对象,所以必须要有LockUnlock方法,以确保多个用户无法同时改变某一属性。Application对象成员的生命周期止于关闭IIS或使用Clear方法清除。

1.Application对象的属性

   AllKeys

   说明:获取HttpApplicationState集合中的访问键

   属性值:HttpApplicationState对象名的字符串数组

    Count

   说明:获取HttpApplicationState集合中的对象数

   属性值:集合中的Item对象数。默认为0

2.Application对象的方法

   Add

   说明:新增一个新的Application对象变量

   Clear

   说明:清除全部的Application对象变量

   Get

   说明:使用索引关键字或变数名称得到变量值

   GetKey

   说明:使用索引关键字來获取变量名称

   Lock

   说明:锁定全部的Application变量

   Remove/RemoveAll

   说明:使用变量名称删除一个Application对象/删除全部的Application对象变量

   Set

   说明:使用变量名更新一个Application对象变量的內容

   UnLock

   说明:解除锁定的Application变量

使用Application对象保存信息

Application(“键名”) =

Application(“键名”,值)

获取Application对象信息

变量名 = Application(“键名”)

或:变量名 = Application.Item(“键名”)

或:变量名 = Application.Get(“键名”)

更新Application对象的值

Application.Set(“键名”, )

删除一个键

Application.Remove(“键名”, )

删除所有键

Application.RemoveAll()

Application.Clear()

2.有可能存在多个用户同时存取同一个Application对象的情况。这样就有可能出现多个用户修改同一个Application命名对象,造成数据不一致的问题。 

HttpApplicationState 类提供两种方法 Lock Unlock,以解决对Application对象的访问同步问题,一次只允许一个线程访问应用程序状态变量。

关于锁定与解锁

锁定:Application.Lock()

访问:Application(“键名”) =

解锁:Application.Unlock()

注意:Lock方法和UnLock方法应该成对使用。 

可用于网站访问人数,聊天室等设备

3. 使用Application事件  

ASP.NET 应用程序中可以包含一个特殊的可选文件——Global.asax 文件,也称作 ASP.NET 应用程序文件,它包含用于响应 ASP.NETHTTP模块引发的应用程序级别事件的代码。 

Global.asax 文件提供了7个事件,其中5个应用于Application对象  

 

事件名称 说明 

Application_Start 在应用程序启动时激发 

Application_BeginRequest 在每个请求开始时激发 

Application_AuthenticateRequest 尝试对使用者进行身份验证时激发 

Application_Error 在发生错误时激发 

Application_End 在应用程序结束时激发 

 

 

四、Session对象

   Session对象是HttpSessionState的一个实例。该类为当前用户会话提供信息,还提供对可用于存储信息的会话范围的缓存的访问,以及控制如何管理会话的方法。

   Session的出现填补了HTTP协议的局限。HTTP协议工作过程是,用户发出请求,服务器端做出响应,这种用户端和服务器端之间的联系都是离散的,非连续的。在HTTP协议中没有什么能够允许服务器端来跟踪用户请求的。在服务器端完成响应用户的请求后,服务器端不能持续与该浏览器保持连接。从网站的观点上看,每一个新的请求都是单独存在的,因此,当用户在多个主页间转换时,就根本无法知道他的身份。

   使用Session对象存储特定用户会话所需的信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。

   当用户请求来自应用程序的Web页时,如果该用户还没有会话,则Web服务器将自动创建一个Session对象。当会话过期或被放弃后,服务器将中止该会话。

   当用户第一次请求给定的应用程序中的aspx文件时,ASP.NET将生成一个SessionIDSessionID是由一个复杂算法生成的号码,它唯一标识每个用户会话。在新会话开始时,服务器将Session ID作为一个cookie存储在用户的Web浏览器中。

   在将SessionID cookie存储于用户的浏览器之后,即使用户请求了另一个.aspx文件,或请求了运行在另一个应用程序中的.aspx文件,ASP.NET仍会重用该cookie跟踪会话。与此相似,如果用户故意放弃会话或让会话超时,然后再请求另一个.aspx文件,那么ASP.NET将以同一个cookie开始新的会话。只有当服务器管理员重新启动服务器,或用户重新启动Web浏览器时,此时存储在内存中的SessionID设置才被清除,用户将会获得新的SessionID   cookie

   通过重用SessionID cookieWeb应用程序将发送给用户浏览器的cookie数量降为最低。另外,如果用户决定该Web应用程序不需要会话管理,就可以不让Web应用程序跟踪会话和向用户发送SessionID

   Session对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,另外其还经常被用在鉴别客户身份的程序中。要注意的是,会话状态仅在支持cookie的浏览器中保留,如果客户关闭了cookies选项,Session也就不能发挥作用了。

   ASP.NETSessions非常好用,能够利用Session对象来对Session全面控制,如果需要在一个用户的Session中存储信息,只需要简单地直接调用Session对象就可以了,下面就是个例子:

Session["Myname"]=Response.form("Username");

Session["Mycompany"]=Responseform("Usercompany");

   应注意的是,Session对象是与特定用户相联系的。针对某一个用户赋值的Session对象是和其他用户的Session对象完全独立的,不会相互影响。换句话说,这里面针对每一个用户保存的信息是每一个用户自己独享的,不会产生共享情况。

   很明显,对于不同的用户,Session对象的Myname变量和Mycompany变量各自是不同的,当每个人在网站的不同主页间浏览时,这种针对个人的变量会一直保留,这样作为身份认证是十分有效的。

1.Session对象的属性

   Count

   说明:获取会话状态集合中Session对象的个数

   属性值:Session对象的个数

   TimeOut

   说明:获取或设置在会话状态提供程序终止会话之前各请求之间所允许的超时期限

   属性值:超时期限(以分钟为单位)

   SessionID

   说明:获取用于标识会话的唯一会话ID

   属性值:会话ID

2.Session对象的方法

   Add

   说明:新增一个Session对象

   Clear

   说明:清除会话状态中的所有值

   Remove

   说明:删除会话状态集合中的项

   RemoveAll

   说明:清除所有会话状态值

Session即会话,是指一个用户在一段时间内对某一个站点的一次访问。 

Session对象在.NET中对应HttpSessionState类,表示“会话状态”,可以保存与当前用户会话相关的信息。

Session对象用于存储从一个用户开始访问某个特定的aspx的页面起,到用户离开为止,特定的用户会话所需要的信息。用户在应用程序的页面切换时,Session对象的变量不会被清除。

对于一个Web应用程序而言,所有用户访问到的Application对象的内容是完全一样的;而不同用户会话访问到的Session对象的内容则各不相同。   Session可以保存变量,该变量只能供一个用户使用,也就是说,每一个网页浏览者都有自己的Session对象变量,即Session对象具有唯一性。

1)将新的项添加到会话状态中

语法格式为:

Session ("键名") =

或者

Session.Add( "键名" , )

2)按名称获取会话状态中的值

语法格式为:

变量 = Session ("键名") 

或者

变量 = Session.Item("键名")

3)删除会话状态集合中的项

语法格式为:

Session.Remove("键名")

4)清除会话状态中的所有值

语法格式为:

Session.RemoveAll()

或者

Session.Clear()

5)取消当前会话

语法格式为:

Session.Abandon()

6)设置会话状态的超时期限,以分钟为单位。

语法格式为:

Session.TimeOut = 数值

Global.asax 文件中有2个事件应用于Session对象 

事件名称 说明

Session_Start 在会话启动时激发

Session_End 在会话结束时激发

作为刚入门的朋友来说,可能会在做注册与登录的时候用到这一内置对象,用于绑定用户名和密码。

 

三、Server对象

   Server对象是HttpServerUtility的一个实例。该对象提供对服务器上的方法和属性的访问。

1.Server对象的属性

   MachineName

   说明:获取服务器的计算机名称

   属性值:本地计算机的名称

   ScriptTimeout

   说明:获取和设置请求超时

   属性值:请求的超时设置(以秒计)

2.Server对象的方法

   CreateObject

   说明:创建COM 对象的一个服务器实例

   CreateObjectFromClsid

   说明:创建COM 对象的服务器实例,该对象由对象的类标识符(CLSID)标识

   Execute

   说明:使用另一页执行当前请求

   Transfer

   说明:终止当前页的执行,并为当前请求开始执行新页

   HtmlDecode

   说明:对已被编码以消除无效HTML字符的字符串进行解码

   HtmlEncode

   说明:对要在浏览器中显示的字符串进行编码

   MapPath

   说明:返回与Web服务器上的指定虚拟路径相对应的物理文件路径

   UrlDecode

   说明:对字符串进行解码,该字符串为了进行HTTP传输而进行编码并在URL中发送到服务器

   UrlEncode

   说明:编码字符串,以便通过URLWeb服务器到客户端进行可靠的HTTP传输

Server对象提供对服务器上的方法和属性进行的访问 .其类名称是HttpServerUtility.

Server对象的主要属性有:

MachineName:获取服务器的计算机名称。 

ScriptTimeout:获取和设置请求超时(以秒计)。

方法名称 说明

CreateObject 创建 COM 对象的一个服务器实例。

Execute 执行当前服务器上的另一个aspx页,执行完该页后再返回本页继续执行

HtmlEncode 对要在浏览器中显示的字符串进行HTML编码并返回已编码的字符串。

HtmlDecode HTML编码的字符串进行解码,并返回已解码的字符串。

MapPath 返回与 Web 服务器上的指定虚拟路径相对应的物理文件路径。

Transfer 终止当前页的执行,并为当前请求开始执行新页。

UrlEncode 将代表URL的字符串进行编码,以便通过 URL Web 服务器到客户端进行可靠的 HTTP 传输。

UrlDecode 对已被编码的URL字符串进行解码,并返回已解码的字符串。

UrlPathEncode URL 字符串的路径部分进行 URL 编码,并返回已编码的字符串。

编码:

Server.HtmlEncode(HTML代码”)

解码:

Server.HtmlDecode(“已编码的HTML)

1.Server对象的MapPath方法将虚拟路径或相对于当前页的相对路径转化为Web 服务器上的物理文件路径。 

语法:Server.MapPath(“虚拟路径”)

String FilePath

FilePath = Server.MapPath(“/”)

Response.Write(FilePath)

 

 

六、Cookie对象

   Cookie 是一小段文本信息,伴随着用户请求和页面在Web服务器和浏览器之间传递。用户每次访问站点时,Web应用程序都可以读取Cookie包含的信息。

   CookieSessionApplication类似,也是用来保存相关信息,但Cookie和其他对象的最大不同是,Cookie将信息保存在客户端,而SessionApplication是保存在服务器端。也就是说,无论何时用户连接到服务器,Web站点都可以访问cookie信息。这样,既方便用户的使用,也方便了网站对用户的管理。

   ASP.NET包含两个内部Cookie集合。通过HttpRequestCookies集合访问的集合包含通过Cookie标头从客户端传送到服务器的Cookie。通过HttpResponseCookies集合访问的集合包含一些新Cookie,这些Cookie在服务器上创建并以Set-Cookie标头的形式传输到客户端。

1.Cookie对象的属性

   Name

   说明:获取或设置Cookie的名称

   属性值:Cookie的名称

   Value

   说明:获取或设置CookieValue

   属性值:CookieValue

   Expires

   说明:获取或设置Cookie的过期日期和时间

   属性值:作为DateTime实例的Cookie过期日期和时间

   Version

   说明:获取或设置此Cookie符合的HTTP状态维护版本

   属性值:此Cookie符合的HTTP状态维护版本

2.Cookie对象的方法

   Add

   说明:新增一个Cookie变量

   Clear

   说明:清除Cookie集合内的变量

   Get

   说明:通过变量名或索引得到Cookie的变量值

   GetKey

   说明:以索引值来获取Cookie的变量名称

   Remove

   说明:通过Cookie变量名来删除Cookie变量

Cookie就是Web服务器保存在用户硬盘上的一段文本。Cookie允许一个Web站点在用户的电脑上保存信息并且随后再取回它。信息的片断以‘键/值’对的形式存储。 

Cookie是保存在客户机硬盘上的一个文本文件,可以存储有关特定客户端、会话或应用程序的信息,在.NET中对应HttpCookie类。 

有两种类型的Cookie:会话CookieSession Cookie)和持久性Cookie。前者是临时性的,一旦会话状态结束它将不复存在;后者则具有确定的过期日期,在过期之前Cookie在用户的计算机上以文本文件的形式存储。 

在服务器上创建并向客户端输出Cookie可以利用Response对象实现。 

Response对象支持一个名为Cookies的集合,可以将Cookie对象添加到该集合中,从而向客户端输出Cookie 

通过Request对象的Cookies集合来访问Cookie

转载于:https://www.cnblogs.com/ryc1345179/archive/2011/08/29/2157992.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值