




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章 ASP.NET常用内置对象,本章内容:ASP.NET常用内置对象,包括Page、Response,Request、Server对象等。 本章重点:Page、Response、Request和Server对象的使用。,Page对象是由System.Web.UI命名空间中的Page类来实现的。Page类与ASP.NET网页文件(.aspx)相关联。ASP.NET网页也称为“Web窗体”或“Web页面”,这些文件在运行时被编译成Page对象,并缓存在服务器中。 4.1.1 Page对象的常用属性、方法和事件 1. Page对象的属性 Page对象提供的常用属性见表4-1。,4.1 Page对象,【演练4-1】 下列代码实现了在页面首次加载时,填充列表框ListBox1中的各选项,而回发刷新时不重复加载。 protected void Page_Load(object sender, EventArgs e) Button1.Text = “引起回发“; /设置按钮控件上显示的文本 if (!IsPostBack) /如果页面的加载不是回发引起的,则执行下列代码 ListBox1.Items.Add(“教务处“); /填充列表框中的选项 ListBox1.Items.Add(“学生处“); ListBox1.Items.Add(“财务处“); ,如图4-1所示,用户单击页面中“引起回发”按钮时,会因回发而导致页面刷新(再次执行Page_Load事件处理程序),但列表框中的选项仍可正常显示。,如果将代码中对IsPostBack属性的判断语句去掉,再次运行程序时将看到如图4-2所示的错误结果。代码如下: protected void Page_Load(object sender, EventArgs e) Button1.Text = “引起回发“; /设置按钮控件上显示的文本 ListBox1.Items.Add(“教务处“); /只要页面加载就填充列表框中的选项 ListBox1.Items.Add(“学生处“); ListBox1.Items.Add(“财务处“); ,2. Page对象的常用方法和事件 Page对象的常用方法见表4-2。 Page对象的常用事件见表4-3。,4.1.2 Web页面的生命周期 Web页面的生命周期及各阶段执行的内容如下。 初始化 加载视图状态 处理回发数据 加载 预呈现 保存状态 呈现 处置 卸载,4.1.3 Page对象的Load事件与Init事件比较 【演练4-2】 设计一个ASP.NET网站,向Web窗体中添加两个列表框控件ListBox1和ListBox2,添加一个按钮控件Button1。在Page对象的Load事件和Init事件中分别向ListBox1和ListBox2中填充若干数字作为选项。按钮控件无须编写任何代码,只是要在用户单击按钮时引起一个服务器端回发。 切换到代码编辑窗口,编写Page_Load和Page_Init事件代码如下:,protected void Page_Init(object sender, EventArgs e) for (int i = 1; i 4; i+) ListBox1.Items.Add(i.ToString(); protected void Page_Load(object sender, EventArgs e) for(int i=1;i4;i+) ListBox2.Items .Add (i.ToString(); ,运行程序页面初次加载后,如图4-3所示,ListBox1和ListBox2两个列表框中填充的数据完全相同。但是,单击按钮引起回发后可以看到,在Page_Load事件中填充的ListBox2控件的选项出现了重复,如图4-4所示。,Response对象是从System.Web命名空间中的HttpResponse类中派生出来的。当用户访问应用程序时,系统会根据用户的请求信息创建一个Response对象,该对象被用于回应客户浏览器,告诉浏览器回应内容的报头、服务器端的状态信息以及输出指定的内容等。 4.2.1 Response对象的常用属性和方法 Response对象常用的属性见表4-4。,4.2 Response对象,Response对象的常用方法见表4-5。,4.2.2 使用Response对象输出信息到客户端 在编写ASP.NET应用程序代码时经常会用到Response对象,其中最常用的应用之一就是使用Response对象的Write()方法或WriteFile()方法,将信息写入HTML流,并显示到客户端浏览器。 1. 使用Write方法输出信息 Write方法的语法格式如下: Response.Write(string); 其中,参数string表示希望输出到HTML流的字符串,string不但可以是字符串常量或变量,也可以包含用于修饰输出信息的HTML标记或脚本。如果希望在字符串常量中包含英文双引号(“),则应使用C#转义符“”。,【演练4-3】 Response.Write()方法的使用示例,如图4-5所示。 /向浏览器输出带有HTML标记的字符串常量,标记表示换行 Response.Write(“欢迎访问我的站点“); /向浏览器输出变量的值 Response.Write(DateTime.Now.ToLongTimeString()+“);/显示服务器时间 /向浏览器写入带有超链接的文字信息 Response.Write(“访问网易“); /向浏览器输出带有双引号的文字信息,输出为:“Welcome to my home.“ Response.Write(“ + “Welcome to my home.“ + “);,2. 使用Write方法向客户端输出脚本 任何一个脚本都可以被认为是一组字符串,可以通过Write方法将其发送到客户端浏览器中执行。 例如,下列语句向浏览器写入脚本,使之弹出一个如图4-6所示的信息框: Response.Write(“alert(操作成功! );“); 下列语句向浏览器写入包含有脚本的超链接文字信息,当用户单击该超链接时可实现无确认直接关闭当前窗口: Response.Write(“关闭窗口“);,3. 使用WriteFile方法 使用Response对象的WriteFile方法可以将指定的文件内容直接写入HTML输出流。其语法格式如下: Response.WriteFile(filename); 其中,filename参数用于说明文件的名称及路径。 在使用WriteFile方法将文件写入HTML流之前,应使用Response对象的ContentType属性说明文件的类型或标准MIME类型。该属性值是一个字符串,通常以如下格式表示: 类型/子类型 常用的类型及子类型包括:text/html(默认值)、image/gif、image/jpeg、application/msword、application/vnd.ms-excel和application/vnd.ms-powerpoint等。,例如,希望将一个保存在服务器端根站点下的文本文件“1.txt”的内容输出到客户端浏览器中,可使用如下代码: Response.ContentType = “text/html“; Response.ContentEncoding = System.Text.Encoding.GetEncoding(“GB2312“); Response.WriteFile(“1.txt“);,此外,WriteFile方法常用于提供文件下载的应用中。例如,当用户单击页面中按钮控件时弹出“文件下载”对话框,允许用户在客户端打开或保存站点根文件夹下data文件夹中的“1.xls”文件,代码如下: protected void Button1_Click(object sender, EventArgs e) Response.ContentType = “application/vnd.ms-excel“; /设置文件类型 /设置文件内容编码 Response.ContentEncoding = System.Text.Encoding.GetEncoding(“GB2312“); Response.WriteFile(MapPath(“/data/1.xls“); /输出Microsoft Excel文件 ,4.2.3 使用Redirect方法实现页面跳转 Response对象的Redirect方法用于将客户端重定向到新的URL,实现页面间的跳转。该方法的语法格式如下: Response.Redirect(url ,endResponse) 其中,字符串参数url表示新的目标URL地址,可选布尔参数endResponse表示是否终止当前页的执行。 例如,下列语句将使用客户端浏览器重定向到“百度”搜索引擎的主页: Response.Redirect(““),使用Response对象的Redirect方法时应注意如下问题: 使用该方法实现跳转时,浏览器地址栏中将显示目标URL。 执行该方法时,重定向操作发生在客户端,涉及两个不同页面,甚至是两个Web服务器之间的通信,第一阶段是对原页面的请求,第二阶段是对目标URL的请求。 该方法执行后内部控件保存的所有信息将丢失,因此当从A页面跳转到B页面后,在页面B中无法访问A页面提交的数据。若需从A页面传递数据到B页面,只能通过url参数中的“?”来实现。例如: string MyName = UserName.Text; /将文本框中的文本存入变量 /将变量值以Name为形参变量(也称为“查询字符串”)传送给目标页面welcome.aspx Response.Redirect(“welcome.aspx?Name=“ + MyName); 目标页面被打开后,可以使用Request对象的QueryString属性读取上一页传递来的数据。Request对象及QueryString属性将在后面进行详细介绍。,Request对象是ASP.NET中常用对象之一,主要用于获得客户端浏览器的信息。例如,使用QueryString属性可以接收用户通过URL地址中“?”传递给服务器的数据;使用Request对象的UserHostAddress属性可以得到用户的IP地址;使用Browser属性集合中的成员可以读取客户端浏览器的各种信息(如:用户使用的浏览器名称及版本、客户机使用的操作系统、是否支持HTML框架、是否支持Cookie等);使用Form属性可以处理HTML表单。,4.3 Request对象,4.3.1 Request对象的常用属性和方法 Request对象的常用属性见表4-6。,Request对象的常用方法有两个。 MapPath(VirtualPath):该方法将当前请求的URL中的虚拟路径VirtualPath映射到服务器上的物理路径。参数VirtualPath用于指定当前请求的虚拟路径(可以是绝对路径,也可以是相对路径)。返回值为与VirtualPath对应的服务器端物理路径。 SaveAs(filename, includeHeaders):该方法将客户端的HTTP请求保存到磁盘中。参数filename用于指定文件在服务器中保存的位置;布尔型参数includeHeaders用于指示是否同时保存HTTP头。,例如,将用户请求页面的服务器端物理路径显示到页面中,将用户的HTTP请求信息(包括HTTP头数据)保存到服务器磁盘中,代码如下: /在页面中显示请求文件在服务器中的物理路径 Response.Write( Request.MapPath(“Default.aspx“); /将用户的HTTP请求保存到abc.txt文件中 Request.SaveAs(“D:abc.txt“, true); /在C#中“”表示转义符,所以在表示路径时应使用“”,4.3.2 通过查询字符串实现跨页数据传递 Request对象的QueryString属性用于接收来自用户请求URL地址中“?”后面的数据,通常将这些数据称为“查询字符串”,也称为“URL附加信息”,常被用来在不同网页中传递数据。 使用Response对象的Redirect属性可以同时传递多个参数,其语法格式如下: Response.Redirect(“目标网页?要传递的参数1 /传递一个参数,或 Response.Redirect(“result.aspx?VarA=“ + Var1 + “,例如: string MyVar = Request.QueryString“Var“; /提取参数变量Var的值赋给变量MyVar 使用“?”可以在页面间方便地传递数据,但在使用时也存在如下问题: 用户在浏览器地址栏中可以直接看到传递的数据,不适合传递敏感数据。 用户可以在浏览器地址栏中自行编写“?”后面的参数值,存在安全隐患,如SQL注入等。,Server对象派生自HttpServerUtility类,该对象提供了访问服务器的一些属性和方法,帮助程序判断当前服务器的各种状态。 4.4.1 Server对象的常用属性和方法 Server对象的常用属性如下。 MachineName属性:该属性用于获取服务器的计算机名称。 ScriptTimeout属性:该属性用于获取或设置请求超时的时间(秒)。 Server对象的常用方法见表4-7。,4.4 Server对象,4.4.2 Execute和Transfer方法 Execute()方法的语法格式为: Server.Execute(url ,write); 其中,参数url表示希望跳转到的页面路径;可选参数write是StringWrite或StreamWrite类型的变量,用于捕获跳转到的页面的输出信息。 Transfer()方法的语法格式为: Server.Transfer(url ,saveval); 其中,参数url表示希望跳转到的页面路径;可选参数saveval是一个布尔型参数,用于指定在跳转到目标页面后,是否保存当前页面的QueryString和Form集合中的数据。注意:写在Transfer()方法语句之后的任何语句都将永不被执行。,4.4.3 MapPath方法 在ASP.NET网站执行时可能需要访问存放在服务器中的某一文件,此时就需要将文件的虚拟路径转换成服务器端对应的物理路径。而Server对象的MapPath方法就是用来完成这一任务的。MapPath()方法的语法格式为: Server.MapPath(虚拟路径); 例如,设D:ASP.NETWebSite1是某站点在服务器上的主目录(物理路径),返回D:ASP.NETWebSite1adminpage1.aspx的语句如下: Server.MapPath(“admin/page1.aspx“);,在描述虚拟路径时, 通常使用符号“/”表示网站的根目录(相对虚拟路径) 使用符号“./”表示当前目录(相对虚拟路径) 使用符号“/”表示当前目录的上级目录(相对虚拟路径)。 也可以使用Request对象的FilePath属性返回当前页面的虚拟路径。,4.4.4 对字符串编码和解码 使用Server对象的HtmlEncode()和HtmlDecode()方法,可以实现对字符串的编码和解码操作;使用Server对象的UrlEncode()和UrlDecode()方法,可以实现对URL字符串的编码和解码操作。,1. HtmlEncode()和HtmlDecode()方法 HtmlEncode()和HtmlDecode()方法用于对包含HTML标记的字符串进行编码和解码操作,二者互为反操作。HtmlEncode()方法的语法格式为: Server.HtmlEncode(string); 其中,string参数为包含HTML标记的字符串。 HtmlDecode()方法的语法格式为: Server.HtmlDecode(string
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025黑龙江东北林业大学党委学生工作部校内招聘4人考前自测高频考点模拟试题及一套参考答案详解
- 2025贵州省职工医院第十三届贵州人博会引进人才13人考前自测高频考点模拟试题附答案详解
- 2025江苏省宿迁市沭阳县面向普通高校应届师范类毕业生招聘16人(第二批次)考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025年广东江门开平市公安局第一批警务辅助人员招聘59人考前自测高频考点模拟试题附答案详解(完整版)
- 2025年中国即溶分离乳清蛋白行业市场分析及投资价值评估前景预测报告
- 2025广西桂林荔浦市公安局招聘综治网格长(一村一辅警)43人模拟试卷及一套完整答案详解
- 2025年中国环氧烃基硅烷行业市场分析及投资价值评估前景预测报告
- 2025广东广州天河区童时光幼儿园招聘1人考前自测高频考点模拟试题及1套参考答案详解
- 2025内蒙古巴彦淖尔市能源(集团)有限公司招聘48人考前自测高频考点模拟试题(含答案详解)
- 2025年潍坊市寒亭区人民检察院公开招聘工作人员模拟试卷附答案详解(典型题)
- 2025-2026学年辽海版(2024)小学美术二年级上册《巧用材料》教学设计
- 2025海康威视视频安全门禁系统使用手册
- 2025中数联物流科技(上海)有限公司招聘考试参考试题及答案解析
- 南通市第一初中2023~2024初一上学期第一次月考数学试卷及答案
- 电力安全工作规程考试试题(答案)
- 急性胰腺炎护理查房
- 2023年贵州专升本英语真题试卷(完整版)
- JSQ5A夹绳器说明书
- DB14T 2740-2023 春玉米膜侧沟播技术规程
- 福特汽车NVH开发流程
- 中国农业银行笔试题库(含答案)
评论
0/150
提交评论