




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章
ASP.NET组件对象
知识点掌握ASP.NET各内置组件对象的常用属性和方法掌握Session、Application对象与其他常用对象的区别,以及它们的适用场合能灵活运用各种组件对象完成程序设计3.1Page类Page类作为各个页面的派生基类,提供了许多对象和方法来处理页面的请求。属性/对象功能描述Application为当前Web请求获取Application对象Cache获取与该页驻留的应用程序关联的Cache对象Controls获取ControlCollection对象,该对象表示UI层次结构中指定服务器控件的子控件ErrorPage获取或设置错误页,当发生未处理的页异常的事件时请求浏览器将被重定向到该页IsPostback返回网页加载情况。为True表示网页是由于客户端返回数据而重新被加载,为False表示网页被第一次加载IsValid获取一个值,该值指示页验证是否成功Request获取请求页的HttpRequest对象Response获取请求页的HttpResponse对象Server获取Server对象,它是HttpServerUtility类的实例Session获取ASP.NET提供的当前的Session对象Validators获取请求的页上包含的全部验证控件的集合Visible获取或设置指示是否呈现Page对象值3.1Page类IsPostBack属性IsPostBack属性用于判断是否是响应加载页面,当使用者第一次浏览这个网页时Page.IsPostBack会传回false,不是第一次浏览这个网页时就传回true;通常在页面初始化〔即Page.!IsPostBack〕绑定数据或者放入一些共用变量,此外还可以用于cookie与session使用时的判断,Datagrid的数据绑等,page_load事件中也可以使用这个属性来防止做一些重复的动作。〔例3-1〕3.2Request对象
Request对象实际上操作System.Web命名空间中的类HttpRequest。当客户发出请求执行ASP.NET程序时,CLR会将客户端的请求信息包装在Request对象中。这些请求信息包括请求报头〔Header〕、客户端的根本信息〔如浏览器类型、浏览器版本号、用户所用的语言以及编码方式等〕、请求方法〔如Post、GET〕、参数名、参数值等。所以Request对象也被称为请求对象。3.2Request对象属性描述ApplicationPath获取被请求页面的目录信息(虚拟应用程序根路径)Brower获取正在请求的客户端的浏览器功能的信息ClientCertifacate获取当前请求的客户端安全证书Cookies获取客户端Cookies集合Form获取窗体变量集合Headers返回有关HTTP报头集合IsAuthenticated获取一个值,该值指示是否验证了用户IsSecureConnection获取一个值,该值指示HTTP连接是否使用加密Item获取Cookies、Form、等集合中指定对象Params获取Querystring、Form项的组合集合Path获取当前请求的虚拟地址Querystring获取HTTP查询字符串变量集合ServerVariables获取Web服务器变量集合UserHostAddress获取远程客户端的IP主机地址URL获取浏览器提交的完整的URL地址3.2Request对象方法描述BinaryRead执行对当前输入流进行指定字节数的二进制读取GetType获取当前实例的TypeMapPath为当前请求将请求的URL中的虚拟路径映射到服务器上的实际路径Request对象的调用方法是:Request.Collection[“Varible”],其中,Collection包括Querystring、Form、Cookies、ServerVariables四种集合。3.2Request对象Querystring属性请求字符串Web浏览器向Web效劳器传送信息的一种方式,Querystring属性的信息来自于发出请求的URL地址中“?”后面的数据,这些数据称为“URL附加信息”。例如://localhost/Queststringtest/webform1.aspx?name=wang”,在该URL中,name=wang是浏览器向Web效劳器传送的信息,获取这个信息的语句是:Request.Querystring[“name”]。Querystring主要用于收集HTTP协议中的GET请求发送的数据,如果在一个请求事件中被请求的程序URL地址出现了“?”后的数据,那么表示此次请求方式为GET。GET方法是HTTP中默认请求方法.最常用的超文本链接便是通过GET方法发送请求。如:<ahref=“show.aspx?id=111”>那么表示显示ID为111的文章。当有多个信息时,信息间用“&”连接。3.2Request对象Form属性Form属性是表示表单变量的集合,通过Request对象的Form属性可以读取浏览器发送到效劳器的数据。GET方法是将传递的数据追加至URL中。URL地址长度是有限制的,因此使用GET方法所能传递的数据也有限。一般地,GFT方法能够传递256字节的数据。在多数情况下,使用GET方法传递的数据长度是远远不够的,这时就需要使用HTTP的另外—种请求方式POST,POST能传递的数据最大可到达2MB。POST请求必须由Form发出〔使用sock方法直接写入HTTP报头的方法除外〕。〔例3-2〕1.2ASP.NET工作原理
Brower、UserHostAddress等属性代码量这些属性可以获取客户端浏览器的资料,以及主机的IP地址等信息。〔例3-3〕3.3Response对象
Response对象处理来自效劳器端所创立的并发回给客户端的信息。它与Request对象实现了浏览器和效劳器的交互。Response对象实际上操作System.Web命名空间中的HTTPResponse对象的实例,HTTPResponse类封装来自ASP.NET操作的HTTP响应信息。属性描述Buffer获取或设置一个值,该值指出是否缓冲输出,并在完成整个响应时间后将其发送BufferOutput获取或设置一个值,该值指出是否缓冲输出,并在完成处理整个页之后将其发送Cookies获取响应cookies集合Cache获取Web页的缓存策略(过期时间、保密性、变化子句)Expires获取或设置在浏览器上缓存的页过期之前的分钟数。如果用户在页过期之前返回同一页,则显示缓存的版本ExpiresAbsolute设定了页面在浏览器Cache中失效的具体时间。Output启用到输出HTTP响应流的文本输出OutputStream启用到输出Http内容主体的二进制输出方法描述BinaryWrite将一个二进制字符串写入HTTP输出流Clear清除缓冲区流中的所有内容输出,但此方法只删除Response显示输出信息,不删除Response头信息Close关闭客户端的联机End停止当前程序的处理并返回结果,剩下的文件内容是没有处理的Flush向客户端发送当前所有缓冲的输出Redirect将客户端重定向到新的URLWrite将信息写入HTTP输出内容流WriteFile将指定的文件直接写入HTTP内容输出流3.3Response对象Buffer属性Response.Buffer=flag,Buffer属性表示是否对页面输出进行缓冲。如有缓冲,效劳器在当前处理的所有页面上的语句被处理之前不将Response送往客户端,除非有flush或end方法被调用。参数flag表示是否对页面输出进行缓冲,True为需要,False表示否,系统默认为True,而Response.Clear()常用于去除缓冲区中的所有内容。〔例〕3.3Response对象Wirte方法Write方法输出指定的文本内容,例如:Response.Write〔“欢送光临!”〕,该方法在前面的例子中已经用到很多,这里不再详细解释。但要注意,在ASP中Response.Write“欢送光临!”是被允许的,但在ASP.NET中必须有括号框住,否那么会出错。3.3Response对象Redirect方法
该方法可以将用户的页面重定向到一个新的页面,使用时只要传入一个字符串类型的地址即可,传入在网址后附加参数的地址字符串也可以。该在实现页面转移的过程中很有用。例如:”);当然在转向的新页面也可以为相对路径的表示。3.4HttpServerUtility对象
HttpServerUtility对象也被称为Server对象,它起着HTTP效劳接口的作用,并且公开HTTP效劳器的属性和方法。属性描述MachineName获取服务器的计算机名称ScriptTimeout获取和设置请求超时方法描述CreateObject创建COM对象的一个服务器实例Ececute执行对另一个页的请求HtmlDecode对已被编码以消除无效HTML字符的字符串进行解码HtmlEncode对要在浏览器中显示的字符串进行编码MapPath返回与Web服务器上的指定虚拟路径相对应的物理文件路径Transfer终止当前页的执行,并开始执行新页UrlDecode对字符串进行解码,该字符串为了进行HTTP传输而进行编码并在URL中发送到服务器UrlEncode编码字符串,以便URL从Web服务器到客户端进行可靠HTTP传输3.4HttpServerUtility对象HtmlDecode、HtmlEncode属性
如果需要在页面中显示如下信息: <script>window.alert(“ASPCN.COM,您今天访问了吗?”);</script>如果直接将代码写入文件,代码如下:Response.Write("<script>window.alert('ASPCN.COM,您今天访问了吗?')</script>")3.4HttpServerUtility对象HtmlDecode、HtmlEncode属性由于需要显示的代码是Javascript,它会在浏览器得到执行,井弹出图3-7的对话框,这并不是所需要的情景。目的是显示这段源代码,而不是执行它。这时就这需要用到HtmlEncode。代码如下:Response.Write(Server.HtmlEncode("<script>window.alert(\"aspcn,您今天访问了吗?\");</script>"));3.4HttpServerUtility对象MapPath方法该方法返回Web效劳器上的指定路径相对应的物理文件路径。方法的语法为:pulicstringMapPath(stringpath);其中,path为Web效劳器上的虚拟路径;返回值为与path相对应的物理文件路径;如果path为NULL,MapPath将返回包含当前应用程序目录的完成物理路径。例如:Response.Write(Server.MapPath(“WebForm1.aspx”));运行的结果就是返回WebForm1.aspx的实际路径,如:c:\\inetput\wwwroot\UrlEncodeTest\WebForm1.aspx3.4HttpServerUtility对象Execute方法和Transfer方法Transfer〔path〕方法用于终止当前程序执行,进入path所指程序;而Execute〔path〕方法指在当前程序中执行path所指程序,但path所指程序执行完后将继续执行当前程序中后面的代码。〔例3-4〕3.5HTTPApplication对象
Application对象的典型应用——计数器
如果要建立与用户交互的基于Web站点的应用程序,必须能够为每个用户提供独立的状态。这可能是记录每个用户的名字、也可能为每个用户存储对象引用或不同的记录集。HTTPApplicationState类在整个应用程序中共享信息,该类通过Appliacation对象进行访问。任何客户端首次在特定ASP.NET应用程序的虚拟目录命名空间中请求URL资源时,创立HTTPApplicationState类实例。也就是说一个Application对象对应一个IIS的虚拟目录以及其下的子目录。Application对象可以被全局用户访问,因此可以保存全局级别的变量等,只有当Web站点停止或操作系统重启等情况下才被释放。在程序的编写中Application的代码一般写在Global.asax中〔实例3-5〕3.5HTTPApplication对象计数器的锁定在进行记数的过程中,往往是多个用户同时访问页面,计数器会面临同时加1的操作,在ASP.NET中,使用了两个方法来解决这种操作带来的并发问题。Application.Lock()和Application.UnLock()方法。Lock是锁定当前Application对象以便当前用户单独操作〔主要是写的操作,读的操作并不会因为Application被锁定而不能读取〕;UnLock是在操作完毕后解除锁定,以便让其他用户拥有写的权利。3.6Session对象
Session对象跟Application对象都是对Web应用程序状态进行管理。它的功能是让效劳器记忆客户,与Application不同的是,Application是共享的,而Session是局部的,简单的说Session就是效劳器给客户端的一个编号,当网页用户关掉浏览器或超过设置的Session对象的有效时间时,Session对象变量就会消失。3.6Session对象
有个Session,效劳器就可以判断浏览者是哪一个用户,这在购物系统和投票系统等场合下记录用户名和权限很有用,Session在Session_Start和Session_End中触发,如果需要统计当前页面的在线人数就可以利用Session的这两个事件3.6Session对象Session意义与根本使用——页面间传值在使用Session时,如果用Session作为页面参数传递,需要注意它是在一个浏览器会话周期内有效。所谓一个浏览器会话周期是指从一个浏览器窗口翻开到关闭这个期间。因为重新翻开一个浏览器相当于又一次会话.(实例3-6)3.6Session对象改进的计数器实例Session提供Abandon()方法可以强制使Session失效,并同时执行Session_OnEnd事件。可以通过Session.Timeout属性显式设置Session失效的最大间隔时间,如果用户在间隔时间内不刷新或请求网页,那么该会话将终止。Timeout一般以分钟为单位,默认为20分钟,可以通过Session.Timeout=10来修改失效时间为10分钟。〔实例3-7〕3.6Session对象Session的配置默认情况下,Session是存储进程内的,通过Web.config可以改变Session的存储方式。以下是VisualStudio.NET生成的默认配置信息<sessionStatemode="InProc"stateConnectionString="tcpip=:42424"sqlConnectionString="datasource=;Trusted_Connection=yes"cookieless="false"timeout="20"/>3.7HttpCookies对象
常用属性Cookie它将一些用户信息储存在客户的机器中,以便于在每次请求时被效劳器在设定的时期内进行读取。至今,它也是在页面请求和站点访问之间提供状态的常用方法。但如果用户转移到另一个计算机,或删除cookie,或者浏览器拒绝接收发送给他们的Cookie,那么不能维持状态。3.7HttpCookies对象
常用属性HttpCookie类提供创立和操作各HTTPCookie的类型平安方法。HttpCookie类获取和设置各Cookie的属性,HttpCookieCollection类提供存储、检索和管理整个Web应用程序的所有Cookie方法。Response、Request对象包含Cookie属性,该属性是HttpCookieCollection类的实例。例如:HttpCookiecookie=newHttpCookie(“aspcn”)表示建立一个名为aspcn的HttpCookie实例。建立实例后,将给其赋值。属性描述Domain获取或设置将此Cookie与其关联的域Expires获取或设置此Cookie的过期日期和时间ItemHttpCookie.Values的快捷方式,在C#中,该属性为HttpCookie类的索引器Name获取或设置Cookie的名称Path获取或设置要与当前Cookie一起传输的虚拟路径Value获取或设置单个Cookie值Values获取在单个Cookie对象中包含的键值对的集合3.7HttpCookies对象设置Cookie值一个Cookie中可以存储一个或多个值,例如:通过设置Cookie的Value
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2019-2025年一级注册建筑师之建筑结构能力检测试卷B卷附答案
- 2025年3月隐蔽工程影像存档补充协议条款
- 自由探索的班级工作计划
- 2025商务合同谈判策略全解「」
- 2025写字间租赁合同
- 设计有趣的班级互动游戏计划
- 闲置钢管改造方案范本
- 如何让年度工作计划更具可持续性
- 课程与德育融合的创新实践计划
- 2025家庭护理服务合同范例
- 港口营运安全生产风险分级管控体系实施指南
- DB45-T 2228.1-2020公路养护预算编制办法及定额 第1部分:公路养护工程预算编制办法及定额-(高清可复制)
- 艾滋病感染HIV筛查检测报告表
- 六年级下册道德与法治第5课应对自然灾害课件
- 黑龙江省第三次国土调查实施方案
- 中考语文复习指导PPT资料30页课件
- 案例收球器盲板伤人事故
- 第3章-中子扩散理论2014
- 银行存款余额调节表正式版
- 2×100+2×200MW供热式火力发电厂
- 模具验收检查表(出口模具)
评论
0/150
提交评论