您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > 第二章页面类及基本对象
第二章页面类及基本对象刘骥宇ASP.NET2.0回顾C/S和B/S动态网页的工作原理:基于http,无状态B和S间的一次往返动态处理:服务器端和客户端。Web服务器:IIS创建和打开Web站点Web页代码模式:单文件页,代码后置刘骥宇ASP.NET2.0目标ASP.NET2.0内置对象概述Page类页面的生命周期@page标签Page_Init和Page_Load事件Page.IsPostBack属性Response对象Response.Write();Response.Redirect();Request对象表单FormRequest.FormRequest.QueryString();Request.ServerVariablesRequest.BrowserServer对象刘骥宇ASP.NET2.0ASP.NET2.0内置对象概述下表是ASP.NET中的常见系统对象。由于这些对象是在ASP.NET页面初始化请求时自动创建的,所以能在程序中任何地方直接调用,而无需对类进行实例化操作。系统对象ASP.NETPage对象指向页面自身的方式。作用域为页面执行期。Request对象读取客户端在Web请求期间发送的值Response对象封装了页面执行期返回到HTTP客户端的输出Application对象作用于整个程序运行期的状态对象Session对象会话期状态保持对象,用于跟踪单一用户的会话。Cookie对象客户端保持会话信息的一种方式Server对象提供对服务器上的方法和属性的访问刘骥宇ASP.NET2.0Page类及其生命周期一个页面就对应于一个page对象。.aspx与后台代码类(局部类)合并生成页面类。所有的页面类都继承自System.Web.UI.Page类。每次查看一个页面,page对象都会进行初始化,对信息处理,然后显示出来,最后关闭或释放这个对象。这就是页面的生命周期。在这过程中,会触发若干事件。注意:当页面显示后,系统会马上从服务器中释放页面资源。生命周期:(VS.80).aspx刘骥宇ASP.NET2.0页面跟踪asp.net的跟踪功能,不仅可以在程序运行的各个阶段,跟踪程序的状态和变量的值,另外,它还有asp.net本身所支持的各项管理功能。它有以下优点:1、既可以整个网站统一管理,也可以在单个页面启动。通过配置web.config,可以启用整个网站的跟踪,也可以在页面上采用。2、不影响页面的布局和呈现。3、全面反映cookies和session的状态,这是我第一次采用跟踪的一个原因。4、完整的反应各个页面事件的过程和执行的时间。刘骥宇ASP.NET2.0页面跟踪步骤:一、开启页面内的跟踪1、在@page中采用Trace=true2、在代码里添加“Trace.IsEnabled=true;”3、添加自己的跟踪信息:Trace.Warn(“abc”);//Warn显示的是红色的信息Trace.Write(“def”);//write显示的是普通颜色的信息二、开启全站的跟踪并显示在页面在web.config中添加system.webtraceenabled=truepageOutput=true//system.web刘骥宇ASP.NET2.0Page对象刘骥宇ASP.NET2.0Page对象刘骥宇ASP.NET2.0Page对象刘骥宇ASP.NET2.0Page_Init和Page_Load事件比较刘骥宇ASP.NET2.0页内数据传递ASP.NETWeb页面控件1控件1…用户页面操作Page.IsPostBack属性回传首次加载truefalse如何判断回发和首次加载?刘骥宇ASP.NET2.0IsPostBack属性通过页面的IsPostBack属性,可以检查.aspx页是否为传递回服务器的页面当加载页面并对控件的更改属性进行处理之前,用户可以在Page_Load事件中检查该页面是否为被回传的页面刘骥宇ASP.NET2.0Page对象的Init事件和Load事件都发生在页面加载的过程中,但在Page对象的生存周期中Init事件,只有在页面初始化时被触发一次,而Load事件在初次加载及每次回发中都会被触发。当用户单击页面中按钮时引起回发,使Load事件处理代码再次被执行如果希望初始化页面时的事件处理代码只在页面首次加载时被执行,则可将代码放在Init事件中,或使用Page对象的IsPostBack属性进行判断。Page_Init和Page_Load事件比较刘骥宇ASP.NET2.0工序流程在服务器执行1和2345aHTTP请求HTML页回发之后的值进行更改67HTML页5b用户进行回发刘骥宇ASP.NET2.0_VIEWSTATEKingK@usa.net******名称电子邮件密码提交_VIEWSTATE控件是隐藏控件,在表单提交到服务器时此控件将被添加到表单中,用来保存控件的状态。刘骥宇ASP.NET2.0ViewState例子int[]a=newint[6];protectedvoidPage_Load(objectsender,EventArgse){}protectedvoidButton1_Click(objectsender,EventArgse){stringstr=null;for(inti=0;i6;i++){a[i]=i;}ViewState[a]=a;}protectedvoidButton2_Click(objectsender,EventArgse){int[]a=(int[])ViewState[a];Label2.Text=a[2].ToString();}刘骥宇ASP.NET2.0Request和ResponseRequestResponse刘骥宇ASP.NET2.0页面输入输出控制Request对象获得页面输入URL传参Form表单提交Response对象在页面输出要显示的内容重定向刘骥宇ASP.NET2.05.1Response对象Response对象的属性和方法利用Response对象输出文本文件利用Response对象重新定向链接刘骥宇ASP.NET2.0Response对象的属性和方法Response对象是HttpResponse类的一个对象,与一个HTTP响应相对应,通过该对象的属性和方法可以控制如何将服务器端的数据发送到客户端浏览器。刘骥宇ASP.NET2.0Response对象的属性和方法属性:Buffer:表明页输出是否被缓冲。BufferOutput:是否缓冲输出并在完成处理整个页之后将其发送。Cache:获取Web页的缓存策略(过期时间、保密性、变化子句)。Charset:获取或设置输出流的HTTP字符集。ContentEncoding:获取或设置内容的编码格式。ContentType:获取或设置输出流的HTTPMIME类型。Expires:获取或设置在浏览器上缓存的页过期之前的分钟数。如果用户在页过期之前返回同一页,则显示缓存的版本。提供Expires是为了与以前的ASP版本兼容。ExpiresAbsolute:获取或设置将缓存信息从缓存中移除时的绝对日期和时间。提供ExpiresAbsolute是为了与以前的ASP版本兼容。Filter:获取或设置一个包装筛选器对象,该对象用于在传输之前过滤HTTP实体主体。IsClientConnected:指示客户端是否仍连接在服务器上。刘骥宇ASP.NET2.0Response对象的属性和方法Output:返回输出HTTP响应流的文本输出。OutputStream:返回输出Http内容主体的二进制输出流。Status:设置返回到客户端的状态栏。StatusCode:获取或设置返回给客户端的输出的HTTP状态代码,通过HTTP状态代码客户端可以知道服务器端的运行情况。StatusDescription:获取或设置返回给客户端的输出的HTTP状态字符串。SuppressContent:是否将HTTP内容发送到客户端。刘骥宇ASP.NET2.0Response对象的属性和方法方法:BinaryWrite:将一个二进制字符串写入HTTP输出流。Clear:清除缓冲区流中的所有内容输出。ClearContent:清除缓冲区流中的所有内容。ClearHeaders:清除缓冲区流中的所有头信息。Close:关闭到客户端的套接字连接。End:将当前所有缓冲的输出发送到客户端,停止该页的执行,并引发Application_EndRequest事件。Flush:向客户端发送当前所有缓冲的输出。Flush方法和End方法都可以将缓冲的内容发送到客户端显示,但是Flush与End的不同之处在于,Flush不停止页面的执行。刘骥宇ASP.NET2.0Response对象Response对象允许开发人员对当前页面的输出流进行操作Response.对象Redirect方法Write方法Response.Write(Hello,ACCP);直接在页面上输出内容重定向到另外一个页面Response.Redirect();刘骥宇ASP.NET2.0利用Response对象输出文本文件privatevoidPage_Load(objectsender,System.EventArgse){//在此处放置用户代码以初始化页面Response.ContentEncoding=System.Text.UnicodeEncoding.Default;Response.Write(h3利用Response对象输出文本文件/h3);Response.Write(hr);Response.Write(文件的内容为:brbr);StringFileName=Server.MapPath(Readme.txt);Response.WriteFile(FileName);}刘骥宇ASP.NET2.0利用Response对象重新定向链接(1)Response.Redirect(“1.aspx”);转到当前目录下的1.aspx页面(2)Response.Redirect(“~/1.aspx”);转到当前网站根目录下的1.aspx页面(3)Response.Redirect(“~/test/1.aspx”);转到当前网站test目录下的1.aspx页面刘骥宇ASP.NET2.0利用Response对象重新定向链接privatevoidButton1_Click(objectsender,System.EventArgse){if((TextBox1.Text!=)&&(TextBox1.Text.IndexOf(http://)=0)){//如果目标网址不为空,并且包含“http://”字符,则跳转Response.Redirect(TextBox1.Text);}}刘骥宇ASP.NET2.0Request对象Request对象的属性和方法表单Form利用Request对象获取客户端表单信息利用Request对象获取web服务器端信息利用Request对象获取客户端浏览器信息刘骥宇ASP.NET2.0Request对象Request对象实际上操作System.Web命名空间中的HttpRequest类。当客户发出请求执行ASP.Net程序时,客户端的请求信息会包装在Request对象中,这些请求信息包括请求报头(Header)、客户端的机器信息,客户端浏览器信息,请求方法(如POST、GET)、提交的窗体信息等。刘骥宇ASP.NET2.0Request对象的属性和方法属性AcceptTy
本文标题:第二章页面类及基本对象
链接地址:https://www.777doc.com/doc-2128441 .html