《ASP.NET数据库网站设计教程(C#版)》

Slides:



Advertisements
Similar presentations
第 4 章 配合 例子源代码一起使用 Power point 制作:耿祥义 张跃平 普通高等教育 “ 十一五 ” 国家级规划教材 JSP 内置对象.
Advertisements

模块五 动态网页技术 任务五 查询记录 任务一 表单设计制作 任务二 简单动态的 ASP 页面制作任务三 页面与数据库的集成任务四 添加记录 任务六 电商系统融入网站.
陳昭銘 國立高雄海洋科技大學 海事資訊科技系
第14章 表单 在制作动态网页时,要实现信息交互,常常用到表单。 常见的表单有搜索表单、用户登录注册表单、调查表 单、留言簿表单等。本章节将和大家一起探讨在表单 的基本概念和各个元素,以及在Dreamweaver CS4中 如何创建表单,并通过实例掌握表单制作的方法。
本章要点: 掌握HttpRequest对象的应用。 掌握HttpResponse对象的应用。
动态Web开发技术--JSP.
第21章 .NET报表设计 (时间:1.5次课,3学时).
第五章 JSP内置对象 第4章学习了页面组成元素和使用方法。本章学习JSP内置对象的使用。使用JSP内置对象,可以方便操作页面,访问页面环境,实现页面内、页面间、页面与环境之间的通讯。 学习目标 熟悉主要内置对象的概念 理解主要内置对象的作用域和生命期 理解主要内置对象的作用和关系 熟悉主要内置对象的使用方法.
基于JSP搭建Web应用程序.
第二节 日常业务处理 一、生成会计报表 二、会计报表输出 初级会计电算化>>第十二章>>第二节.
5.1 Excel 概述 Excel的特点 1、表格制作 2、完成复杂运算 3、建立图表 4、数据库管理 5、决策支持.
104學年度臺南區免試入學作業國中端說明會 臺南市政府教育局 104學年度臺南區高級中等學校免試入學委員會 日期:104年1月9日(五)
汇报大纲 一、报送系统总体介绍 二、自查及检查评分报送流程 三、自查及检查方法及关键点 四、建议及注意事项.
自 然 探 索 圓周美語 My name is.
动态网页制作 第1章 HTML语言1.
4.3 处理数据 宝鸡理工学校计算机组 李小保.
软件工程 实验三 周志钊
《ASP.NET数据库网站设计教程(C#版)》
第6章 HTML控件和Web服务器控件 本章讲述的主要内容 6.1 ASP.NET控件概述 6.2 标准服务器端控件 6.3 数据验证控件
全球資訊網(WWW)簡介.
三 校 生 高 考 培 训 ---OFFICE~EXCEL.
上海市出口退税网上申报系统V2.0 —— 大连龙图信息技术股份有限公司 ——.
《计算机网络技术》 asp.net 程序设计 文本类控件 笪静.
第十章 房地产开发项目的经济评价 §1 房地产开发项目及其前期工作 §2 房地产开发项目经济评价 本章内容.
5.1 – 表格(FORM) 輸入元素 : 兩種傳遞方法 : GET or POST 範例 1. 文字欄位 Text box
Chapter 7 網頁應用程式與狀態管理.
第二期实验室工作人员培训讲座(三) 加强规范化建设 提高仪器设备管理水平 设备处 黄久龙 2017年9月13日 徐州师范大学设备处 黄久龙.
HTML簡介、文字的變化、超連結的使用 主講:朱漢琳.
Ch03 VB.NET語法建立ASP.NET 網頁程式設計.
《ASP.NET数据库网站设计教程(C#版)》
Hello World 體驗實作第一個JSP程式.
第四章 網頁表單與資料傳遞.
Chapter 4 基本伺服器控制項.
Ch11 檔案上傳及電子郵件 WEB程式設計.
数据库操作示例 import java.sql.*; //导入java.sql包 public class JDBCDemo {
专题4:JSP脚本和指令.
在 Web 应用中,导航是非常重要的。ASP
第一章 Visual Studio、SQL Server介紹與開發環境
第7章 ADO.NET操作SQL Server数据库
ASP.NET 網頁製作教本 – 從基本語法學起
讲课人:王璞 浙江工商职业技术学院.
第14章 伺服器檔案、電子郵件處理與Ajax 14-1 資料夾與檔案操作 14-2 文字檔案的讀寫 14-3 電子郵件與附檔處理
第15章 豐富控制項.
ASP动态网页设计实用教程 主讲教师: 开课单位:.
Ajax網頁的危機與防禦術 王寧疆 MCAD.NET/MCSD.NET/MCT/MVP 資策會教育訓練處.
第5章 .NET框架类 5.
主 讲 教 师:陆有军 Web技术与应用 第四章 内部对象 主 讲 教 师:陆有军
課程名稱:_____________ 指導教授:_____________
第3章 ASP.NET程序设计基础 3.
第11章 Android客户端与服务器交互.
張智星 台大資工系 多媒體檢索實驗室 第十二章 ASP基本介紹 張智星 台大資工系 多媒體檢索實驗室.
Web前端开发 第23章:网站发布 阮晓龙 / 河南中医药大学管理科学与工程学科
第4章 ASP.NET的HTTP物件、輸出入與Cookie處理
电子商务专业课程 电子商务应用技术 Application of Technology On Electronic Commerce.
HTML 103 互動式網頁.
大專院校美食網- 以新北市為例 商務科技管理專題 組 別: 第二組 專題成員: 方采薇 陳宜欣
Ch09 在網頁之間傳遞資訊 網頁程式設計.
第1章 SQL Server 2005概述 教学提示:SQL Server 2005是微软的下一代数据管理和分析解决方案,它给企业级应用数据和分析程序带来更好的安全性、稳定性和可靠性,使得它们更易于创建、部署和管理,从而可以在很大程度上帮助企业根据数据做出更快、更好的决策,提高开发团队的生产力和灵活度,以及在减少总体IT预算的同时,能够扩展IT基础架构以更好地满足多种需求。
WEB程序设计技术 ASP.NET内置对象.
补充:c#语言基础.
C# 基本語法、變數.
1 Session对象的特性 Session 状态对象 Session 对象常用的方法有: Session 对象常用的属性有:
HTML 103 互動式網頁 助教:黃毓瑩.
第1章 ASP.NET基础.
地方科技基础条件资源调查管理信息系统 (标准化器)操作培训 2017年7月 呼和浩特
第6章 PHP的数据采集.
阅读全文 Microsoft SharePoint 新闻
Excel 進階 By 梁志堅.
HTML表单 JSP借由标签所构成的表单区块中,取得用户在其中特定字段输入的数据內容 。 JSP 动态网页新技术.
狂犬病 指導老師:黃顯璋 報告人:唐芸.
Presentation transcript:

《ASP.NET数据库网站设计教程(C#版)》 配套教学资源 第4章 ASP.NET常用内置对象 本章内容:ASP.NET常用内置对象,包括Page、Response,Request、Server对象等。 本章重点:Page、Response、Request和Server对象的使用。

4.1 Page对象 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】 下列代码实现了在页面首次加载时,填充列表框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;i<4;i++) ListBox2.Items .Add (i.ToString());

运行程序页面初次加载后,如图4-3所示,ListBox1和ListBox2两个列表框中填充的数据完全相同。但是,单击按钮引起回发后可以看到,在Page_Load事件中填充的ListBox2控件的选项出现了重复,如图4-4所示。

4.2 Response对象 Response对象是从System.Web命名空间中的HttpResponse类中派生出来的。当用户访问应用程序时,系统会根据用户的请求信息创建一个Response对象,该对象被用于回应客户浏览器,告诉浏览器回应内容的报头、服务器端的状态信息以及输出指定的内容等。 4.2.1 Response对象的常用属性和方法 Response对象常用的属性见表4-4。

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标记的字符串常量,<br>标记表示换行 Response.Write("<font face=黑体 size=5 color=blue>欢迎访问我的站点</font><br /><br />"); //向浏览器输出变量的值 Response.Write(DateTime.Now.ToLongTimeString()+"<br /><br />");//显示服务器时间 //向浏览器写入带有超链接的文字信息 Response.Write("<a href='http://www.163.com'>访问网易</a><br /><br />"); //向浏览器输出带有双引号的文字信息,输出为:"Welcome to my home." Response.Write("\"" + "Welcome to my home." + "\"<br /><br />");

2. 使用Write方法向客户端输出脚本 任何一个脚本都可以被认为是一组字符串,可以通过Write方法将其发送到客户端浏览器中执行。 例如,下列语句向浏览器写入脚本,使之弹出一个如图4-6所示的信息框: Response.Write("<script language=javascript>alert('操作成功! ');</script>"); 下列语句向浏览器写入包含有脚本的超链接文字信息,当用户单击该超链接时可实现无确认直接关闭当前窗口: Response.Write("<a href='javascript:window.opener=null;window.close()'>关闭窗口</a>");

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("http://www.baidu.com")

使用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属性将在后面进行详细介绍。

4.3 Request对象 Request对象是ASP.NET中常用对象之一,主要用于获得客户端浏览器的信息。例如,使用QueryString属性可以接收用户通过URL地址中“?”传递给服务器的数据;使用Request对象的UserHostAddress属性可以得到用户的IP地址;使用Browser属性集合中的成员可以读取客户端浏览器的各种信息(如:用户使用的浏览器名称及版本、客户机使用的操作系统、是否支持HTML框架、是否支持Cookie等);使用Form属性可以处理HTML表单。

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 &要传递的参数2&…&要传递的参数n"); 例如: string Var1 = "zhangsan"; string Var2 = "zhangsan@163.com"; Response.Redirect("result.aspx?Var=" + Var1); //传递一个参数

或 Response.Redirect("result.aspx?VarA=" + Var1 + "&VarB=" + Var2); //传递两个参数 上述语句等效于: Response.Redirect("result.aspx?VarA=zhangsan&VarB=zhangsan@163.com"); 在目标网页中使用Request对象的QueryString属性接收参数的语法格式如下: string 接收参数的变量 = Request.QueryString["包含参数的变量"];

例如: string MyVar = Request.QueryString["Var"]; //提取参数变量Var的值赋给变量MyVar 使用“?”可以在页面间方便地传递数据,但在使用时也存在如下问题: ① 用户在浏览器地址栏中可以直接看到传递的数据,不适合传递敏感数据。 ② 用户可以在浏览器地址栏中自行编写“?”后面的参数值,存在安全隐患,如SQL注入等。

4.4 Server对象 Server对象派生自HttpServerUtility类,该对象提供了访问服务器的一些属性和方法,帮助程序判断当前服务器的各种状态。 4.4.1 Server对象的常用属性和方法 Server对象的常用属性如下。 MachineName属性:该属性用于获取服务器的计算机名称。 ScriptTimeout属性:该属性用于获取或设置请求超时的时间(秒)。 Server对象的常用方法见表4-7。

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.NET\WebSite1是某站点在服务器上的主目录(物理路径),返回D:\ASP.NET\WebSite1\admin\page1.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); 其中,string参数为使用HtmlDecode()方法编码后的字符串。

如图4-7所示的是包含HTML标记的一个字符串,如图4-8所示的是经过HtmlEncode()方法编码后的输出结果。 从编码后得到的结果可以看出,所谓HtmlEncode编码实际上就是将HTML标记中的一些特殊符号(如左/右尖括号、双引号、分号等)用特定的标记表示。经过这样的处理后,包含HTML标记的字符串可以在浏览器中原样输出,而不是将其表现为标记所代表的格式。

2. UrlEncode()和UrlDecode()方法 UrlEncode()和UrlDecode()方法用于对URL中的特殊符号进行编码和解码操作。与HtmlEncode()和HtmlDecode()方法一样,二者也是互为反操作。 UrlEncode()方法的语法格式为: Server.UrlEncode(url); 其中,url参数为表示URL字符串。 UrlDecode()方法的语法格式为: Server.UrlDecode(string); 其中,string参数为使用UrlDecode()方法编码后的URL字符串。

例如,Server.UrlEncode("http://www.abc.com/default.aspx?文件=1")的输出结果为: http%3a%2f%2fwww.abc.com%2fdefault.aspx%3f%e6%96%87%e4%bb%b6%3d1 可以看出,UrlEncode()方法将URL中的特殊符号(如反斜杠、冒号、问号、等号)和中文等进行了重新编码处理。UrlEncode()方法在URL地址中存在中文变量名或变量值时特别有用。

4.5 实训 【实训4-1】代码 【实训4-2】代码

再见