第 11 章 Web 应用开发
-
Upload
kimberley-curry -
Category
Documents
-
view
129 -
download
11
description
Transcript of 第 11 章 Web 应用开发
第第 1111 章 章 WebWeb 应用开发应用开发
王德俊
上海交通大学继续教育学院
应用软件开发( C# ) 第 11 章 Web 应用开发
第 11 章 Web 应用开发
11.1 关于 ASP.NET
11.2 Web 基础和多层程序体系结构
11.3 ASP.NET 控件和对象
11.4 ASP.NET 数据库应用程序
应用软件开发( C# ) 第 11 章 Web 应用开发
11.1 关于 ASP.NET
ASP ( Active Server Pages )是 Microsoft 公司于 1996 年 11 月推出的面向 WEB 应用程序开发的技术框架:
ASP 主要是由“ <%” 和“ %>” 括起来的代码嵌入到 HTML 中的一种技术。
ASP 代码是在服务器端执行,执行时无需编译,可以用任何的文本编辑器编写(如记事本等)。
ASP 可以通过内置的组件实现更强大的功能,如使用 ADO 可以轻松地访问数据库。
应用软件开发( 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 应用程序,大大简化了编码的过程。
应用软件开发( 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 标准的支持提供在异构网络环境下获取远程服务、连接远程设备、交互远程应用的编程界面
应用软件开发( C# ) 第 11 章 Web 应用开发
WebForm ( Web 窗体)文件的扩展名为 .aspx ,它包含 Web 页面的GUI 。通过增加各种 Web 控件,如:卷标、文本框、图像、按钮以及其他 GUI 组件,可以定制 Web 窗体, Web 窗体文件表示要发送到客户端浏览器的 Web 页面
VS 创建的 ASPX 文件都有一个相应的类,放在对应的 .cs 文件中,类中包含事件处理器、初始化代码、使用工具方法以及其他相关支持代码,这个文件称为代码隐藏文件,它提供 ASPX 文件的编程实现。
11.1 关于 ASP.NET
应用软件开发( C# ) 第 11 章 Web 应用开发
11.2 Web 基础和多层程序体系结构
Web 基础:
在最简单的形式中, Web 页面就是一个 HTML 文档,它描述 Web 浏览器如何显示和格式化文档的内容
当用户点击超链接时, Web 服务器会定位所请求的 Web 页面并将它发送到用户的 Web 浏览器中
ASP.NET 产生的 Web 页面是以 XML 为基础的 XHTML 文档
应用软件开发( C# ) 第 11 章 Web 应用开发
URI 和 URL :
URI ( Uniform Resource Identifier ,统一资源标识符)用以标识Internet 上的资源,以 http:// 开头的 URI ,被称为 URL ( Uniform
Resource Locator ,统一资源定位器),常见的 URL 会指向文件、目录或者执行任务的服务器端代码,比如数据库查找、 Internet搜索和业务应用处理。
11.2 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 基础和多层程序体系结构
应用软件开发( C# ) 第 11 章 Web 应用开发
发出请求和接收响应:
给定 URL 时, Web 浏览器会利用 HTTP 取得对应地址的 Web 页面,请求和响应过程如图:
11.2 Web 基础和多层程序体系结构
应用软件开发( C# ) 第 11 章 Web 应用开发
多层程序体系结构:
基于 Web 的程序是多层程序(有时称为 n 层),多层将功能分为若干层(即:逻辑功能组),尽管这些层可以位于同一台计算机中,但考虑到安全性和可伸缩性,基于 Web 的程序的层通常放在单独的计算机上。如图为三层 Web 程序的基本结构。
11.2 Web 基础和多层程序体系结构
应用软件开发( C# ) 第 11 章 Web 应用开发
信息层(底层)维护程序中的数据,该层通常用关系数据库管理系统保存数据
中间层实现业务逻辑,充当信息层数据与客户端的中介,负责处理客户请求、执行业务规则,并向客户呈现内容。 控制程序的客户与数据之间的交互。
11.2 Web 基础和多层程序体系结构
顶层客户端是程序的用户界面,收集用户的输入并显示输出,用户通过用户界面(通常为 Web 浏览器)、键盘和鼠标直接与程序交互
应用软件开发( C# ) 第 11 章 Web 应用开发
【例 11.1 】 基于 C# 的简单 ASP.NET 应用程序 : 功能是将文本框中输入的字符串显示在网页上。
11.2 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 基础和多层程序体系结构
应用软件开发( C# ) 第 11 章 Web 应用开发
11.2 Web 基础和多层程序体系结构
应用软件开发( C# ) 第 11 章 Web 应用开发
( 2 )向 Web站点中添加一个 Web Form :右键 Solution Explorer 中的工程名并选择 Add New Item ,选择Web Form ,点击 Add 按钮
11.2 Web 基础和多层程序体系结构
应用软件开发( C# ) 第 11 章 Web 应用开发
( 3 )在生成界面的“ Solution Explorer” 中右击“ Default.aspx”节点,在弹出的菜单中选择“ View Designer”视图设计器,或点击“ Default.aspx” 编辑视图下面的“ Design” 设计,可打开页面的视图设计器。
( 4 )将工具箱中的三个控件拖到设计界面中,这三个控件分别是 Label 、 TextBox 和 Button 控件,并适当设置它们的属性和位置:
11.2 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 基础和多层程序体系结构
应用软件开发( C# ) 第 11 章 Web 应用开发
说明:
.NET平台采用了界面和代码分开的策略,即网页文件放在 .aspx 文件中,而 C# 代码则放在 .aspx.cs 文件中。
.aspx.cs 文件是与页面元素相关联的 C# 文件,是 ASP.NET 代码隐藏的地方。对 ASP.NET 应用程序来说,这里就是程序员的“用武之地”。
当用户将控件拖到 Web 窗体设计界面时,会自动生成相应的 HTML 代码和 C# 代码。这为 Web 应用程序的可视化界面设计提供极大的便利。
11.2 Web 基础和多层程序体系结构
应用软件开发( C# ) 第 11 章 Web 应用开发
11.3 ASP.NET 控件和对象11.3.1 ASP.NET 控件
11.3.2 ASP.NE 常用对象
应用软件开发( 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控件
应用软件开发( C# ) 第 11 章 Web 应用开发
1. Response 对象
2. Request 对象
3. Server 对象
4. Session 对象和 Application 对象
11.3 ASP.NET控件和对象11.3.2 ASP.NET常用对象
应用软件开发( 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");
应用软件开发( 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属性搭配使用
应用软件开发( 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");
应用软件开发( C# ) 第 11 章 Web 应用开发
4. Session4. Session 对象和对象和 ApplicationApplication 对象对象
共同点:都是用于在服务器端保存数据和对象 ;都是 object 类型的数组,使用方法相同,可以通过对象名或下标引用其中的对象 ;通常用于保存用户信息、实现会话跟踪等功能。
不同点:作用范围不同 :Session 对象的作用范围是一次会话期内(简单来说,就是从打开
网页到关闭网页这个时间段),只为一个用户所拥有;Application 对象的作用范围则是 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
应用软件开发( C# ) 第 11 章 Web 应用开发
本讲小结
关于 ASP.NET
Web 基础和多层程序体系结构
ASP.NET 控件和对象