收藏 分享(赏)

Chapter5_Response、Request和Server对象.ppt

上传人:kpmy5893 文档编号:8409032 上传时间:2019-06-25 格式:PPT 页数:39 大小:1.11MB
下载 相关 举报
Chapter5_Response、Request和Server对象.ppt_第1页
第1页 / 共39页
Chapter5_Response、Request和Server对象.ppt_第2页
第2页 / 共39页
Chapter5_Response、Request和Server对象.ppt_第3页
第3页 / 共39页
Chapter5_Response、Request和Server对象.ppt_第4页
第4页 / 共39页
Chapter5_Response、Request和Server对象.ppt_第5页
第5页 / 共39页
点击查看更多>>
资源描述

1、面向.NET的WEB应用程序开发,Chapter5:Response、Request和Server对象,内容回顾,ASP.NET HTML 控件简介 HTML 控件与 Web 控件的区别 ASP.NET 中的验证控件,作业点评,作业1(完成的情况及主要存在的问题) 作业2(完成的情况及主要存在的问题) 作业2(完成的情况及主要存在的问题),本章目标,使用 Response 对象 使用 Request 对象 使用 Server 对象,4,内容进度,HttpResponse对象,HttpResponse 9-1,HttpResponse 对象允许开发人员对当前页面的输出流进行访问 此类可用于: 从

2、输出页面读取/写入文本 将用户重新定向到另一个页面 有条件地结束应用程序连接 设置/获取输出内容类型 检查客户端与服务器的连接状态 读取/写入 Cookie,6,HttpResponse:常用属性 9-2,7,HttpResponse:常用属性 9-3,8,HttpResponse:常用属性 9-4,9,HttpResponse:常用属性 9-5,10,HttpResponse:常用属性 9-6,11,HttpResponse 对象不同属性的用法 打开 VS.NET IDE 并创建名为Example 1 的新项目 将默认 Web 窗体 (.aspx) 文件从Webform1.aspx重命名为R

3、esponseProperties.aspx 通过向 Web 窗体添加两个标签为 Web 窗体设计界面,HttpResponse:常用属性 9-6,演示:示例 1,ResponseProperties.aspx 的 GUI,按照表中的内容设置 ResponseProperties.aspx 上控件的属性,HttpResponse:常用属性 9-7,13,将下列代码片段添加到页面的 Load 事件中,private void Page_Load(object sender, System.EventArgs e) lblResponse.Text=lblResponse.Text + “ Htt

4、pResponse.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 + “ , “; lblRespons

5、e.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.R

6、esponse.Expires + “ , “; lblResponse.Text=lblResponse.Text + “ HttpResponse.ExpiresAbsolute=“ + HttpContext.Current.Response.ExpiresAbsolute + “ , “; lblResponse.Text=lblResponse.Text + “ HttpResponse.IsClientConnected=“ + HttpContext.Current.Response.IsClientConnected + “ , “; lblResponse.Text=lblR

7、esponse.Text + “ HttpResponse.StatusCode=“ + HttpContext.Current.Response.StatusCode + “ , “; lblResponse.Text=lblResponse.Text + “ HttpResponse.StatusDescription=“ + HttpContext.Current.Response.StatusDescription + “ , “; lblResponse.Text=lblResponse.Text + “ HttpResponse.SuppressContent=“ + HttpCo

8、ntext.Current.Response.SuppressContent + “ , “; ,HttpResponse:常用属性 9-7,编译并运行示例,HttpResponse:演示:属性 9-8,15,private void Page_Load(object sender, System.EventArgs e) lblResponse.Text=lblResponse.Text + “ HttpResponse. ContentType =“ + HttpContext.Current.Response.ContentType + “ , “; ,显示 Response 对象的不同

9、属性值,HttpResponse:演示:方法 9-9,16,private void btnRedirect_Click(object sender, System.EventArgs e) HttpContext.Current.Response.Redirect(this.txtURL.Text.Trim(); ,private void btnEnd_Click(object sender, System.EventArgs e) if(this.txtName_End.Text !=“)HttpContext.Current.Response.Write(“您好 “+this.txtN

10、ame_End.Text + “, 欢迎学习HttpResponse!这里采用Response.End()方法“);Response.End(); ,private void btnSubmit_Click(object sender, System.EventArgs e) if(txtUserNm.Text !=“)HttpContext.Current.Response.Write(“您好 “ + txtUserNm.Text + “, 欢迎学习HttpResponse!这里没有采用Response.End()方法“); ,内容进度,HttpResponse对象 HttpRequest对

11、象,HttpRequest 5-1,18,服务器,服务器域名,URL,资源的名称,,响应,这是 HTTP 请求,这是 HTTP 响应,HttpRequest 5-2,HttpRequest 对象封装客户端请求页面或提交表单时提供的信息。这些信息包括: 识别用户和浏览器的 HTTP 变量 在客户端浏览器上为网站存储的 Cookie 作为查询字符串或网页 部分的 HTML 控件值添加到 URL 的值 如果是安全保护网站,有关网站安全的信息,19,HttpRequest 5-3,20,该表列出了 HttpRequest 对象的常用方法和属性,HttpRequest 5-4,常用方法,21,HttpR

12、equest 5-5,22,private void Page_Load(object sender, System.EventArgs e) lblRequest.Text=lblRequest.Text + “ HttpRequest.Browser=“ + HttpContext.Current.Request.Browser + “ , “;lblRequest.Text=lblRequest.Text + “ HttpRequest.Url=“ + HttpContext.Current.Request.Url + “ , “;lblRequest.Text=lblRequest.T

13、ext + “ HttpRequest.UserHostAddress=“ + HttpContext.Current.Request.UserHostAddress + “ , “;lblRequest.Text=lblRequest.Text + “ HttpRequest.UserHostName=“ + HttpContext.Current.Request.UserHostName + “ , “; ,编译并运行程序,HttpRequest 方法,23,private void Page_Load(object sender, System.EventArgs e) HttpCont

14、ext.Current.Response.Write(“+ Server.HtmlEncode(“MapPath(“RequestMethods.aspx”)“)+“的输出结果是: “ );HttpContext.Current.Response.Write(“ + HttpContext.Current.Request.MapPath(“RequestMethods.aspx“).ToString() + “);Response.Write(“ + Server.HtmlEncode(“MapPath(“”)“)+“的输出结果是: “ + “+ HttpContext.Current.Req

15、uest.MapPath(“)+“);Response.Write(“ + Server.HtmlEncode(“MapPath(“RequestMethods.aspx”)“)+“的输出结果是: “ + “+“ + HttpContext.Current.Request.MapPath(“RequestMethods.aspx“).ToString() + “); ,HttpRequest:Querystring 提交前,24,private void btnSubmit_Click(object sender, System.EventArgs e) string strURL=“;str

16、URL=“TargetPage.aspx?Nm=“ + Server.UrlEncode(txtName.Text)+ “ ,HttpRequest:Querystring 提交后,25,private void Page_Load(object sender, System.EventArgs e) string userNm=HttpContext.Current.Request.QueryString“Nm“; HttpContext.Current.Response.Write(“欢迎 “);HttpContext.Current.Response.Write(userNm);Resp

17、onse.Write (“你的密码是:“+ Request.QueryString“pwd“); ,内容进度,HttpResponse对象 HttpRequest对象 HttpServerUtility 对象,HttpServerUtility 对象 8-1,27,Execute 方法和 Transfer 方法,HTML 编码方法,MapPath 方法,URLEncode 方法,方法,HttpServerUtility 类包含处理 Web 请求的方法,HttpServerUtility 对象 8-2,28,注意:Server 对象的 Transfer 方法和 Execute 方法仅用于 Web

18、 窗体,将 Transfer 方法的 preserveForm 参数设置为 True,可将窗体的 QueryString、ViewState 等信息提供给目标窗体,Execute 方法和 Transfer 方法均会停止当前页面的执行,并将用户带到由此方法的参数 URL 指定的页面,HttpServerUtility 对象 8-3,29,private void btnTransfer_Click(object sender, System.EventArgs e) HttpContext.Current.Server.Transfer(“RequestProperties.aspx“);lbl

19、ForExecute.Text=“客户端调用 Transfer 方法之后!“; ,点击Transfer按钮的结果:,HttpServerUtility 对象 8-4,HTMLEncode 方法: 为了确保所有浏览器均能在 URL 字符串中正确地传送文本,需要使用 HTML 编码。HTMLEncode 方法正是起这个作用的 例如,如果输入文本包含 “”字符,此方法会将这些字符转换为其对等的 HTML 字符,即分别为 < 和 >,以便浏览器将这些字符正确地显示为“”,30,HTMLEncode(String),要编码为 HTML 的文本,用于将输出存储为 TextWriter 流,语法,H

20、TMLEncode(String,TextWriter),HttpServerUtility 对象 8-5,URLEncode 方法: 在 HTML 编码中,将文本编码成相应的 HTML 是为了在浏览器中正确地显示 如果是要求可靠的 HTTP 传输通过 URL 将编码文本从 Web 服务器传送到客户端,该怎么办? 可使用 URLEncode 方法实现此目的。它将文本编码以便于通过 HTTP 进行可靠的传输,31,语法,要编码为 HTML 传输的文本,用于将编码输出存储为 TextWriter 流,URLEncode(String,TextWriter),URLEncode(String),Ht

21、tpServerUtility 对象 8-5,protected void Page_Load(object sender, EventArgs e) string strURL = “http:/localhost:4108/WebObject/frmServer.aspx?perName=张 三“;Response.Write(“这是用Response.Write(Server.UrlEncode(strURL)的结果:“ + Server.UrlEncode(strURL) + “);Response.Write(“这是用Response.Write(MyURL)的结果:“+strURL

22、); ,HttpServerUtility 对象 8-6,MapPath 方法: Web 应用程序位于 IIS 根目录下的虚拟目录中 因此,我们请求网页时,引用称为“虚拟路径”的虚拟目录路径。但是经常需要得到 Web 服务器上的 Web 资源的实际物理路径 用 MapPath 方法,我们可从其虚拟路径得到 Web 资源(如 .aspx 页面)的物理路径,33,语法,MapPath(string path),Web 服务器上的指定虚拟路径,HttpServerUtility 对象 8-7,HTMLEncode的使用,34,private void Page_Load(object sender,

23、 System.EventArgs e) Response.Write(“测试表示用粗体显示“);Response.Write(“);Response.Write(“ ,HttpServerUtility 对象 8-8,35,private void Page_Load(object sender, System.EventArgs e) string MyURL;MyURL = “http:/ =张 三“;Response.Write(“这是用Response.Write(Server.UrlEncode(MyURL)的结果:“+ Server.UrlEncode(MyURL) +“ );R

24、esponse.Write(“这是用Response.Write(MyURL)的结果:“+MyURL); ,本章小结,传递Form表单中的控件值用Request.Form 获取值,地址栏中传递的参数用 Request.QueryString获取 通常用HttpResponse 类的属性Buffer、Cache、Cookie 和 Expires来设置站点的一些特性 HttpResponse 类的常用方法是 Write()、End() 和 Redirect() HttpServerUtility 类的Execute()和Transfer()的区别关键在于执行后控制权是否返回原先页面、URLEncode()和HTMLEncode()主要用于对HTML 标签和URL进行编码,对站点或程序的安全具有重要意思, MapPath()获取物理路径时需要注意是绝对路径还是相对路径,36,工程实践,利用内置对象Server进行页面请求操作 掌握Server对象常用方法的使用,一个Web窗体ServerForm.aspx设计界面下图所示。,作业布置,完成下图所示的设计。按下“我接受”按钮后,所有注册信息在下一个窗口显示出来。,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报