《Web程序设计(第二版).ppt》由会员分享,可在线阅读,更多相关《Web程序设计(第二版).ppt(34页珍藏版)》请在金锄头文库上搜索。
1、互联网时代的编程互联网时代的编程Web 程 序 设 计 第第 1 章章 Web程序设计基础程序设计基础 第第 2 章章 Web程序及运行环境程序及运行环境 第第 3 章章 标记语言标记语言HTML规范规范 第第 4 章章 网页设计与制作网页设计与制作 第第 5 章章 客户端编程客户端编程 第第 6 章章 服务端编程服务端编程目 录第 1 章 Web程序设计基础1.1 计算模式与程序设计模式的演变计算模式与程序设计模式的演变1.2 Web及其工作原理及其工作原理1.3 Web相关技术相关技术 1.4 Web发展趋势发展趋势1.1 计算模式与程序设计模式的演变n单机运行与集中式计算模式单机运行与集
2、中式计算模式n客户客户/服务器(服务器(C/S)计算模式)计算模式n浏览器浏览器/服务器(服务器(B/S)计算模式)计算模式n软件设计与开发模式的演化软件设计与开发模式的演化单机运行与集中式计算模式n集中式计算集中式计算l计算所需要的数据和程序都是集中在一台计算机上进行的,称为集中式计算所需要的数据和程序都是集中在一台计算机上进行的,称为集中式计算,计算, 20世纪世纪60、70年代年代 l随着网络的发展,这种集中式计算往往形成一种由大型机和多个与之相随着网络的发展,这种集中式计算往往形成一种由大型机和多个与之相连的终端组成的网络结构,形成主机终端计算机网络连的终端组成的网络结构,形成主机终端
3、计算机网络 u20世纪世纪50年代初,美国军方建立的一个半自动地面防空系统,简称年代初,美国军方建立的一个半自动地面防空系统,简称SAGE。在在SAGE系统中,警戒雷达将天空中飞机目标的方位,距离和高度等信息通过系统中,警戒雷达将天空中飞机目标的方位,距离和高度等信息通过雷达录取设备自动录取下来,并转换成二进制的数字信号;然后通过数据通雷达录取设备自动录取下来,并转换成二进制的数字信号;然后通过数据通信设备传送到北美防空司令部的信息处理中心,以计算飞机的飞行航向、飞信设备传送到北美防空司令部的信息处理中心,以计算飞机的飞行航向、飞行速度和飞行的瞬时位置。行速度和飞行的瞬时位置。SAGE系统于系
4、统于1951年由美国麻省理工学院林肯实年由美国麻省理工学院林肯实验室开始为美国空军设计,验室开始为美国空军设计,1963年建成。年建成。n特点特点l安全性好、可靠性高、计算能力和数据存储能力强以及系统维护和管理安全性好、可靠性高、计算能力和数据存储能力强以及系统维护和管理的费用较低等优点的费用较低等优点 l大型机的初始投资较大、可移植性差、资源利用率低以及网络负载大等大型机的初始投资较大、可移植性差、资源利用率低以及网络负载大等缺点缺点 单机环境下的程序开发过程n源程序,编程人员利用开发工具(如源程序,编程人员利用开发工具(如C,Fortran)来编)来编写程序。写程序。n编译编译n连接连接客
5、户/服务器(C/S)计算模式 n构成构成l两层结构(两层结构(Client/Server,C/S) 20世纪世纪80年代流行年代流行u客户客户 安装客户端软件安装客户端软件p客户机完成与用户的交互任务,具有强壮的数据操纵和事务处理能力客户机完成与用户的交互任务,具有强壮的数据操纵和事务处理能力 u服务器服务器 安装服务器程序安装服务器程序p服务器负责数据管理,提供数据库的查询和管理、大规模的计算等服务服务器负责数据管理,提供数据库的查询和管理、大规模的计算等服务 l计算机局域网计算机局域网n优点优点l通过异种平台集成,能够协调现有的各种通过异种平台集成,能够协调现有的各种IT基础结构;分布式管
6、理;能充分发挥基础结构;分布式管理;能充分发挥客户端客户端PC的处理能力,安全、稳定、速度快,且可脱机操作的处理能力,安全、稳定、速度快,且可脱机操作 n不足不足l它必须在客户端安装大量的应用程序(客户端软件),开发成本较高,移植困难,它必须在客户端安装大量的应用程序(客户端软件),开发成本较高,移植困难,用户界面风格不统一,使用繁杂,不利于推广使用,维护复杂,升级麻烦,信息用户界面风格不统一,使用繁杂,不利于推广使用,维护复杂,升级麻烦,信息内容和形式单一,内容和形式单一,新技术不能轻易应用新技术不能轻易应用 l用户必须在局域网中,用户必须在局域网中,对对90年代蓬勃发展的互联网新技术不能适
7、应年代蓬勃发展的互联网新技术不能适应浏览器/服务器(B/S)计算模式n特点特点l基于基于Web的协同计算的协同计算l三层结构三层结构u浏览器浏览器uWeb服务器服务器u数据库服务器数据库服务器n优点优点l瘦客户机,减少客户端维护瘦客户机,减少客户端维护l突破局域网限制,将应用分布到整个互联网突破局域网限制,将应用分布到整个互联网Web应用系统n传统应用程序传统应用程序l一个一个exe, DLLl在操作系统下运行在操作系统下运行nWeb应用程序应用程序l主目录主目录+各种子目录各种子目录+网页文件网页文件l在在Web服务器上运行服务器上运行lWeb应用系统又称网站应用系统又称网站软件设计与开发模
8、式的演化n面向机器语言的开发模式面向机器语言的开发模式n软件的生命周期开发模式软件的生命周期开发模式l用户需求分析用户需求分析l系统设计系统设计l系统开发系统开发l系统测试系统测试l运行与维护运行与维护n原型法开发模式原型法开发模式n面向组件面向组件(Component)的模式的模式n面向方面编程(面向方面编程(Aspect Oriented Programming,AOP)模式)模式 n面向服务面向服务(SOA)的模式的模式1.2 Web及其工作原理 n什么是什么是Web ?nWeb的工作原理的工作原理nWeb服务器服务器什么是Web ?n什么是什么是Web ?l互联网互联网 = 所有上网的
9、主机所有上网的主机u各种服务器,如:各种服务器,如:Web服务,服务,FTP服务器,服务器,Email服务器,服务器,NNTP服服务器,应用服务器务器,应用服务器 ,etc.u客户机客户机lWWW =Web服务器,服务器,Web客户机客户机nWeb服务器服务器l网络操作系统网络操作系统lWeb服务组件,如服务组件,如Apache/Tomcat,IISnWeb客户机客户机lWeb浏览器,如浏览器,如IE,Mahton,Firefox浏览器/服务器(B/S)计算模式n构成构成l三层结构三层结构u客户端客户端Web浏览器浏览器uWeb服务器服务器u数据库服务器数据库服务器l互联网互联网n优点优点l具
10、有良好的开放性,利用单一的访问点,用户可以在任何地点使用系统;具有良好的开放性,利用单一的访问点,用户可以在任何地点使用系统;用户可以跨平台以相同的浏览器界面访问系统;因为在客户端只需要安装用户可以跨平台以相同的浏览器界面访问系统;因为在客户端只需要安装浏览器,基本上取消了客户端的维护工作,有效的减少了整个系统的运行浏览器,基本上取消了客户端的维护工作,有效的减少了整个系统的运行和维护成本。和维护成本。l跨越了局域网的限制,将应用分步到互联网跨越了局域网的限制,将应用分步到互联网 n不足不足Web的工作原理(1)在浏览器地址栏中,用户输入要访问的网页网址)在浏览器地址栏中,用户输入要访问的网页
11、网址URL (2)Web服务器根据服务器根据URL中指定的网址、路径和网页文件,中指定的网址、路径和网页文件,调出相应的调出相应的HTML、XML文档或文档或Jsp、Asp文件文件(3)根据文档类型,)根据文档类型,Web服务器决定是否执行文档中的服务服务器决定是否执行文档中的服务器脚本程序,还是直接将网页文件传送到客户端。器脚本程序,还是直接将网页文件传送到客户端。(4)浏览器显示下载的文档,即网页)浏览器显示下载的文档,即网页 Web服务器nWeb服务器计算机服务器计算机l安装网络操作系统安装网络操作系统l安装安装Web服务程序服务程序nWeb服务程序服务程序l接受客户端(浏览器)的接受客
12、户端(浏览器)的HTTP访问访问l产品产品uWindows服务器中的服务器中的IISuApache+TomcatWeb浏览器nHTML或或XML文档阅读器文档阅读器l符合符合HTML规范,标记规范,标记n脚本程序脚本程序l内置脚本程序引擎,解释执行客户端脚本程序内置脚本程序引擎,解释执行客户端脚本程序nWeb浏览器产品浏览器产品lIE, Maxthon(傲游),(傲游),Firefox(火狐狸),(火狐狸),Opera等等 1.3 Web相关技术n概念及术语概念及术语nJava技术技术nXML技术技术概念及术语 n网站(网站(Web Site)l概念概念u网站又称网站又称Web站点,是站点,是
13、Internet中提供信息服务的机构,这中提供信息服务的机构,这些机构的计算机连接到些机构的计算机连接到Internet中,向用户提供中,向用户提供Web服务。服务。l技术技术u一个一个Web站点是由一个主目录和主目录下的文件夹和大量站点是由一个主目录和主目录下的文件夹和大量的网页文件构成的,这些网页文件通过超链接连接在一起,的网页文件构成的,这些网页文件通过超链接连接在一起,形成特定的应用逻辑,构成一个特定的形成特定的应用逻辑,构成一个特定的Web应用。应用。u网站又成为网站又成为Web应用(应用(Web Application),基于),基于B/S架构架构的计算机软件。的计算机软件。 概念
14、及术语(Cont1.) n超文本(超文本(Hypertext)l超文本是一种文本显示与连接技术,可以对文本中的超文本是一种文本显示与连接技术,可以对文本中的有关词汇或句子建立链接(即超链接),使其指向其有关词汇或句子建立链接(即超链接),使其指向其他段落、文本或链接到其他文档。他段落、文本或链接到其他文档。 l当超文本显示时,建立了链接的文本、图片通常以下当超文本显示时,建立了链接的文本、图片通常以下划线、高亮等不同的方式显示,来表明这些文本或图划线、高亮等不同的方式显示,来表明这些文本或图片对应一个超链接。片对应一个超链接。 n超级链接(超级链接(Hyperlink) lWeb页中当用户单击
15、它时可以转到其他页中当用户单击它时可以转到其他Web页或当前页或当前页面的其他地方的文字、图片等对象页面的其他地方的文字、图片等对象 概念及术语(Cont2.) nWeb页(页(Web page)lWeb页是指页是指Web服务器上的一个个超文本文件,服务器上的一个个超文本文件,或者是它们在浏览器上的显示屏幕。或者是它们在浏览器上的显示屏幕。 n主页(主页(Home page)l用户在用户在Web服务器上看到的第一个服务器上看到的第一个Web页页 l首页中往往列出了网站的信息目录,或指向其首页中往往列出了网站的信息目录,或指向其他站点的超链接,主页是一个网站的入口。他站点的超链接,主页是一个网站
16、的入口。 概念及术语(Cont3.) n统一资源定位器统一资源定位器URL(Uniform Resource Locator) l信息资源类型:信息资源类型:/网址:端口号网址:端口号/文件路径文件路径/文件名?参数表文件名?参数表u网址网址u端口号端口号u文件路径文件路径u文件名文件名u参数表参数表概念及术语(Cont4.) n端口(端口(port)l端口的分类端口的分类u按协议类型划分,端口可以分为按协议类型划分,端口可以分为TCP、UDP、IP和和ICMP(Internet控制消息控制消息协议)等。其中协议)等。其中TCP端口和端口和UDP端口是最常见端口类型。端口是最常见端口类型。u按
17、照端口号分布划分,端口分为知名端口(按照端口号分布划分,端口分为知名端口(Well-Known Ports)和动态端口)和动态端口(Dynamic Ports)两部分。)两部分。 l知名端口知名端口u范围从范围从0到到1023,这些端口号一般固定分配给一些知名的公共服务。,这些端口号一般固定分配给一些知名的公共服务。 u21端口端口-FTP服务服务u25端口端口-SMTP服务服务u80端口端口-HTTP服务服务u135端口端口-RPC(远程过程调用)服务等(远程过程调用)服务等 l动态端口动态端口u范围从范围从1024到到65535 Java技术 nJava的出现的出现lJava 技术是技术是
18、 Sun Microsystems于于1995年推出的一种极富创造力的计算平台。年推出的一种极富创造力的计算平台。 lJava的出现是继的出现是继HTML后,互联网发展的第二个里程碑后,互联网发展的第二个里程碑nJava技术的构成技术的构成lJava程序设计语言程序设计语言lJava虚拟机(虚拟机(Java Virtual Machine,JVM) u不同操作系统平台有不同的不同操作系统平台有不同的JVMlJava API u用于用于Java编程,各种编程,各种JDKnJava的特点的特点lJava程序程序“编写一次,到处运行编写一次,到处运行”u编译后生成字节码(编译后生成字节码(.clas
19、s文件),不是文件),不是exeu。class文件在文件在JVM上运行,而不是在上运行,而不是在OS上上 l完全面向对象完全面向对象Java语言环境 nJDK(Java Development Kit,Java开发工具包)开发工具包)l在在1995年年Sun虽然推出了虽然推出了Java,但这只是一种语言,而要想开发复杂的应,但这只是一种语言,而要想开发复杂的应用程序,必须要有一个强大的开发库支持。用程序,必须要有一个强大的开发库支持。 lSun在在1996年年1月月23日发布了日发布了JDK1.0 nJDK的构成的构成l运行环境(即运行环境(即JRE) u核心核心APIu集成集成APIu用户界
20、面用户界面APIu发布技术发布技术uJava虚拟机虚拟机(JVM)l开发环境(即开发环境(即JDK) uJava程序的编译器(即程序的编译器(即javac) u抽象窗口工具包抽象窗口工具包AWT(Abstract Windowing Toolkit ),其他库不完整),其他库不完整Java的发展 nJava的出现是革命性的,的出现是革命性的,Java十年,日新月异十年,日新月异l世界几乎所有著名的计算机公司纷纷购买了世界几乎所有著名的计算机公司纷纷购买了Java的使用权,的使用权,IBM、Apple、DEC、Adobe、Silicon Graphics、HP、Oracle、Toshiba、Ne
21、tscape和和Microsoft等大公司相继购买了等大公司相继购买了Java的的许可证。另外,众多的软件开发商也开发了许多支持许可证。另外,众多的软件开发商也开发了许多支持Java的软件产品。的软件产品。l在以网络为中心的计算时代,不支持在以网络为中心的计算时代,不支持HTML和和Java,就意味着应用程序的应用范围只能限于同质,就意味着应用程序的应用范围只能限于同质的环境。的环境。 nJava的发展的发展lJDK1.0u从从JDK1.0到到JDK1.1.8,JDK1.x经过了经过了9个小版本个小版本 lJDK2.0(JDK1.2)u1998年年12月月4日,日,Sun发布了发布了Java历
22、史上最重要的一个历史上最重要的一个JDK版本:版本:JDK1.2,这个版本标志着,这个版本标志着Java进入了进入了Java2时代,进入时代,进入Java的飞速发展时期。的飞速发展时期。 uJ2EE(Java2 Platform, Enterprise Edition),企业级企业级 应用应用uJ2SE(Java2 Platform, Standard Edition),桌面),桌面uJ2ME(Java 2 Platform, Micro Edition),嵌入式和移动计算),嵌入式和移动计算 lJDK3.0(JDK1.3) 2000年年lJDK4.0(JDK1.4) 2002年年lJDK5.
23、0(JDK1.5) 2004年年lJDK6.0(JDK1.6) 2006年年XML技术n当今世界,当今世界,XML技术可谓炙手可热技术可谓炙手可热l可扩展标记语言可扩展标记语言XML(eXtensible Markup Language,可扩展标,可扩展标记语言)是记语言)是Internet上最具权威的数据表示和数据交换标准上最具权威的数据表示和数据交换标准 。lXML和和HTML的不同的不同uHTML关心的是内容的表现,是一种表现技术关心的是内容的表现,是一种表现技术uXML关心的是数据的结构,表达数据之间的关系关心的是数据的结构,表达数据之间的关系uXML文档最终以文档最终以HTML来表现
24、来表现nXML的本质的本质lXML文档是一种数据的表达和存储技术文档是一种数据的表达和存储技术l如果说如果说Java实现了代码的平台无关性,那么实现了代码的平台无关性,那么XML则实现了数据的平则实现了数据的平台无关性台无关性 。这就是XML,互联网时代的基石XML的出现和发展对于的出现和发展对于Internet产生了巨大的影响,如果说产生了巨大的影响,如果说Java实现了代码的平台无关性,那么实现了代码的平台无关性,那么XML则实现了数据的平台则实现了数据的平台无关性。今天,无关性。今天,XML已经逐渐成为整个已经逐渐成为整个Web的基本结构和未来的基本结构和未来各种发展的基础,由于各种发展
25、的基础,由于XML能针对特定的应用定义自己的标记能针对特定的应用定义自己的标记语言,这一特征使得语言,这一特征使得XML可以在电子商务、政府部门、各行业可以在电子商务、政府部门、各行业领域提供各具特色的独立解决方案。领域提供各具特色的独立解决方案。同时,同时,XML作为一种通用的数据交换语言,已经成为业界的一作为一种通用的数据交换语言,已经成为业界的一种具有垄断性的标准,在跨平台跨系统数据交换方面拥有无可种具有垄断性的标准,在跨平台跨系统数据交换方面拥有无可比拟的优势,其在企业级开发中所扮演的角色越来越重要。比拟的优势,其在企业级开发中所扮演的角色越来越重要。但是,和关系数据库拥有强大的存储和
26、分析引擎不同,但是,和关系数据库拥有强大的存储和分析引擎不同,XML只只专注于数据的表示,这也使得专注于数据的表示,这也使得XML在数据量急速膨胀的时候,在数据量急速膨胀的时候,如何有效的管理和使用如何有效的管理和使用XML成为了一件令人头痛的事情成为了一件令人头痛的事情 XML相关技术标准XML Schema描述了更加严格定义描述了更加严格定义XML文文档的方法,以便可以更自动地处理档的方法,以便可以更自动地处理XML文档。文档。XML Namespace用于保证用于保证XML DTD中名中名字的一致性,以便不同的字的一致性,以便不同的DTD中的名字在需中的名字在需要时可以合并到一个文档中。
27、要时可以合并到一个文档中。XPath描述如何识别、选择、匹配描述如何识别、选择、匹配XML文件文件中的各个构成元件,包括元素、属性、文字中的各个构成元件,包括元素、属性、文字内容等。内容等。XPointer和和XLink标准,规定了有关定位、标准,规定了有关定位、链接方面的内容。链接方面的内容。XQuery的目的是为从的目的是为从Web文档中提取数据,文档中提取数据,提供一种灵活的查询机制。提供一种灵活的查询机制。XSLT则实现文档格式转换,主要是将则实现文档格式转换,主要是将XML转换为转换为HTML格式进行显示。格式进行显示。CSS也是用来作为也是用来作为XML文档显示的样式标文档显示的样
28、式标准。准。DOM定义了一组与平台和语言无关的接口,定义了一组与平台和语言无关的接口,以便程序和脚本能够动态访问和修改以便程序和脚本能够动态访问和修改XML文文档内容、结构及样式。档内容、结构及样式。 1.4 Web发展趋势nWeb 2.0n语义语义WebWeb 2.0nWeb1.0l2003年以前的互联网模式年以前的互联网模式l静态的网页静态的网页l信息消费的时代信息消费的时代 lNetscape脱颖而出,浏览器脱颖而出,浏览器lYahoo提出了互联网黄页提出了互联网黄页lGoogle推出了深受欢迎的搜索服务推出了深受欢迎的搜索服务nWeb2.0时代时代l2004年年3月提出月提出l网民的参
29、与网民的参与u论坛论坛u博客博客l更注重用户的交互作用,用户既是网站内容的消费者(浏览者),也是网站内容的制更注重用户的交互作用,用户既是网站内容的消费者(浏览者),也是网站内容的制造者。造者。 语义Webn语义语义Web的概念的概念n语义语义Web体系架构体系架构n语义语义Web的应用的应用语义Web的概念n语义语义Web是当前是当前Web的一个扩展,其中信息具有形的一个扩展,其中信息具有形式化定义的语义,更有助于计算机之间以及计算机式化定义的语义,更有助于计算机之间以及计算机与人之间的协同工作。其思想是使与人之间的协同工作。其思想是使Web上的数据以上的数据以这样一种方式来定义与链接,使其
30、能够在各种不同这样一种方式来定义与链接,使其能够在各种不同的应用场景中有效地实现数据的发现、自动化处理、的应用场景中有效地实现数据的发现、自动化处理、集成与复用。当且仅当集成与复用。当且仅当Web不仅成为人所共享加工不仅成为人所共享加工的场所,也成为自动化工具所共享加工的场所时,的场所,也成为自动化工具所共享加工的场所时,语义语义Web方能实现其全部潜力。方能实现其全部潜力。n语义语义Web有很多突出的优点,包括数据集成更简单、有很多突出的优点,包括数据集成更简单、搜索更精确、知识管理更方便等搜索更精确、知识管理更方便等 语义Web体系架构n三大关键技术三大关键技术lXMLlRDFlOntol
31、ogy (本体)(本体)n语义语义Web分层体系架构分层体系架构语义Web的应用n互联网信息发布与搜索,通过对内容的标注与分析互联网信息发布与搜索,通过对内容的标注与分析从而克服关键词查询的歧义性,可以大大提高查询从而克服关键词查询的歧义性,可以大大提高查询精度。精度。 nWeb问题解答,在用问题解答,在用ontology对信息源进行标注对信息源进行标注的基础上,进一步运用知识库来解答用户的提问。的基础上,进一步运用知识库来解答用户的提问。 语义Web的目标是改善当今的Web,它的主要思想是使语义信息成为计算机可处理的对象。要将Web语义化是非常困难的,语义Web很难一下子获得巨大成功,但是,它会一点点的渗透到现有的Web中,在人们的不知不觉中,让我们进入语义Web的时代