C#Web编程5.1ASP.NET内部对象概述5.2Page对象5.3Request对象5.4Response对象5.5HttpCookie对象5.6Session对象5.7Application对象5.8Server对象5.9Mail对象5.10viewstate对象利用Request对象的QueryString获取方法获取标识在URL后面的信息利用Request对象的ServerVariables获取方法获取客户端IP地址等环境变量利用Response对象的Write方法输出信息及它的省略用法掌握Response对象的Redirect方法利用Response对象的Cookies方法设置Cookies的值,利用Request对象的Cookies获取方法获取Cookies的值。利用Session对象保存信息利用Application对象保存信息掌握Server对象的的HTMLencode、Mappath和Execute方法掌握发送E-mail的一般方法对象其实就是可以重用的代码片断,类是对象的定义,对象是类的实例。对象一般有属性、方法、事件。ASP.NET能够利用成千上万的内置对象。本质上前面讲的内置函数、Web控件也都可以看作内置对象,都是类实现的。本章就讲解其中常用的几个内部对象,包括Page、Request、Response、HttpCookie、Session、Application、Server、Mail内部函数.NET类库服务器控件内部对象由System.Web.UI.Page类实现,命名空间System.Web.UI属性:◦IsPostBack◦IsValid方法:◦DataBind(数据绑定)事件:◦Load(页面装载)5-1.aspx在第3章讲解了如何获取客户填写在表单中的信息,本节利用Request对象还可以获取更多的信息。由System.Web.HttpRequest类实现命名空间:System.Web数据集合(获取方法):◦QueryString、Form、Cookies、ServerVariables、ClientCertificate、Browser方法:◦TotalBytes事件:◦BinaryReadQueryString可以获取标识在URL后面的所有返回的变量及其值。例如,当客户端送出如下的请求时,QueryString将会得到name与age两个变量的值。◦http://……/temp.aspx?name=白芸&age=22后面可以有多个变量参数,参数之间用&连接。4-2.aspx4-3.aspx利用Request对象的ServerVariables数据集合可以方便地取得服务器端或客户端的环境变量信息,比如客户端的IP地址等等。语法:◦Request.ServerVariables(环境变量名称)4-4.aspx如果客户端浏览器支持SSL3.0或PCT1协议,可以利用ClientCertificate数据集合取回客户端浏览器的身份验证信息。语法如下:◦Request.ClientCertificate(关键字)如果客户端浏览器未送出身份验证信息,或服务器端也未设置向客户端浏览器要求身份验证的命令,那么将返回空值。如果有,将返回相应的身份验证信息。Request对象的Browser数据集合就可以方便地获取客户端浏览器特性,如类型、版本、是否支持背景音乐等。语法:◦Request.Browser(浏览器特性名称)4-5.aspx利用该属性可以得到客户端提交数据的字节大小,语法如下:◦Request.TotalBytes前面讲的5种获取方法都是直接获取数据,而此方法可以二进制方式获取客户端用Post方法提交的数据。语法如下:◦Request.BinaryRead(字节大小)说明:其中字节大小是用TotalBytes属性获得的响应数据的字节大小。在第3章中讲过利用Label标签控件向客户端输出信息。其实,也可以利用Response对象向客户端输出信息。而且,Response对象还有一些特殊功能,如重定向等。(注意,在ASP.NET中提倡利用控件输出信息。)由System.Web.HttpResponse类实现命名空间:System.Web属性:◦Buffer、ContentType方法:◦Write、Redirect、End、Clear、Flush、BinaryWrite利用该方法就可以在客户端输出信息,效果和利用Label标签控件一样。语法:◦Response.Write(变量数据或字符串)例如:◦Response.Write(user_name&您好)'user_name是一个变量,表示用户名◦Response.Write(现在是:&now())'now()是时间函数◦Response.Write(业精于勤而荒于嬉p)'输出字符串4-6.aspx利用该方法还可以直接在HTML代码中动态输出信息,此时需要将语句用%和%括起来,例如:◦h4align=centerWrite方法示例/h4◦%◦Response.Write(您好,欢迎光临)◦Response.Write(p敬请提出宝贵意见)◦%此时,它还有一种省略方式,例如:◦h4align=centerWrite方法示例/h4◦%=您好,欢迎光临%◦%=p敬请提出宝贵意见%使用Redirect方法就可以引导客户至另一个页面。语法如下:◦Response.Redirect(网址变量或字符串)例如:◦Response.Redirect()'引导至中国教育网◦Response.Redirect(other.asp)'引导至站内其他网页◦theURL=◦Response.Redirect(theURL)'引导至变量表示的网址4-7.aspxTest5_1.aspxBuffer属性用来设置服务器端是否将页面先输出到缓冲区。它的取值为True或False,默认为True。语法:◦Response.Buffer=True|False使用Response.redirect时必须保证Buffer值为True。该方法用于输出二进制信息,它不进行任何字符转换,直接输出。其语法为:◦Response.BinaryWrite(变量或字符串)有时侯可能在数据库里保存了二进制信息,就可以用该方法输出了。例如:从数据库中显示图片的信息就要用到该方法。很多网站能够记住客户端的访问次数。要记住访问次数可以采取多种方法,其中利用Cookie是一种可以在客户端保存信息的方法。ASP.NET提供了HttpCookie对象来处理Cookie,该对象是由System.Web.HttpCookie类实现的。Cookie俗称甜饼,可以在客户端长期保存信息。它是服务器端发送到客户端浏览器的文本串句柄,保存在客户的硬盘上。HttpCookie对象其实是:◦利用Response对象的Cookies方法设置Cookies;◦利用Request对象的Cookies获取方法来获取Cookies的值。语法如下:◦Response.Cookies(“CookiesName”)[(关键字)|.属性]=字符串(1)设置不含关键字的Cookie◦Response.Cookies(user_name).Value=高航(2)设置含关键字的Cookie◦Response.Cookies(user)(name)=高航◦Response.Cookies(user)(age)=22(3)设置Cookie的有效期◦Response.Cookies(user_name).Expires=#1/1/2008#语法如下:◦Request.Cookies(“CookiesName”)[(关键字)|.属性](1)省略关键字的用法◦user_name=Request.Cookies(user_name).Value(2)有关键字的用法◦user_name=Request.Cookies(user)(name)◦age=Request.Cookies(user)(age)(3)判断Cookies关键字数目◦result=Request.Cookies(CookiesName).Haskeys4-8.aspx利用Session对象可以方便记录客户的信息。由System.Web.SessionState类实现命名空间System.Web属性◦SessionID、TimeOut方法◦Abandon事件◦Session_OnStart◦Session_OnEnd4-10.aspx4-9.aspx4-12.aspx4-11.aspxSession对象有它的有效期,默认为20分钟。客户端每新打开一个浏览器窗口,就会创建一个Session对象,如果超出20分钟没有和服务器端交互或者关闭了浏览器,则该Session对象就会自动结束。修改有效期语法如下:◦Session.Timeout=整数(分钟)例如:◦Session.Timeout=90'将有效期改为90分钟Session对象到期后会自动清除,但到期前可以用Abandon方法强行清除。语法:Session.Abandon例如:Session(user_name)=萌萌Session.AbandonResponse.Write(Session(user_name))说明:◦先将前两句复制到一个文件中执行,然后再将第3句复制到另一个ASP.NET文件中执行。Session对象可以记载特定客户的信息,与此相反的是,Application对象可以记载所有客户信息。简而言之,不同的客户必须访问不同的Session对象,但可以访问公共的Application对象。它的最典型的应用是聊天室。由System.Web.HttpApplication类实现方法:◦Lock◦Unlock事件:◦Application_OnStart◦Application_OnEnd语法:◦Application(Application名字)=变量、常量、字符串信息或表达式例如:◦Application.Lock◦Application(user_num)=user_num◦Application(“city”)=“南京”◦Application.Unlock这是一个简单的聊天室,共分3个文件◦5-13.asp框架页文件(省略不讲)◦5-14.asp保存发言信息◦5-15.asp读取发言信息5-14.aspx4-15.aspx和Session非常类似。存储:◦Dimuser_name(2)AsString◦user_name(0)=白芸◦user_name(1)=海霞◦Application.Lock◦Application(arry_user_name)=user_name◦Application.Unlock读取:◦Dimuser_name()AsString◦user_name=Application(arry_user_name)◦message.text=user_name(0)&您好p&user_name(1)&您好Server对象是专为处理服务器上的特定任务而设计的,特别是与服务器的环境和处理活动有关的任务。由System.Web.HttpServerUtility类实现命名空间:System.Web类:属性:◦ScriptTimeout方法:◦Execute、Transfer◦HtmlEncode、UrlEncode◦CreatObject该属性用来规定脚本文件执行的最长时间,默认为90秒。主要是用来防止某些可能进入死循环的错误导致服务器过载问题。修改方法如下:◦Serve