1 / 84

9 ASP.NET 基础

9 ASP.NET 基础. 主要内容. 9.1 ASP.NET 简介 9.2 WEB 窗体 9.3 几个主要对象 9.4 ASP.Net 的数据绑定控件 DataList 控件 DataView 控件 GridView 控件. ASP.NET 简介. ASP.NET 是创建动态 Web 页的一种强大的服务器端新技术 它可 为World Wide Web站点或为企业内部互联网创建动态的可进行交互的HTML页面 采用面向对象的方法来构建动态 Web 应用程序 ASP.NET 可以用来建设门户网站,实现复杂的基于WEB的系统,电子邮件发送系统等

clover
Download Presentation

9 ASP.NET 基础

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 9 ASP.NET基础

  2. 主要内容 • 9.1 ASP.NET简介 • 9.2 WEB窗体 • 9.3 几个主要对象 • 9.4 ASP.Net的数据绑定控件 • DataList 控件 • DataView控件 • GridView控件

  3. ASP.NET 简介 • ASP.NET是创建动态Web页的一种强大的服务器端新技术 • 它可为World Wide Web站点或为企业内部互联网创建动态的可进行交互的HTML页面 • 采用面向对象的方法来构建动态 Web 应用程序 • ASP.NET可以用来建设门户网站,实现复杂的基于WEB的系统,电子邮件发送系统等 • 可在 Internet 或 Intranet 上部署 ASP.NET Web 应用程序

  4. ASP.NET 的优点 • 与浏览器无关 • 将业务逻辑代码与显示逻辑分开 • 新的集成开发环境 • 简单性和易学性 • 用户帐户和角色 • 多处理器环境的可靠性 • 可扩展性 • 高效的可管理性 • 执行效率的大幅提高 • 易于配置和部署

  5. ASP.NET 的功能 7-1 • 支持多种编程语言 ASP.NET 支 持 VB.NET C# JScript 其他语言 Web 应用程序

  6. ASP.NET 的功能 7-2 • 代码编译执行 Microsoft 中间语言 (MSIL 或 IL) 编译 _______ _______ _______ ______ 代码 JIT 编译器 机器语言 分别编译 IL 的每一部分

  7. ASP.NET 的功能 7-3 • 缓存机制 缓存 页面级的缓存 –缓存整个页面 整个页面 缓存 片段缓存 – 缓存页面的一部分 页面一部分

  8. ASP.NET 的功能 7-4 • ASP.NET技术利用面向对象的语言如C#进行后台开发,它包括一系列很有用的类和命名空间 命名空间 类- HtmlControl 相似的功能 类- HtmlAnchor 类- HtmlForm 在逻辑上将具有相似功能的类进行分组

  9. ASP.NET 的功能 7-5 • ASP.NET 服务器控件是在服务器上运行并封装用户界面及其他相关功能的组件,这些控件提供了各种属性、方法和事件,可简化构建强大的 Web 应用程序的过程 HTML 控件 Web 控件 属于System.Web.UI.WebControls 命名空间,并派生 自 WebControl 基类 属于 System.Web.UI.HtmlControls 命名空间并派生自 HtmlControl 基类 数据绑定控件 扩展控件 验证控件 内部控件

  10. ASP.NET 的功能 7-6 • ASP.NET 允许使用和创建 Web 服务 • Web服务是通过标准Web协议访问的可编程的应用程序逻辑 • Web服务利用XML和HTTP作为信息通道的一部分,ASP.NET使其抽象化,使得构建基于SOAP的应用程序简单到只需编写应用程序逻辑 • 改进的安全性:ASP.NET 与 IIS、.NET 框架和操作系统所提供的基础安全服务配合使用,共同提供一系列身份验证和授权机制

  11. ASP.NET 的功能 7-7 • 更高的可扩展性: • 可在单独的机器或数据库的单独进程中维护会话状态,从而允许跨服务器的会话 • 状态管理: • ASP.NET能够通过cookie、查询字符串、应用程序、Session等 进行有效的状态管理 • 配置和部署 • 将配置信息存储在基于 XML 的配置文件中,使得ASP.NET应用程序更易于部署

  12. ASP.NET 的工作原理 3-1 • ASP.NET 文件的体系结构

  13. ASP.NET 的工作原理 3-2 • 文件的体系结构(续)

  14. ASP.NET 的工作原理 3-3 将页面内容编译为中间语言(IL) 解释 .aspx页 查询服务器上的网页 存储已预编译页面的本机代码版本 存储整个页面,包括对象和数据 存储一些项目,以降低重建成本。

  15. 主要内容 • 9.1 ASP.NET简介 • 9.2 WEB窗体 • 9.3 几个主要对象 • 9.4 ASP.Net的数据绑定控件 • DataList 控件 • DataView控件 • GridView控件

  16. ASP.NET Web 窗体 • Web 窗体是一项 ASP.NET 功能,可以使用它为 Web 应用程序创建用户界面 • Web 窗体还提供了一个丰富的控件集,使用支持 .NET 的语言(如 Visual Basic .NET 和 Visual C# 等)可对这些控件编程 • 通过使用Web 窗体上的各种服务器控件,可在 ASP.NET 网站上检索和更新信息

  17. Web 窗体的属性 2-1 • Web 窗体的扩展名为 .aspx • Web 窗体将 Web 应用程序分为两部分: • 可视化组件 • 用户界面编码逻辑 • Web 窗体中包括代码声明块 • 包含 HTML 控件和服务器 控件 • Web 窗体有各种指令来控制编译过程

  18. Web 窗体的属性 2-2 • @Page 指令定义一些特定于页面的属性,ASP.NET 页面解析器和编译器将使用这些属性 • 设置runat="server" 属性可确保在服务器端执行Web窗体 例如:<%@Page language="c#" Codebehind="LoginForm.aspx.cs" AutoEventWireup="false" Inherits="Example1.WebLogionForm" %> 例如:<Form runat="server"> </Form>

  19. Web 窗体的功能 • 实现多样式的 Web 用户界面 • 客户端与服务器的分离 • 事件驱动的编程模型 • .NET Framework 公共语言运行库支持 • 独立于浏览器的应用程序 • 直观、一致的对象模型 • 服务器的可扩展性

  20. 务 器 Web 窗体的生命周期 已处理 • 一个往返周期 信息发送给服务器 Web 窗体 往返周期 信息回送至浏览器 浏览器 删除页面信息 已重新创建页面

  21. Web 窗体的 IDE 菜单栏和工具栏 • Web 窗体的 IDE 解决方案资源管理器 工具箱 “属性”窗口 服务器资源管理器

  22. 创建 Web 应用程序 • 在 .NET 环境中使用 Visual C# 构建一个ASP.NET Web 应用程序 按照提供的名称创建解决方案和项目,同时还创建了默认引用和文件 已创建虚拟目录

  23. 默认的 Web 应用程序文件

  24. Web 应用程序示例3-1 从 Web 控件工具箱中拖出两个标签控件 从 Web 控件工具箱中拖出两个文本框 从 Web 控件工具箱中拖出一个按钮 拖出一个标签以显示消息

  25. Web 应用程序示例 3-2 检查“姓名”字段中的Null 值 private void btnSubmit_Click(object sender, System.EventArgs e) { // 检查”姓名“字段中的 Null 值 if((txtName.Text.Trim() == “” || (txtName.Text == null)) { lblMessage.Text = “请输入姓名!!”; } else { // 检查年龄是否介于 1 和 100 之间 if ((Convert.ToInt32(txtAge.Text) < 18) || (Convert.ToInt32(txtAge.Text) > 100)) { lblMessage.Text="年龄无效!!”; } else { // 成功验证和欢迎消息 lblMessage.Text="欢迎"+txtName.Text; } } } 检查指定范围中年龄的值 如果成功,则显示欢迎消息。

  26. Web 应用程序示例3-3 输入姓名 输入年龄 单击“提交” 显示欢迎消息

  27. 事件处理程序 • ASP.NET 页框架在不同的阶段处理 Web 窗体页时都可能引发事件,并执行响应事件的事件处理程序 • 事件处理程序实际上就是一个子程序,执行任何给定事件的相关代码 • ASP.NET 页面因其事件机制而显得格外新颖独特

  28. Web 窗体页的生命周期 阶段 引发的事件 初始化页面 Page_Init 加载页面 在页面处理的某些特定阶段,页面会自动触发一些事件。而与服务器控件相关联的其他事件则在服务器端触发并得到处理 Page_Load 验证 Validate 事件处理 Form event handler 页面显示之前 Page_PreRender 页面卸载 Page_Unload

  29. 主要内容 • 9.1 ASP.NET简介 • 9.2 WEB窗体 • 9.3 几个主要对象 • 9.4 ASP.Net的数据绑定控件 • DataList 控件 • DataView控件 • GridView控件 Response 对象 Request 对象 Server 对象

  30. HttpResponse 9-1 • HttpResponse 对象允许开发人员对当前页面的输出流进行访问 • 此类可用于: • 从输出页面读取/写入文本 • 将用户重新定向到另一个页面 • 有条件地结束应用程序连接 • 设置/获取输出内容类型 • 检查客户端与服务器的连接状态 • 读取/写入 Cookie

  31. HttpResponse:常用属性 9-2

  32. HttpResponse:常用属性 9-3

  33. HttpResponse:常用属性 9-4

  34. HttpResponse:常用属性 9-5

  35. HttpResponse:常用属性 9-6 • 打开 VS.NET IDE 并创建名为‘Example 1’ 的新项目 • 将默认 Web 窗体 (.aspx) 文件从‘Webform1.aspx’重命名为‘ResponseProperties.aspx’ • 通过向 Web 窗体添加两个标签为 Web 窗体设计界面 HttpResponse 对象不同属性的用法 ResponseProperties.aspx 的 GUI 按照表中的内容设置ResponseProperties.aspx 上控件的属性 演示:示例 1

  36. HttpResponse:常用属性 9-7 private void Page_Load(object sender, System.EventArgs e) { 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 + " ], "; } 将下列代码片段添加到页面的 Load 事件中 编译并运行示例

  37. HttpResponse:演示:属性 9-8 private void Page_Load(object sender, System.EventArgs e) { lblResponse.Text=lblResponse.Text + "[ HttpResponse. ContentType =" + HttpContext.Current.Response.ContentType + " ], "; } 显示 Response 对象的不同属性值

  38. HttpResponse:演示:方法 9-9 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.txtName_End.Text + ", 欢迎学习HttpResponse!!<B> 这里采用Response.End()方法</B>"); Response.End(); } } private void btnSubmit_Click(object sender, System.EventArgs e) { if(txtUserNm.Text !="") HttpContext.Current.Response.Write("您好 " + txtUserNm.Text + ", 欢迎学习HttpResponse!!<B>这里没有采用Response.End() 方法</B>"); }

  39. HttpRequest 5-1 服务器域名 www.google.com 这是 HTTP 请求 URL,资源的名称 响应 这是 HTTP 响应 服务器

  40. HttpRequest 5-2 • HttpRequest 对象封装客户端请求页面或提交表单时提供的信息。这些信息包括: • 识别用户和浏览器的 HTTP 变量 • 在客户端浏览器上为网站存储的 Cookie • 作为查询字符串或网页 <FORM> 部分的 HTML 控件值添加到 URL 的值 • 如果是安全保护网站,有关网站安全的信息

  41. HttpRequest 5-3 该表列出了 HttpRequest 对象的常用方法和属性

  42. HttpRequest 5-4 常用方法

  43. HttpRequest 5-5 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.Text + "[ HttpRequest.UserHostAddress=" + HttpContext.Current.Request.UserHostAddress + " ], "; lblRequest.Text=lblRequest.Text + "[ HttpRequest.UserHostName=" + HttpContext.Current.Request.UserHostName + " ], "; } 编译并运行程序

  44. HttpRequest 方法 private void Page_Load(object sender, System.EventArgs e) { HttpContext.Current.Response.Write("<B>"+ Server.HtmlEncode("MapPath(“RequestMethods.aspx”)")+ "的输出结果是: </B><br>" ); HttpContext.Current.Response.Write("<U>" + HttpContext.Current.Request.MapPath ("RequestMethods.aspx").ToString() + "</U><br><br>"); Response.Write("<B>" + Server.HtmlEncode("MapPath(“\\”)")+ "的输出结果是:<br> " + "</B><U>"+ HttpContext.Current.Request.MapPath("\\")+ "</U><br><br>"); Response.Write("<B>" + Server.HtmlEncode ("MapPath(“\\RequestMethods.aspx”)")+ "的输出结果是:<br> " + "</B><U>"+"<U>" + HttpContext.Current.Request.MapPath ("\\RequestMethods.aspx").ToString() + "</U>"); }

  45. HttpRequest:Querystring [提交前] private void btnSubmit_Click(object sender, System.EventArgs e) { string strURL=""; strURL="TargetPage.aspx?Nm=" + Server.UrlEncode(txtName.Text) + "&pwd="+ Server.UrlEncode(this.txtPwd.Text) ; HttpContext.Current.Response.Redirect(strURL); }

  46. HttpRequest:Querystring [提交后] private void Page_Load(object sender, System.EventArgs e) { string userNm=HttpContext.Current.Request.QueryString["Nm"]; HttpContext.Current.Response.Write("<Font color='Red'><B>欢迎 </B></Font>"); HttpContext.Current.Response.Write(userNm); Response.Write ("<B>你的密码是:</B>"+ Request.QueryString["pwd"]); }

  47. HttpServerUtility 对象 8-1 方法 Execute 方法和 Transfer 方法 HTML 编码方法 MapPath 方法 URLEncode 方法 HttpServerUtility 类包含处理 Web 请求的方法

  48. HttpServerUtility 对象 8-2 Execute 方法和 Transfer 方法均会停止当前页面的执行,并将用户带到由此方法的参数 URL 指定的页面 注意:Server 对象的 Transfer 方法和 Execute 方法仅用于Web 窗体 将 Transfer 方法的preserveForm 参数设置为True,可将窗体的QueryString、ViewState 等信息提供给目标窗体

  49. HttpServerUtility 对象 8-3 private void btnExec_Click(object sender, System.EventArgs e) { HttpContext.Current.Server.Execute ("ResponseProperties.aspx"); lblForExecute.Text="客户端调用 Execute 方法之后!!"; } private void btnTransfer_Click(object sender, System.EventArgs e) { HttpContext.Current.Server.Transfer ("RequestProperties.aspx"); lblForExecute.Text=“客户端调用 Transfer方法之后!!"; } 输出结果 演示:示例 6

  50. HttpServerUtility 对象 8-4 HTMLEncode 方法: • 为了确保所有浏览器均能在URL 字符串中正确地传送文本,需要使用HTML 编码。HTMLEncode 方法正是起这个作用的 • 例如,如果输入文本包含 “<”和“>”字符,此方法会将这些字符转换为其对等的 HTML 字符,即分别为 &lt 和 &gt,以便浏览器将这些字符正确地显示为“<” 和“>” HTMLEncode(String,TextWriter) HTMLEncode(String) 用于将输出存储为 TextWriter 流 要编码为 HTML 的文本 语法

More Related