ASP.Net 4.0 --- 基本对象(二)

ASP.Net 基本对象

      Asp.Net是一个庞大的软件体系,它提供了大量的对象类库,这些类库包含了许多封装好的内置对象,开发人员可以直接使用这些对象的方法和属性,只需较少的代码量就可以完成很多的功能。

对象
Page类、Request类、Response类、Server对象主要用来链连接服务器和客户端浏览器之间的联系。
Cookie对象、Session对象、Application对象主要用于网站状态管理。

Page类

      在ASP.NET Framework中,Page类为ASP.NET应用程序从.aspx文件构建的所有对象提供基本行为。该类在命名空间 System.Web.UI命名空间中定义,从TemplateControl中派生出来,实现了IHttpHandler接口。
Page类通常与扩展名为.aspx的文件相关联,这些文件在运行时被编译为Page对象,并被缓存在服务器内存中。

页面的工作过程:

基本对象
说明:
①客户端浏览器向Web应用程序进行一个页面的请求。
②服务器端Web应用程序接收到这个请求,先查看这个页面是否被编译过,如果没有被编译过,就编译这个Web页面,然后对这个页面进行实例化产生一个Page对象。
③Page对象根据客户请求,把信息返回给IIS,然后信息由IIS返回给客户端浏览器。
④在这个过程中,每个页面都被编译成一个类,当有请求的时候就对这个类进行实例化。
⑤Page类是从System.Web.UI.TemplateControl类继承而来,而TemplateControl类继承自System.Web.UI.Control,它也是一种特殊的Control

属性
Page 属性描述
Application为当前Web请求获取HttpApplicationState对象。
IsPostBack指示该页是否正为响应客户端回发而加载,或者它是否正被首次加载和访问
IsValid指示页验证是否成功
Request获取请求的页的HttpRequest对象
Reponse获取与该Page对象关联的HttpResponse对象
Server获取Server对象,它是HttpServerUtility类的实例
Session获取ASP.Net提供的当前Session对象
Validators获取请求的页上包含的全部验证控件的集合
ViewState获取状态信息的字典,这些信息使 用户可以在同一页的多个请求间保存和还原服务器控件的视图状态
方法
Page 方法描述
MapPath(virtualPath)将virtualPath指定的虚拟路径转换成实际路径
ResolveUrl(relativeUrl)将相对地址relativeUrl装换为绝对地址
Validate()执行网页上的所有验证控件
DataBind()将数据源连接到网页上的服务器控件
Dispose强制服务器控件在内存释放之前执行最终的清理操作
FindControl(id)在页面上搜索标识名称为id的控件
HasControls()判断page对象是否包含控件
事件
Page 事件描述
PreInit在页初始化开始前发生,是网页执行时第一个被触发的事件
PreLoad在信息被写入到客户端前会触发此事件
Load当网页被加载时会触发此事件
Init在网页初始化开始时发生
PreRender在信息被写入到客户端前会触发此事件
Unload网页完成处理并且信息被写入到客户端后会触发此事件
InitComplete在页面初始化完成时发生
LoadComplete在页面生命周期的加载结束时发生

Request类

      Request 对象是System.Web.HttpRequest类的实例。当用户在客户端使用Web浏览器向Web应用程序发出请求时,就会将客户端的信息发送到Web服务器。Web服务器就接收到一个HTTP请求,它包含了所有查询字符串参数或表单参数、Cookie数据以及浏览器的信息。在ASP.NET中运行时把这些客户端的请求信息封装成Request对象。

常用方法

①BinaryRead:执行对当前输入流进行指定字节数的二进制读取。
②MapImageCoordinates:将传入图像字段窗体参数影射为适当的x/y坐标值。
③MapPath:为当前请求将请求的URL中的虚拟路径映射到服务器上的物理路径。
④SaveAs:将HTTP请求保存到磁盘。
⑤ValidateInput:验证由客户端浏览器提交的数据,如果存在具有潜在危险的数据,则引发一个异常。

常用属性
Request 属性描述
AcceptTypes获取客户端支持的MIME接受类型的字符串数组
ApplicationPath获取服务器上ASP.Net应用程序的虚拟应用程序根路径
Browser获取有关正在请求的客户端的浏览器的功能信息
Cookies获取客户端发送的cookie的集合
CurrenExceptionFilePath获取或设置输出流的HTTP字符集
FilePath获取当前请求的虚拟路径
Files获取客户端上传的文件(多不见MIME格式)集合
Form获取窗体变量集合
Headers获取HTTP头集合
InputStrem获取传入的HTTP实体主体的内容
Item获取Cookies、Form、QueryString、ServerVariables集合中制定的对象。在C#中为HttpRequest类的索引器
Path获取当前请求的虚拟路径
PathInfo获取具有URL扩展名的资源的附加路径信息
PhysicalPath获取与请求的URL相对应的物理文件系统路径
QueryString获取HTTP查询字符串变量集合
RawUrl获取当前请求的原始URL
ServerVariables获取Web服务器变量的集合
Url获取有关当前请求的URL的信息

Response类

      Response对象是System.Web.HttpResponse类的实例,它封装了Web服务器对客户端请求的响应,用来操作HTTP相应的信息,用于将结果返回给请求者。虽然ASP.NET中控件的输出不需要我们去写HTML代码,但是在很多的时候我们希望能自己手动控制输出流,比如文件的下载、重定向等。

方法
Response 方法描述
BinaryWrite将一个二进制字符串写入HTTP输出流
Clear清除缓冲区流中的所有内容输出
Close关闭到客户端的套接字连接。
End将当前所有缓冲的输出发送到客户端,停止该页的执行,并引发 Application_EndRequest 事件
Flush向客户端发送当前所有缓冲的输出
Redirect将客户端重定向到新的 URL
Write将信息写入 HTTP 输出内容流
WriteFile将指定的文件直接写入HTTP内容输出流
属性
Response 属性描述
Buffer获取或设置一个值,该值只是是否缓冲输出,并在完成处理整个响应之后将其发送
BufferOutput获取或设置一个值,该值指示是否缓冲输出,并在完成处理整个页之后将其发送
Cache获取Web页的缓存策略(过期时间、保密性、变化子句)
CacheControl将Cache-Control HTTP头设置为Public或Private
Charset获取或设置输出流的HTTP字符集
ContentEncoding获取或设置输出流的HTTP字符集
ContentType获取或设置输出流的HTTP MIME类型
Cookies获取响应Cookie集合
Expires获取或设置在浏览器上缓存的页过期之前的分钟数。如果用户在页过期之前返回同一页,则显示缓存的版本
ExpiresAbsolute获取或设置将缓存信息从缓存中移除时的绝对日期和时间
Filter获取或设置一个包装筛选器对象,该对象用于在传输之前修改HTTP实体主体
IsClientConnected获取一个值,通过该值指示客户端是否仍连接在服务器上
Output启用到输出HTTP响应流的文本输出
OutputStream启动到输出HTTP内容主体的二进制输出
RedirectLocation获取或设置HTTP “位置” 标头值
Status设置返回到客户端的Status栏

Server对象

      Server对象是System.Web.HttpServerUtility类的实例,它包含了一些与服务器相关的信息。使用它可以获得有关最新的错误信息、对HTML文本进行编码和解码、访问和读写服务器端的文件等功能。

常用方法
Server 方法说明
ClearError清除前一个异常
CreateObject创建由对象类型标识的COM对象的一个服务器实例
Execute在当前请求的上下文中执行指定的虚拟路径的处理程序
GetLastError返回一个异常
HtmlDecode对HTML编码的字符串进行解码,并讲解输出发送到System.IO.TextWriter输出流
HtmlEncode对字符串进行HTML编码,并讲解输出发送到System.IO.TextWriter输出流
MapPath返回与Web服务器上的指定虚拟路径相对应的物理文件路径
Transfer终止当前页的执行,并未当前请求的开始执行新页
UrlDecode对字符串进行解码,该字符串为了进行HTTP传输而进行编码并在URL中发送到服务器
UrlEncode编码字符串,以便通过URL从服务器到客户端进行可靠的HTTP传输
UrlPathEncode对URL字符串的路径部分进行URL编辑,并返回已编码的字符串
常用属性
Server 属性说明
MachineName获取服务器的计算机名称
ScriptTimeout获取或设置请求超时值(以秒计)

状态管理

      ASP.NET程序和桌面程序一个显著的区别是:对于ASP.NET程序,无法保存程序运行的状态。由于这个原因,状态管理对于Web应用程序来说是非常重要的。
      ASP.NET提供了多种状态管理的机制,包括Session对象、Application对象、Cookie对象和ViewState对象。

Session对象

      ASP.NET采用一个具有120位的标识符来跟踪每一个Session。ASP.NET中利用专有算法来生成这个标识符的值,从而保证了(统计上的)这个值是独一无二的,这个特殊的标识符就被称为SessionID
      Session对象实际上操作System.Web命名空间中的HttpSessionState类 。可以为每个用户的会话存储信息。Session对象中的信息只能被用户自己使用,而不能被网站的其他用户访问,因此可以在不同的页面间共享数据,但是不能在用户间共享数据。
      利用Session进行状态管理是一个ASP.NET的显著特点。它允许程序员把任何类型的数据存储在服务器上。

SessionID是传播于网络服务器和客户端之间的唯一的一个信息。当客户端出示它的SessionID,ASP.NET找到相应的Session,从状态服务器里获得相应的序列化数据信息,从而激活该Session,并把它放到一个可以被程序所访问的集合里。为系统能够正常工作,客户端必须为每个请求保存相应的SessionID,获取某个请求的SessionID的方式有两种:
①使用Cookies。在这种情况下,当Session集合被使用时,SessionID被ASP.NET自动转化一个特定的Cookie(被命名为ASP.NET_SessionID)。
②使用改装的URL。在这种情况下,SessionID被转化一个特定的改装的URL。ASP.NET的这个新特性可以让程序员在客户端禁用Cookies时创建Session。

ASP.NET对于Session内容的存储也提供了多种的模式:
①InProc(默认):Session存储在IIS进程中(Web服务器内存)。InProc拥有最好的性能,但牺牲了健壮性和伸缩性。
②StateServe:Session存储在独立的Windows服务进程asp.net_state.exe中(可以不是Web服务器)。
③SqlServer:Session存储在SqlServer数据库的表中,可以用aspnet_regsql.exe配置它(SqlServer服务器)
这里写图片描述

常用方法
Session 方法说明
Abandon取消当前会话
Add想当前会话状态集合中添加一个新项
Clear清空当前会话状态集合中所有键和值
CopyTo把当前会话状态值集合复制到一维数组中
Remove删除会话状态集合中的项
RemoveAll删除所有会话状态值
RemoveAt删除指定索引处的项
属性
Session 属性说明
Count获取会话状态下Session对象的个数
TimeOutSessionSession对象的生存周期
SessionID用于标识会话的唯一编号
事件
Session 事件说明
Session_OnStart在创建一个Session时被触发
Session_OnEnd在用户Session结束时被调用
备注:可以在Global.asax文件中为这两个事件增加处理代码

Cookie对象

      Cookie对象是System.Web命名空间中HttpCookie类的对象。Cookie对象为Web应用程序保存用户相关信息提供了一种有效的方法。当用户访问某个的站点时,该站点可以利用Cookie保存用户首选项或其他信息,这样当用户下次再访问该站点时,应用程序就可以检索以前保存的信息。
      当用户第一次访问某个站点时,Web应用程序发送给该用户一个页面和一个包含日期和时间的Cookie。用户的浏览器在获得页面的同时还得到了这个Cookie,并且将它保存在用户硬盘上的某个文件夹中。以后如果该用户再次访问这个站点上的页面,浏览器就会在本地硬盘上查找与该网站相关联的Cookie。如果Cookie存在,浏览器就将它与页面请求一起发送到网站,Web应用程序就能确定该用户上一次访问站点的日期和时间。

      Cookie中保存的信息片断以“键/值”对的形式储存,一个“键/值”对仅仅是一条命名的数据。一个网站只能取得它放在用户的电脑中的信息,它无法从其它的Cookies文件中取得信息,也无法得到用户的电脑上的其它任何东西。
使用Cookies的优点可以归纳如下几点:
1可配置到期规则。Cookies可以在浏览器会话结束时到期,或者可以在客户端计算机上无限期存在。
2不需要任何服务器资源。Cookies存储在客户端并在发送后由服务器读取。
3简单性。Cookies是一种基于文本的轻量结构,包含简单的键值对。
4数据持久性。Cookies通常是客户端上持续时间最长的数据保留形式。

属性
Cookie 属性说明
Domain获取或设置将此Cookies与其关联的域
Expires获取或设置此Cookie的过期日期和时间
ItemHttpCookie.Values此属性是为了与以前的ASP版本兼容而提供的。在C#中,该属性为HttpCookie类的索引器
Name获取或设置Cookies的名称
Path获取或设置输出流的HTTP字符集
Secure获取或设置一个值,该值指示是否通过SSL(即仅通过HTTPS)传输Cookie
Value获取或设置单个Cookies值
Values获取在单个Cookies对象中包含的键值对的集合
方法
Cookie 方法说明
Add添加一个Cookies变量
Clear清除Cookies集合中的变量
Get通过索引或变量名得到Cookies变量值
GetKey以索引值获取Cookies变量名称
Remove通过Cookies变量名称来删除Cookies变量

Application对象

     Application对象是System.Web命名空间中的HttpApplicationState类的实例。Application对象为经常使用的信息提供了一个有用的Web站点存储位置,Application中的信息可以被网站的所有页面访问,因此可以在不同的用户间共享数据。
      Application的原理是在服务器端建立一个状态变量,来存储所需的信息。要注意的是:首先,这个状态变量是建立在内存中的;其次是这个状态变量是可以被网站的所有页面访问的。

特点:

1数据可以在Application对象内部共享。
2一个Application对象包含事件,可以触发某些Applicatin对象脚本。
3个别Application对象可以用Internet Service Manager来设置而获得不同属性。
4单独的Application对象可以隔离出来在它们自己的内存中运行.
5可以停止一个Application对象(将其所有组件从内存中驱除)而不会影响到其他应用程序。
6一个网站可以有不止一个Application对象。典型情况下,可以针对个别任务的一些文件创建个别的Application对象。
7Application对象成员在服务器运行期间持久地保存数据。Application对象成员的生命周期止于关闭IIS或使用Clear方法清除。
8因为多个用户可以共享一个Application对象,所以必须要有Lock和Unlock方法,以确保多个用户无法同时改变某一属性。

属性
Application 属性描述
AllKeys获取HttpApplicationState集合中的访问键
Count获取HttpApplicationState集合中的对象数
方法
Application 方法说明
Add增加一个Application对象的变量
Clear清除全部Application对象的变量
Get使用索引或者变量名称获取变量值
GetKey使用索引获取变量名称
Lock锁定全部变量
Remove使用变量名删除一个Application对象的变量
RemoveAll删除Application对象的所有变量的内容
Set使用变量名更新Application对象变量的内容
Unlock解锁Application对象的变量

小结:

类、对象、属性、方法、事件 是学习一种语言需要掌握的基础,不要对它们死记硬背,只需要大致的理清楚它们之间的关系,都有些那些内容,在实际使用中知道查询的方向,用两次就会融入我们的知识网络。我在积累新知探索的路上努力着,荣幸与您分享我的故事~

评论 71
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

格林希尔

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

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

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

打赏作者

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

抵扣说明:

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

余额充值