280 likes | 415 Views
第 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 中的一种技术。
E N D
第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中的一种技术。 • ASP代码是在服务器端执行,执行时无需编译,可以用任何的文本编辑器编写(如记事本等)。 • ASP可以通过内置的组件实现更强大的功能,如使用ADO可以轻松地访问数据库。
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应用程序,大大简化了编码的过程。
11.1 关于ASP.NET • 相对ASP而言,ASP.NET具有的主要优势: • 实现界面和代码的分开 • 编译执行 • 使用强类型(strongly-type)编程语言 • ASP.NET主要包括两种编程模型: • WebForm:提供了建立功能强大、外观丰富的基于表单(Form)的可编程Web页面,几乎与VB.NET、C#.NET的窗体开发界面是一样的 • WebService :通过对HTTP、XML、SOAP、WSDL等Internet标准的支持提供在异构网络环境下获取远程服务、连接远程设备、交互远程应用的编程界面
11.1 关于ASP.NET • WebForm(Web窗体)文件的扩展名为.aspx,它包含Web页面的GUI。通过增加各种Web控件,如:卷标、文本框、图像、按钮以及其他GUI组件,可以定制Web窗体,Web窗体文件表示要发送到客户端浏览器的Web页面 • VS创建的ASPX文件都有一个相应的类,放在对应的.cs文件中,类中包含事件处理器、初始化代码、使用工具方法以及其他相关支持代码,这个文件称为代码隐藏文件,它提供ASPX文件的编程实现。
11.2 Web基础和多层程序体系结构 • Web基础: • 在最简单的形式中,Web页面就是一个HTML文档,它描述Web浏览器如何显示和格式化文档的内容 • 当用户点击超链接时,Web服务器会定位所请求的Web页面并将它发送到用户的Web浏览器中 • ASP.NET产生的Web页面是以XML为基础的XHTML文档
11.2 Web基础和多层程序体系结构 • URI和URL: • URI(Uniform Resource Identifier,统一资源标识符)用以标识Internet上的资源,以http://开头的URI,被称为URL( Uniform Resource Locator,统一资源定位器),常见的URL会指向文件、目录或者执行任务的服务器端代码,比如数据库查找、Internet搜索和业务应用处理。
11.2 Web基础和多层程序体系结构 • URL的组成 • URL包含的信息会引导浏览器到达用户希望访问的资源。Web服务器使得Web客户能够获得对应的资源。流行的Web服务器包括Microsoft的Internet Information Server(IIS)和Apache的HTTP Server • 如:http://moodle.sjtuonline.com/course/view.php,其中http://标识用http协议获得资源,moodle.sjtuonline.com是资源所在的Web服务器计算机(主机)的名称,moodle.sjtuonline.com会被翻译成IP地址,/course/view.php表示Web服务器上的资源位置和文件名称,位置通常是一个虚拟目录,从而隐藏资源的真实位置。
11.2 Web基础和多层程序体系结构 • 发出请求和接收响应: • 给定URL时,Web浏览器会利用HTTP取得对应地址的Web页面,请求和响应过程如图:
11.2 Web基础和多层程序体系结构 • 多层程序体系结构: • 基于Web的程序是多层程序(有时称为n层),多层将功能分为若干层(即:逻辑功能组),尽管这些层可以位于同一台计算机中,但考虑到安全性和可伸缩性,基于Web的程序的层通常放在单独的计算机上。如图为三层Web程序的基本结构。
11.2 Web基础和多层程序体系结构 顶层客户端是程序的用户界面,收集用户的输入并显示输出,用户通过用户界面(通常为Web浏览器)、键盘和鼠标直接与程序交互 中间层实现业务逻辑,充当信息层数据与客户端的中介,负责处理客户请求、执行业务规则,并向客户呈现内容。 控制程序的客户与数据之间的交互。 信息层(底层)维护程序中的数据,该层通常用关系数据库管理系统保存数据
【例11.1】基于C#的简单ASP.NET应用程序:功能是将文本框中输入的字符串显示在网页上。【例11.1】基于C#的简单ASP.NET应用程序:功能是将文本框中输入的字符串显示在网页上。 11.2 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基础和多层程序体系结构
11.2 Web基础和多层程序体系结构 • (2)向Web站点中添加一个Web Form:右键Solution Explorer中的工程名并选择Add New Item,选择Web Form,点击Add按钮
11.2 Web基础和多层程序体系结构 • (3)在生成界面的“Solution Explorer”中右击“Default.aspx”节点,在弹出的菜单中选择“View Designer”视图设计器,或点击“Default.aspx” 编辑视图下面的“Design”设计,可打开页面的视图设计器。 • (4)将工具箱中的三个控件拖到设计界面中,这三个控件分别是Label、TextBox和Button控件,并适当设置它们的属性和位置:
(5)在设计界面中,双击【访问控件】按钮,即可进入到该按钮的事件处理函数中,实际上是在Default.aspx.cs文件中生成了Button1_Click函数。在该函数中,添加下列代码:(5)在设计界面中,双击【访问控件】按钮,即可进入到该按钮的事件处理函数中,实际上是在Default.aspx.cs文件中生成了Button1_Click函数。在该函数中,添加下列代码: Label1.Text = TextBox1.Text; Label1.Font.Size = 20; (6)运行程序MyFirstWebApp。方法是:按【Ctrl】+【F5】按钮直接运行,也可以单击快捷菜单栏上的“启动调试”按钮(相当于按【F5】)。在打开的IE浏览器界面的文本框中输入一些字符串,然后单击【访问控件】按钮。 11.2 Web基础和多层程序体系结构
说明: .NET平台采用了界面和代码分开的策略,即网页文件放在.aspx文件中,而C#代码则放在.aspx.cs文件中。 .aspx.cs文件是与页面元素相关联的C#文件,是ASP.NET代码隐藏的地方。对ASP.NET应用程序来说,这里就是程序员的“用武之地”。 当用户将控件拖到Web窗体设计界面时,会自动生成相应的HTML代码和C#代码。这为Web应用程序的可视化界面设计提供极大的便利。 11.2 Web基础和多层程序体系结构
11.3 ASP.NET控件和对象 • 11.3.1 ASP.NET控件 • 11.3.2 ASP.NE常用对象
11.3 ASP.NET控件和对象 11.3.1 ASP.NET控件 • 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.2 ASP.NET常用对象 1. Response对象 2. Request对象 3. Server对象 4. Session对象和Application对象
1. 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");
2. 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属性搭配使用
3. 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");
4. Session对象和Application对象 • 共同点: • 都是用于在服务器端保存数据和对象; • 都是object类型的数组,使用方法相同,可以通过对象名或下标引用其中的对象; • 通常用于保存用户信息、实现会话跟踪等功能。 • 不同点: • 作用范围不同: • Session对象的作用范围是一次会话期内(简单来说,就是从打开网页到关闭网页这个时间段),只为一个用户所拥有; • Application对象的作用范围则是Web服务器的一次生存期(从启动服务器到关闭服务器这个时间段),可为所有用户共享。
4. Session对象和Application对象 • 下面两条语句的作用是将字符串“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
本讲小结 关于ASP.NET Web基础和多层程序体系结构 ASP.NET控件和对象