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

命运对每个人都是一样的,不一样的是各自的努力和付出不同,付出的越多,努力的越多,得到的回报也越多,在你累的时候请看一下身边比你成功却还比你更努力的人,这样,你就会更有动力。

导读:本篇文章讲解 ASP.Net 4.0 — 基本对象(二),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

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对象的个数
TimeOutSession Session对象的生存周期
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对象的变量

小结:

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/144317.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!