ACCPV4.0第五章Response、Request和Serverd对象ACCPV4.02回顾HTML服务控件和Web服务控件的区别RequiredFieldvalidator检查必填字段中是否含有值CompareValidator控件将在一个窗体字段中输入的值与一个固定的值或任何其他窗体字段中的值进行比较RangeValidator控件用于检查在字段中输入的值是否介于最大值与最小值之间RegularExpressionValidator控件用于检查字段值是否与给定的正则表达式相符CustomValidator控件用来为窗体创建自定义验证标准ValidationSummary控件概括窗体中生成的所有错误Page.IsValid属性检查页面中的所有验证控件是否均已成功进行验证ACCPV4.03目标使用Response对象使用Request对象使用Server对象ACCPV4.04HttpResponse9-1HttpResponse对象允许开发人员对当前页面的输出流进行访问此类可用于:从输出页面读取/写入文本将用户重新定向到另一个页面有条件地结束应用程序连接设置/获取输出内容类型检查客户端与服务器的连接状态读取/写入CookieACCPV4.05HttpResponse:常用属性9-2属性名称说明Buffer指定是否将Web窗体创建的输出存储在IIS缓存中,直到处理完当前页面中的所有服务器脚本Cache获得网页的缓存策略(过期时间、保密性等)ACCPV4.06HttpResponse:常用属性9-3属性名称说明ContentType获得或指定响应的HTTP内容(MIME)类型为标准MIME类型(如text/xml或image/gif)。默认的MIME类型是text/html。客户端浏览器从输出流中指定的MIME类型获得内容的类型Cookie用于获得HttpResponse对象的Cookie集合Expires指定浏览器中缓存的页面过期之前的时间(以分钟为单位)ACCPV4.07HttpResponse:常用属性9-4属性名称说明Output启用到输出HTTP响应流的文本输出OutputStream启用到输出HTTP内容主体的二进制输出,并作为响应的一部分ACCPV4.08HttpResponse:常用属性9-5方法说明Write用于向当前HTTP响应流写入文本,使其成为返回页面的一部分End停止处理至客户端的输出,返回目前为止已创建的页面内容并触发Application对象的EndRequest事件[Application对象将在第六阶段讨论]Redirect将用户从请求页面重新定向或带到另一页面ACCPV4.09HttpResponse:常用属性9-6控件属性值LabelIDlblHdrLabelBackColor#E0E0E0LabelTextResponse对象的属性及它们的值LabelIDlblResponseLabelBackColorLightBlue演示:示例1HttpResponse对象不同属性的用法打开VS.NETIDE并创建名为‘Example1’的新项目将默认Web窗体(.aspx)文件从‘Webform1.aspx’重命名为‘ResponseProperties.aspx’通过向Web窗体添加两个标签为Web窗体设计界面ResponseProperties.aspx的GUI按照表中的内容设置ResponseProperties.aspx上控件的属性ACCPV4.010HttpResponse:常用属性9-7将下列代码片段添加到页面的Load事件中privatevoidPage_Load(objectsender,System.EventArgse){lblResponse.Text=lblResponse.Text+[HttpResponse.Buffer=+HttpContext.Current.Response.Buffer+],;lblResponse.Text=lblResponse.Text+[HttpResponse.Cache=+HttpContext.Current.Response.Cache+],;lblResponse.Text=lblResponse.Text+[HttpResponse.CacheControl=+HttpContext.Current.Response.CacheControl+],;lblResponse.Text=lblResponse.Text+[HttpResponse.Charset=+HttpContext.Current.Response.Charset+],;lblResponse.Text=lblResponse.Text+[HttpResponse.ContentType=+HttpContext.Current.Response.ContentType+],;lblResponse.Text=lblResponse.Text+[HttpResponse.Expires=+HttpContext.Current.Response.Expires+],;lblResponse.Text=lblResponse.Text+[HttpResponse.ExpiresAbsolute=+HttpContext.Current.Response.ExpiresAbsolute+],;lblResponse.Text=lblResponse.Text+[HttpResponse.IsClientConnected=+HttpContext.Current.Response.IsClientConnected+],;lblResponse.Text=lblResponse.Text+[HttpResponse.StatusCode=+HttpContext.Current.Response.StatusCode+],;lblResponse.Text=lblResponse.Text+[HttpResponse.StatusDescription=+HttpContext.Current.Response.StatusDescription+],;lblResponse.Text=lblResponse.Text+[HttpResponse.SuppressContent=+HttpContext.Current.Response.SuppressContent+],;}编译并运行示例ACCPV4.011HttpResponse:演示:属性9-8privatevoidPage_Load(objectsender,System.EventArgse){lblResponse.Text=lblResponse.Text+[HttpResponse.ContentType=+HttpContext.Current.Response.ContentType+],;}显示Response对象的不同属性值ACCPV4.012HttpResponse:演示:方法9-9privatevoidbtnRedirect_Click(objectsender,System.EventArgse){HttpContext.Current.Response.Redirect(this.txtURL.Text.Trim());}privatevoidbtnEnd_Click(objectsender,System.EventArgse){if(this.txtName_End.Text!=){HttpContext.Current.Response.Write(您好“+this.txtName_End.Text+,欢迎学习HttpResponse!!B这里采用Response.End()方法/B);Response.End();}}privatevoidbtnSubmit_Click(objectsender,System.EventArgse){if(txtUserNm.Text!=)HttpContext.Current.Response.Write(您好+txtUserNm.Text+,欢迎学习HttpResponse!!B这里没有采用Response.End()方法/B);}ACCPV4.013HttpRequest5-1服务器服务器域名URL,资源的名称HttpRequest对象封装客户端请求页面或提交表单时提供的信息。这些信息包括:识别用户和浏览器的HTTP变量在客户端浏览器上为网站存储的Cookie作为查询字符串或网页FORM部分的HTML控件值添加到URL的值如果是安全保护网站,有关网站安全的信息ACCPV4.015HttpRequest5-3属性名称说明Browser获得有关请求浏览器能力的信息Form获得网页中定义的窗体变量的集合QueryString获得以名/值对表示的HTTP查询字符串变量的集合Params获得由以名/值对表示的QueryString、Form、Cookie和ServerVariables组成的集合该表列出了HttpRequest对象的常用方法和属性ACCPV4.016HttpRequest5-4Url返回有关当前请求的URL信息方法名称说明MapPath将请求URL中提到的虚拟路径映射到服务器上资源的实际物理路径常用方法ACCPV4.017HttpRequest5-5privatevoidPage_Load(objectsender,System.EventArgse){lblRequest.Text=lblRequest.Text+[HttpRequest.Browser=+HttpContext.Current.Request.Browser+],;lblRequest.Text=lblRequest.Text+[HttpRequest.Url=+HttpContext.Current.Request.Url+],;lblRequest.Text=lblRequest.Text+[HttpRequest.UserHostAddress=+HttpContext.Current.Request.UserHostAddress+],;lblRequest.Text=lblRequest.Text+[HttpRequest.UserHostName=+HttpContext.Current.Request.UserHostName+],;}编译并运行程序ACCPV4.018HttpRequest方法privatevoidPage_Load(objectsender,System.EventArgse){HttpContext.Current.Response.Write(B+Server.HtmlEncode(MapPath(“RequestMethods.aspx”))+的输出结果是:/Bbr);HttpContext.Current.Response.Write(U+HttpContext.Current.Request.MapPath(RequestMethods.aspx).ToString()+/Ubrbr);Response.Write(B+Server.HtmlEncode(MapPath(“\\”))+的输出结果是:br+/BU+HttpContext.Current.Request.MapPath(\\)+/Ubrbr);Response.Write(B+Server.HtmlEncode(MapPath(“\\RequestMethods.aspx”))+的输出结果是