第 11 章 Web 应用开发

28
11 11 Web Web 第第第第 第第第第 王王王 王王王王王王王王王王王王

description

第 11 章 Web 应用开发. 王德俊 上海交通大学继续教育学院. 第 11 章 Web 应用开发. 11.1 关于 ASP.NET 11.2 Web 基础和多层程序体系结构 11.3 ASP.NET 控件和对象 11.4 ASP.NET 数据库应用程序. 11.1 关于 ASP.NET. ASP ( Active Server Pages ) 是 Microsoft 公司于 1996 年 11 月推出的面向 WEB 应用程序开发的技术框架: ASP 主要是由“ ” 括起来的代码嵌入到 HTML 中的一种技术。 - PowerPoint PPT Presentation

Transcript of 第 11 章 Web 应用开发

Page 1: 第 11 章  Web 应用开发

第第 1111 章 章 WebWeb 应用开发应用开发

王德俊

上海交通大学继续教育学院

Page 2: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

第 11 章 Web 应用开发

11.1 关于 ASP.NET

11.2 Web 基础和多层程序体系结构

11.3 ASP.NET 控件和对象

11.4 ASP.NET 数据库应用程序

Page 3: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

11.1 关于 ASP.NET

ASP ( Active Server Pages )是 Microsoft 公司于 1996 年 11 月推出的面向 WEB 应用程序开发的技术框架:

ASP 主要是由“ <%” 和“ %>” 括起来的代码嵌入到 HTML 中的一种技术。

ASP 代码是在服务器端执行,执行时无需编译,可以用任何的文本编辑器编写(如记事本等)。

ASP 可以通过内置的组件实现更强大的功能,如使用 ADO 可以轻松地访问数据库。

Page 4: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

11.1 关于 ASP.NET

ASP.NET 则是从 HTML 发展到 ASP ,然后伴随着微软的 .NET 技术的推出而出现的:

ASP.NET 不是 ASP 的简单升级,而是全新一代的动态网页开发系统,用于在一台 Web 服务器上建立强大的应用程序。

是 Microsoft.NET 技术的一个组成部分,是 ASP 和 .NET 技术结合的产物。

在 Microsoft Visual Studio 2005~2013 中,利用 .NET 提供的控件,可快速开发 ASP.NET 应用程序,大大简化了编码的过程。

Page 5: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

11.1 关于 ASP.NET

相对 ASP 而言, ASP.NET 具有的主要优势:

实现界面和代码的分开

编译执行

使用强类型( strongly-type )编程语言

ASP.NET 主要包括两种编程模型:

WebForm :提供了建立功能强大、外观丰富的基于表单 (Form) 的可编程Web 页面,几乎与 VB.NET 、 C#.NET 的窗体开发界面是一样的

WebService :通过对 HTTP 、 XML 、 SOAP 、 WSDL 等 Internet 标准的支持提供在异构网络环境下获取远程服务、连接远程设备、交互远程应用的编程界面

Page 6: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

WebForm ( Web 窗体)文件的扩展名为 .aspx ,它包含 Web 页面的GUI 。通过增加各种 Web 控件,如:卷标、文本框、图像、按钮以及其他 GUI 组件,可以定制 Web 窗体, Web 窗体文件表示要发送到客户端浏览器的 Web 页面

VS 创建的 ASPX 文件都有一个相应的类,放在对应的 .cs 文件中,类中包含事件处理器、初始化代码、使用工具方法以及其他相关支持代码,这个文件称为代码隐藏文件,它提供 ASPX 文件的编程实现。

11.1 关于 ASP.NET

Page 7: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

11.2 Web 基础和多层程序体系结构

Web 基础:

在最简单的形式中, Web 页面就是一个 HTML 文档,它描述 Web 浏览器如何显示和格式化文档的内容

当用户点击超链接时, Web 服务器会定位所请求的 Web 页面并将它发送到用户的 Web 浏览器中

ASP.NET 产生的 Web 页面是以 XML 为基础的 XHTML 文档

Page 8: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

URI 和 URL :

URI ( Uniform Resource Identifier ,统一资源标识符)用以标识Internet 上的资源,以 http:// 开头的 URI ,被称为 URL ( Uniform

Resource Locator ,统一资源定位器),常见的 URL 会指向文件、目录或者执行任务的服务器端代码,比如数据库查找、 Internet搜索和业务应用处理。

11.2 Web 基础和多层程序体系结构

Page 9: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

URL 的组成

URL 包含的信息会引导浏览器到达用户希望访问的资源。 Web 服务器使得Web 客户能够获得对应的资源。流行的 Web 服务器包括Microsoft 的 Internet Information Server ( IIS )和 Apache 的 HTTP

Server

如: http://moodle.sjtuonline.com/course/view.phpcourse/view.php ,其中 http://标识用 http协议获得资源, moodle.sjtuonline.com 是资源所在的 Web 服务器计算机(主机)的名称, moodle.sjtuonline.com 会被翻译成 IP 地址,/course/view.phpcourse/view.php 表示 Web 服务器上的资源位置和文件名称,位置通常是一个虚拟目录,从而隐藏资源的真实位置。

11.2 Web 基础和多层程序体系结构

Page 10: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

发出请求和接收响应:

给定 URL 时, Web 浏览器会利用 HTTP 取得对应地址的 Web 页面,请求和响应过程如图:

11.2 Web 基础和多层程序体系结构

Page 11: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

多层程序体系结构:

基于 Web 的程序是多层程序(有时称为 n 层),多层将功能分为若干层(即:逻辑功能组),尽管这些层可以位于同一台计算机中,但考虑到安全性和可伸缩性,基于 Web 的程序的层通常放在单独的计算机上。如图为三层 Web 程序的基本结构。

11.2 Web 基础和多层程序体系结构

Page 12: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

信息层(底层)维护程序中的数据,该层通常用关系数据库管理系统保存数据

中间层实现业务逻辑,充当信息层数据与客户端的中介,负责处理客户请求、执行业务规则,并向客户呈现内容。 控制程序的客户与数据之间的交互。

11.2 Web 基础和多层程序体系结构

顶层客户端是程序的用户界面,收集用户的输入并显示输出,用户通过用户界面(通常为 Web 浏览器)、键盘和鼠标直接与程序交互

Page 13: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

【例 11.1 】 基于 C# 的简单 ASP.NET 应用程序 : 功能是将文本框中输入的字符串显示在网页上。

11.2 Web 基础和多层程序体系结构

Page 14: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

创建步骤如下:

( 1 )启动 Visual Web Developer 2010 ,选择“ File”|“New Web Site” ,打开“ New Web Site” 新建网站对话框。在此对话框的“项目类型”框中选择“ Visual C#”项,在“ templates” 模板框中选择“ ASP.NET Empty Web Site” ,即: ASP.NET 空的 Web 网站, Web Location :的组合框中选择“ File System” ,表示创建在本地计算机上测试的新 Web站点,将程序名设置为 WebSite5 :

11.2 Web 基础和多层程序体系结构

Page 15: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

11.2 Web 基础和多层程序体系结构

Page 16: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

( 2 )向 Web站点中添加一个 Web Form :右键 Solution Explorer 中的工程名并选择 Add New Item ,选择Web Form ,点击 Add 按钮

11.2 Web 基础和多层程序体系结构

Page 17: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

( 3 )在生成界面的“ Solution Explorer” 中右击“ Default.aspx”节点,在弹出的菜单中选择“ View Designer”视图设计器,或点击“ Default.aspx” 编辑视图下面的“ Design” 设计,可打开页面的视图设计器。

( 4 )将工具箱中的三个控件拖到设计界面中,这三个控件分别是 Label 、 TextBox 和 Button 控件,并适当设置它们的属性和位置:

11.2 Web 基础和多层程序体系结构

Page 18: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

( 5 )在设计界面中,双击【访问控件】按钮,即可进入到该按钮的事件处理函数中,实际上是在 Default.aspx.cs 文件中生成了 Button1_Click函数。在该函数中,添加下列代码:

Label1.Text = TextBox1.Text;

Label1.Font.Size = 20;

( 6 )运行程序 MyFirstWebApp 。方法是:按【 Ctrl 】 +【 F5】按钮直接运行,也可以单击快捷菜单栏上的“启动调试”按钮(相当于按【 F5】)。在打开的 IE 浏览器界面的文本框中输入一些字符串,然后单击【访问控件】按钮。

11.2 Web 基础和多层程序体系结构

Page 19: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

说明:

.NET平台采用了界面和代码分开的策略,即网页文件放在 .aspx 文件中,而 C# 代码则放在 .aspx.cs 文件中。

.aspx.cs 文件是与页面元素相关联的 C# 文件,是 ASP.NET 代码隐藏的地方。对 ASP.NET 应用程序来说,这里就是程序员的“用武之地”。

当用户将控件拖到 Web 窗体设计界面时,会自动生成相应的 HTML 代码和 C# 代码。这为 Web 应用程序的可视化界面设计提供极大的便利。

11.2 Web 基础和多层程序体系结构

Page 20: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

11.3 ASP.NET 控件和对象11.3.1 ASP.NET 控件

11.3.2 ASP.NE 常用对象

Page 21: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

ASP.NET 控件主要分为两大类: Web 窗体控件和HTML 控件:

Web 窗体控件是服务器端控件, HTML 控件是客户端控件:Web 窗体控件在服务器端运行,不要求客户端浏览器支持 Web 窗体控件(如不要求安装 .NET Framework 等),浏览器显示窗体控件运行后输出的结果;

HTML 控件是客户端控件,只有浏览器支持这些控件,它们才能运行。

Web 窗体控件是以 C# 为脚本语言,功能十分强大。 HTML控件则以 javascript 等为脚本语言,功能较前者弱。在设计界面上,当双击 Web 窗体控件时,会自动在 .cs 文件中形成并打开控件的 Click 事件处理函数( C# 语言),以供用户编写代码;当双击 HTML 控件时,则会自动在 .aspx 文件中形成并打开控件的 onclick 事件处理函数( javascript 语言)。

11.3 ASP.NET控件和对象11.3.1 ASP.NET控件

Page 22: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

1. Response 对象

2. Request 对象

3. Server 对象

4. Session 对象和 Application 对象

11.3 ASP.NET控件和对象11.3.2 ASP.NET常用对象

Page 23: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

1. Response1. Response 对象对象

Response 对象封装了返回到 http 客户端的输出。系统根据用户的请求(打开一个页面)自动创建一个 Response 对象。该对象用于向客户端传递或输出相关的信息,包括用户定义的内容、内容的报头、服务器的状态等。向客户端输出指定的内容,由客户端解释执行。例如: Response.Write("今天的日期时间: "); Response.Write(DateTime.Now.ToString());重定向到指定的 URL 。例如:

Response.Redirect("http://www.sohu.com/"); //重定向到“搜狐”主页

重定向到 WebForm1.aspx 页面的同时传递字符串“ abc” : Response.Redirect("WebForm1.aspx?strname=" + "abc");

Page 24: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

2. Request2. Request 对象 对象

Request 对象封装了由 web 浏览器或其他客户端生成的 http 请求的细节(参数,属性和数据),当客户端浏览器向 ASP.NET 服务器端程序发出请求时,服务器端程序将针对请求的答应信息封装在Request 对象中,客户端通过调用 Request 对象的属性和方法可以获取想要的信息。

–例如,下面语句重定向到 WebForm1.aspx 页面,同时传递三个信息项:»Response.Redirect("WebForm1.aspx?s1=str1&s2=str2&s3=str3");

–在 WebForm1.aspx 页面中可以用下面三条语句分别获取这三项信息:»string s;»s = Request.QueryString["s1"]; // 结果 s = " str1"»s = Request.QueryString["s2"]; // 结果 s = " str2"»s = Request.QueryString["s3"]; // 结果 s = " str3“

–QueryString属性通常与 Response 对象的 Redirect属性搭配使用

Page 25: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

3. Server3. Server 对象对象

Server 对象封装了服务器的相关信息,利用该对象提供的方法可以获取。

MapPath() 方法返回与 Web 服务器上的指定虚拟路径相对应的物理文件路径,如 :–Server.MapPath(“\\WebForm1.aspx”) 返回 “ D:\VS2008\ 第 11 章 \test1\test1\WebForm1.aspx” 。

Transfer() 方法该方法与 Response 对象的 Redirect() 方法具有相同调用方法。下面两个语句的作用等效:

»Response.Redirect("WebForm1.aspx?s1=str1&s2=str2");»Server.Transfer("WebForm1.aspx?s1=str1&s2=str2");

Page 26: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

4. Session4. Session 对象和对象和 ApplicationApplication 对象对象

共同点:都是用于在服务器端保存数据和对象 ;都是 object 类型的数组,使用方法相同,可以通过对象名或下标引用其中的对象 ;通常用于保存用户信息、实现会话跟踪等功能。

不同点:作用范围不同 :Session 对象的作用范围是一次会话期内(简单来说,就是从打开

网页到关闭网页这个时间段),只为一个用户所拥有;Application 对象的作用范围则是 Web 服务器的一次生存期(从启

动服务器到关闭服务器这个时间段),可为所有用户共享。

Page 27: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

4. Session4. Session 对象和对象和 ApplicationApplication 对象 对象 下面两条语句的作用是将字符串“ Petter” 和“ C_sharp”依次添加到 Session 对象中:

Session["username"] = "Petter";

Session["userpass"] = "C_sharp";

这两个字符串在 Session 中的“名称”分别为 username 和 userpass ,通过它们的名称即可访问相应的数据和对象。例如,对于下列语句:

Response.Write(Session["username"] + "<br>"); // 执行后将输出: Petter

Response.Write(Session["userpass"] + "<br>"); // 执行后将输出: C_sharp

Page 28: 第 11 章  Web 应用开发

应用软件开发( C# ) 第 11 章 Web 应用开发

本讲小结

关于 ASP.NET

Web 基础和多层程序体系结构

ASP.NET 控件和对象