ASPdocNET内置对象.ppt

上传人:小飞机 文档编号:6501770 上传时间:2023-11-07 格式:PPT 页数:76 大小:1.13MB
返回 下载 相关 举报
ASPdocNET内置对象.ppt_第1页
第1页 / 共76页
ASPdocNET内置对象.ppt_第2页
第2页 / 共76页
ASPdocNET内置对象.ppt_第3页
第3页 / 共76页
ASPdocNET内置对象.ppt_第4页
第4页 / 共76页
ASPdocNET内置对象.ppt_第5页
第5页 / 共76页
点击查看更多>>
资源描述

《ASPdocNET内置对象.ppt》由会员分享,可在线阅读,更多相关《ASPdocNET内置对象.ppt(76页珍藏版)》请在三一办公上搜索。

1、第4章 ASP.NET 内置对象,内容,ASP.NET应用程序生命周期 ASP.NET网页 Page类的内置对象 Web应用的配置与配置管理工具 Web应用的异常处理,3.2 Page类,Page对象指的是页面对象,是由类实现。页面的基类是Page类,它提供了许多属性,可以访问ASP.NET页面信息。3.2.1 Page类的属性内置对象:Response、Request、Application、Session、cookie、ServerEnableViewState:页面及服务器控件的视图状态。IsCrossPagePostBack:是否是跨页发送。IsPostBack:是否回发。IsVali

2、d:页面验证是否成功。,3.2.1 Page类的属性,Master:母版页。MasterPageFile:母版页的文件名。PreviousPage:跨页发送时,向当前页传输控件的页。StyleSheetTheme:应用于此页的样式表的名称。Theme:页主题。Title:页标题。ViewState:包含视图状态的一个字典。,1内置对象,2IsPostBack属性该属性表示该页是否为响应客户端回发而加载,或者该页是否被首次加载和访问。当IsPostBack为true,表示该请求是页面回发;当IsPostBack为false,表示该页是被首次加载和访问。如:,protected void Page

3、_Load(object sender,EventArgs e)if(!IsPostBack)Response.Write(第一次访问);elseResponse.Write(非第一次访问);,3EnableViewState属性该属性表示当前页请求结束时,该页是否保持其视图状态以及它包含的任何服务器控件的视图状态。4IsValid属性该属性表示页面验证是否成功。在实际应用中,往往会验证页面提交的数据是否符合预期设定的格式要求等,如果所有都符合则IsValid值为true,反之为false。,3.2.2 Page类的方法,1.设置焦点Page类的Focus或SetFocus方法,可将焦点设置给

4、指定的控件。2.查找指定的服务器控件Page类的FindControl方法,在页命名容器中搜索指定的服务器控件。TextBox t=(TextBox)Page.FindControl(test);t.Focus();,ASP.NET的Web窗体页是在服务器上运行的,要使页面中的按钮或其他内容得到处理,必须将这些信息提交到服务器。每次页面提交时,都会再次运行其服务器端代码,然后向用户呈现新的页面,基本处理过程如下:用户通过客户端浏览器请求页面,页面第一次运行。程序员可以通过在Page_load事件中编写代码对页面进行初步处理,例如初始化页面等。服务器将代码转换为能被客户端识别的HTML标记发送到

5、客户端,客户端浏览器对HTML进行解析并将其显示出来。,9,Web窗体页的往返机制,用户通过界面进行各种操作。例如单击某个按钮等。此时浏览器将页面再次发送到Web服务器,在ASP.NET中称该过程为“PostBack”,也叫“回发”。例如用户正在访问的页面是Default.aspx,当用户单击该页面上的某个按钮后,浏览器发送到服 务器的目标还是Default.aspx。“PostBack”相当于在Web服务器上再次加载该页面,并能在页面上获取用户操作的信息。如果用户单击的是超链接而不是按钮,服务器可能仅仅将其定位到另一个页面,而不会对包含超链接的页面做进一步处理。,10,服务器执行代码隐藏类中

6、的代码(简称为后台代码),处理指定的操作,然后将执行操作后的页面返回给客户端浏览器。从基本处理过程可以看出,由于页面处理发生在Web服务器上,因此页面可以执行的每个操作都需要一次“客户端服务器客户端”的往返行程。,11,3.2.4 页面生命周期,一个页面从创建到卸载,要经历初始化页面、加载页面、验证页面、处理回发事件、呈现页面、卸载页面等一系列阶段,称为页面生命周期。,Web窗体页的生存期,13,生命周期事件,3.2.5 ASP.NET网页的添加,1将新的ASP.NET网页添加到网站 2将现有ASP.NET网页添加到网站项目 3更改 ASP.NET网页的名称,3.3 Page类的内置对象,Re

7、sponse对象 Request对象Appliaction对象Session对象Cookie对象Server对象对象,3.3.1 Response对象,Response对象主要是将HTTP响应数据发送到客户端。该对象派生自HttpResponse类,是Page对象的成员,所以在程序中无须做任何的说明即可直接使用。Response对象主要功能是向浏览器输出信息常用的方法包括:Response.Write()、Response.End()和Response.WriteFile()等等。,Response对象的常用属性,Response对象的常用方法,Response对象应用示例,1利用Write方

8、法直接向客户端输出信息 例:Response.Write(Response对象);2将文件内容输出到客户端 例:Response.WriteFile(c:test1.txt);3实现网页重定向功能 例:Response.Redirect(Page1.htm);4结束网页的执行 Response.End方法是将当前所有缓冲的输出发送到客户端,停止该页的执行,并引发Application_EndRequest事件。,参见示例第4章GlobalDemo3-2.aspx,5使用缓冲区 Response对象提供ClearContent、Flush和ClearHeaders三种方法用于缓冲的处理。Clea

9、rContent方法将缓冲区的内容清除;Flush方法将缓冲区中所有的数据发送到客户端;ClearHeaders将缓冲区中所有的页面标头清除。,参见示例第4章4-1,3.3.2 Request对象,Request对象主要提供对当前页请求的访问,其中包括请求标题、Cookies、客户端证书、查询字符串等。该对象派生自HttpRequest类,是Page类的成员。它的主要功能是从客户端浏览器取得数据,包括浏览器种类、用户输入表单中的数据、Cookies中的数据和客户端认证等。常用的三种取得数据的方法是:Request.Form,Request.QueryString,Request,其第三种是前两

10、种的一个缩写,可以取代前两种情况。而前两种主要对应的Form提交时的两种不同的提交方法:分别是Post方法和Get方法。,Request对象的常用属性,Request对象的常用方法有以下两个:MapPath(virtualPath):将参数virtualPath指定的虚拟路径转化为实际路径;SaveAs(filename,includeHeaders):将HTTP请求保存到磁盘,filename是保存的文件路径,includeHeaders指定是否保存HTTP标头。,Request对象应用示例,1获取文件的路径信息 Request对象的Url、UserHostAddress、PhysicalA

11、pplicationPath、CurrentExecutionFilePath和PhysicalPath属性能够分别获取当前请求的URL、远程客户端的IP主机地址、当前正在执行的服务器应用程序的根目录的物理文件系统路径、当前请求的虚拟路径及获取与请求的URL相对应的物理文件系统路径。,参见示例第4章GlobalDemo3-4.aspx,2.利用QueryString集合传递参数例如:http:/Localhost/MyPage/ShowPage.aspx?Id=2 结果为Id=“2”,Name=“Zhangsan”,接收到的数据类 型为字符串型。,3利用Form集合接受表单数据 例如:Requ

12、est.Form“TxtName”,表示获取表单中名为TxtName控件的值。4利用Browser对象获取浏览器信息 Request对象的Browser属性能够返回一个HttpBrowserCapabilities类型的集合对象。该集合对象可以取得目前连接到Web服务器的浏览器的信息。例如可以利用这个对象的一个属性确认访问者所使用的操作系统。参见示例第4章4-3.aspx。,Request的编码方式,案例名称:从浏览器获取数据程序名称:4-06.aspx,解决中文问题,该配置文件为整个Web服务器提供 ASP.NET 配置设置,将文件中的语句:“”中的两个UTF-8全部修改为GB2312,还不

13、支持“GBK”编码,如下面的语句:“”,从浏览器获取数据,案例名称:从浏览器获取数据程序名称:4-07.html 姓名:兴趣:,案例名称:从浏览器获取数据程序名称:4-08.aspx姓名:爱好:,得到客户端的信息,案例名称:读取客户端的信息程序名称:4-09.aspx客户端浏览器:客户端IP地址:当前文件服务端物理路径:,3.3.3 Server对象,Server对象定义了一个与web服务器相关的类,提供对服务器上的方法和属性的访问,用于访问服务器上的资源。比如得到服务器上某文件的物理路径和设置某文件的执行期限,等等。有以下两个属性:MachineName:获取服务器的计算机名称,为只读属性。

14、ScriptTimeout:获取或设置程序执行的最长时间,即程序必须在该段时间内执行完毕,否则将自动终止,时间以秒为单位。,Server对象的常用方法,Server对象应用示例,1用Execute方法执行对另一页的请求用Execute(URL)执行另一个ASP.NET网页,执行完成后返回原来的网页继续执行。参见示例第4章GlobalDemoServer.aspx和TestPage.aspx。2用Tranfer方法实现网页重定向 Tranfer(URL):终止当前网页,执行新的网页URL,即实现重定向。与Execute不同的是它转向新网页后不再将控件权返回,而是交给了新网页,而且所有内置对象的值

15、都会保留到重新定向的网页。参见示例第4章 GlobalDemoServer.aspx和TestPage.aspx。,3将虚拟路径转化为实际路径 Server.MapPath(Web服务器上的虚拟路径)返回的是与Web服务器上的指定虚拟路径相对应的物理文件路径。参见示例第4章GlobalDemoServer.aspx和TestPage.aspx。,向浏览器输出HTML代码,案例名称:向浏览器输出HTML代码程序名称:4-15.aspx你好!);Response.Write(“”);Response.Write(hello world;(你好!);%,取物理路径,案例名称:取物理路径程序名称:4-

16、16.aspxServer.MapPath(.)传回当前文件所在的物理路径:Server.MapPath(/)传回网站的根路径:Server.MapPath(/abc.txt)传回网站根路径下abc.txt文件的位置 Server.MapPath(/abc)传回网站根路径下abc目录的位置 Server.MapPath(abc.txt)传回当前文件所在目录下abc.txt文件的位置,3.3.4 Application,Application对象是共有的对象。所有的用户都可以对某个特定的Application对象进行修改。Application对象用来存储所有用户间共享信息。利用Applicat

17、ion特性,可以创建聊天室和网站计数器等常用网页应用程序。,3.3.4 Application,利用Application存储信息读取Application中存储的信息ApplicationApplication变量名称|Application变量索引值使用Global.asax文件Global.asax文件中存放的是Session对象和Application对象的事件,因此可以在该文件中编写Session对象和Application对象的事件处理程序。,使用自定义属性,案例名称:用户自定义属性程序名称:4-10.aspx,聊天室应用,案例名称:单一文件聊天室程序名称:4-12.aspx+my

18、words;Response.Write(Applicationchat_content);Application.UnLock();%,网页计数器,案例名称:网页计数器程序名称:4-13.aspx您是本站点第位贵宾!,案例名称:图形网页计数器程序名称:4-14.aspxpublic string G(int counter)string myimage=;string S=counter.ToString();for(int i=0;i;return myimage;您是本站第 位贵宾!,3.3.5 Session,用户打开浏览器访问网站服务器时,就建立了一个会话状态Session对象。Se

19、ssion对象是针对用户的,利用Session可以存储的特定用户的信息,这些信息在各个页面间共享。,Session对象,使用 Session 对象存储特定的用户会话所需的信息。当用户在应用程序的页之间跳转时,存储在Session 对象中的变量不会清除;使用 Session的方法“Abandon()”显式地结束一个会话,利用属性“Timeout”设置Session的失效时间。,3.3.5 Session,利用Session存储信息读取Session中存储的信息使用Session对象属性及方法Session.Timeout=整数(分钟);Session.Abandon();Session.Remo

20、veAll();Session.Clear();,为每一位用户分配一个ID,案例名称:为每一位用户分配一个ID程序名称:4-17.aspx你的自动编号为:,自定义属性,案例名称:自定义属性程序名称:4-18.aspx在另外页面查看,读取Session自定义属性,案例名称:读取Session自定义属性程序名称:4-19.aspx,设置有效期和使Session失效,案例名称:设置Session的有效期程序名称:4-20.aspx在另外页面查看,3.3.6 Cookie,Cookie提供了Web应用程序中在客户端存储特定信息的机制。如,当用户访问网站时,可以利用Cookie保存用户的一些信息,当用户

21、再次访问该网站时,网站从客户端的计算机上保存的Cookie里获取上次保存的信息。没有设置有效期的Cookie,保存在客户端浏览器的内存中,浏览器关闭后,该Cookie即失效;若设置了有效期,则保存在客户端的硬盘上,一般在C:Documents and SettingsAdministratorCookies文件夹下,如图。,Cookie对象,Cookie对象也可以保存客户信息,与Session 对象相似,分别保存不同用户的信息。和Session的区别是:Session对象所有信息保存在服务器上,Cookie对象所有信息保存在客户端的浏览器上。,3.3.6 Cookie,设置Cookie读取Co

22、okie,将信息保存到浏览器,案例名称:向浏览器输出Cookie程序名称:4-23.aspx已经成功写入Cookies读取Cookies,读取保存的信息,案例名称:从浏览器读取Cookie程序名称:4-24.asp,3.4 Web应用的配置与配置管理工具,web.config配置文件 嵌套配置设置在web.config中存储自定义设置,3.4.1 web.config配置文件,配置信息分成两个大块,一个是处理程序的声明区域,一个是配置节设置区域。处理程序的声明区域位于配置节中,在该节中使用section来声明节处理程序。配置代码中的每个配置节都对应了一个节处理程序,很多配置节的节处理程序已经在

23、默认的machine.config配置文件中进行声明,因此在创建标准ASP.NET应用程序时,并不需要自己添加节处理程序,除非创建了自定义节处理程序。,配置节设置区域中包含了实际的配置信息,对于Web开发人员来说,通常只需要处理3个配置节设置。配置节允许开发人员添加多种自定义的信息块,比如应用程序的标题、程序作者等信息。配置节允许开发人员定义连接数据库的连接信息。块保存了用户将配置的每个ASP.NET设置,在一个web.config配置文件中,通常可以看到多个配置块,用户也可以根据需要创建自己的配置块。,3.4.2 嵌套配置设置,3.4.3 在web.config中存储自定义设置,在中,允许开

24、发人员保存自己的配置设置,这些配置信息可以被多个页面使用。在配置文件中保存自定义设置信息是非常有用的,它可以为变量设置初始值,可以快速切换不同类型的操作。在中,可以使用元素来添加一个健和一个值。参见示例第03章GlobalDemo3-10.aspx。,3.4.4 ASP.NET Web站点管理工具WAT,单击Visual Studio 2008主菜单中的“网站|ASP.NET配置”菜单项来打开WAT。在解决方案的工具栏中单击ASP.NET配置图标打开WAT。WAT是一个基于Web的配置管理工具,这个工具将以可视化的方式编辑位于网站根目录下的web.config文件。,3.5 Web应用的异常处

25、理,为什么要进行异常处理 try-catch异常处理块 页面级的Page_Error事件处理异常 页面级的ErrorPage属性处理异常 应用程序级异常处理 配置应用程序的异常处理,3.5.1 为什么要进行异常处理,对于一个Web应用程序来说,出错是在所难免的。当应用程序发布后,可能由于代码本身的缺陷、网络故障或其它问题,导致用户请求得不到正确的响应,出现一些对用户而言毫无意义的错误信息,甚至泄漏了一些重要信息,让恶意用户有了攻击系统的可能。,当错误发生时,必须做好两件事情:一是将错误信息记录日志,发邮件通知网站维护人员,方便技术人员对错误进行跟踪处理;二是以友好的方式提示最终用户页面发生了错

26、误,而不能将未处理的错误信息显示给用户。,ASP.NET提供了5种异常处理机制(优先级别从高到低):通过try-catch异常处理块处理异常。通过页面级的Page_Error事件处理异常。通过页面级的ErrorPage属性处理异常。通过应用程序级的Application_Error事件处理异常。通过配置应用程序配置项处理异常。,3.5.2 try-catch异常处理块,【例3-11】演示try-catch异常处理块的使用。,参见示例第03章ExceptionDemoTryCatchDemo.aspx,3.5.3 页面级的Page_Error事件处理异常,Page类有个异常处理事件(Page_E

27、rror),当页面引发了未处理的异常时触发该事件。因此,可在该事件中添加代码处理页面中发生的未处理异常。【例3-12】演示如何使用页面级的Page_Error事件处理异常。,参见示例第03章ExceptionDemoPageErrorEventDemo.aspx,3.5.4 页面级的ErrorPage属性处理异常,通过设置页面的ErrorPage属性,可以让页面发生错误的时候重定向至友好的错误描述页面。例如,this.ErrorPage=/Error.htm。注意,要让ErrorPage属性发挥作用,web.config文件中的配置项中的mode属性必须设为On。【例3-13】演示如何使用页面

28、级的ErrorPage属性处理异常。,参见示例第03章ExceptionDemoErrorPage.aspx,注意:如果Page_Error和ErrorPage都存在,当该页抛出异常时,页面执行顺序是怎样的呢?页面会先执行Page_Error事件处理方法,如果Page_Error()事件中调用Server.ClearError()方法清除异常信息,则不会跳转到ErrorPage属性指定页面;如果没有调用Server.ClearError(),异常信息会继续向上抛,页面会跳转到ErrorPage指定页面。,3.5.4 应用程序级异常处理,与Page_Error事件相类似,可以使用Global.a

29、sax文件中的Application_Error事件捕获发生在应用程序中的所有未处理的异常。由于在整个应用程序范围内发生异常,并且都没有使用前面的方法处理这些异常,则会触发Application_Error事件处理这些应用程序级别的错误。,参见示例第03章ExceptionDemoErrorPage.aspx和Global.asax,【例3-14】演示如何使用Application_Error事件捕获发生在 应 用程序中所有未处理的异常,并将捕获的异常信息写入 Windows事件日志。,3.5.5 配置应用程序的异常处理,如果既没有设置页面级异常处理,也没有设置应用程序级异常处理,那么还可以通

30、过在配置文件web.config中设置配置来处理整个应用程序中未处理的异常。具体方法是修改应用程序根目录下的web.config文件,在system.web下面对customErrors元素进行以下更改:上述代码中,mode用于设置错误页面的显示模式,有如下3个可选项。RemoteOnly:如果应用程序发生未处理的异常,则对远程用户显示一个通用的错误页面,对本地用户将显示详细的错误页面。Off:如果应用程序发生未处理的异常,无论请求是本地还是远程,对所有用户都显示详细的错误信息。On:如果应用程序发生未处理的异常,无论请求是本地还是远程,对所有用户都显示通用的错误信息。,如果Applicati

31、on_Error和同时存在,也存在执行顺序的问题。因为Application_Error事件优先级高于配置项,所以发生应用程序级错误时,优先执行Application_Error事件中的代码,如果Application_Error事件中调用了Server.ClearError()函数,则配置节中的defaultRedirect不起作用,因为异常已经被清除;如果Application_Error事件中没用调用Server.ClearError()函数,则会重新定位到defaultRedict指定的URL页面,为用户显示友好出错信息。,3.6 小结,ASP.NET应用程序生命周期;ASP.NET网页;Page类的内置对象;Web应用的配置与配置管理工具Web应用的异常处理机制。,本 章 结 束!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号