ch01
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章Web技术概述
【学习目标】
本章将向读者介绍Web技术的基本情况,主要包括静态网页与动态网页、Web服务器和网络数据库、几种流行的动态网页开发工具、C/S模式与B/S模式。
本章的学习要点包括:
●静态网页中静态的概念
●动态网页中动态的含义
●什么是Web服务器
●什么是网络数据库
●JSP/ASP//PHP的比较
●C/S模式的特点
●B/S模式的特点
【学习导航】
网页包括静态网页(内容不发生变化)和动态网页(内容会随着某些环境而变化)。
在进行动态网页开发之前,首先必须建立Web服务器、选择好数据库管理系统和动态网页的开发工具。
本章只是简要介绍其基本概念,Web服务器和数据库管理系统的安装和配置的详细内容请参阅相关资料。
本章主要学习内容及其在Web应用系统开发中的位置如图1-1所示。
图1-1 本章主要学习内容及其在Web应用系统开发中的位置
1.1 静态网页与动态网页
WWW 是World Wide Web (环球信息网)的缩写,也可以简称为Web,中文名字为“万维网”。
它起源于1989年3月,由欧洲量子物理实验室CERN(the European Laboratory for Particle Physics)所发展出来的主从结构分布式超媒体系统。
通过万维网,人们只要通过简单的方法,就可以很迅速方便地获取丰富的信息资料。
由于用户在通过Web 浏览器访问信息资源的过程中,无须再关心一些技术性的细节,而且界面非常友好,因而Web 刚推出就受到了热烈的欢迎,并迅速得到了飞速发展。
长期以来,人们只是通过传统的媒体(如电视、报纸、杂志和广播等)获得信息。
但随着计算机网络的发展,人们想要获取信息已不再满足于传统媒体那种单方面传输和获取的方式,而希望有一种主观的选择性。
到了1993年,WWW 的技术有了突破性的进展,它解决了远程信息服务中的文字显示、数据连接以及图像传递的问题,使得WWW 成为Internet 上最为流行的信息传播方式。
现在,Web 服务器成为Internet 上最大的计算机群,Internet上提供各种类别的数据库系统,如文献期刊、产业信息、气象信息、论文检索等,都是基于WWW技术的,通过这种方式使得信息的获取变得非常及时、迅速和便捷。
可以说,Web 为Internet 的普及迈出了开创性的一步。
1.1.1 静态网页
静态网页是指网页的内容是固定的,不会根据浏览者的不同需求而改变。
静态网页一般使用HTML(超文本标记语言)语言进行编写。
静态网页一般是运行于客户端的程序、网页、插件、组件,属于静态的,是永远不变的。
早期的网站一般都是由静态网页制作的,通常以.htm、.html、.shtml、.xml等为文件扩展名。
静态网页的网址形式通常为:http://index.html。
在HTML格式的网页上,也可以出现各种“动态效果”,如GIF格式的动画、Flash、滚动字母等,但这些“动态效果”只是视觉上的,与下面将要介绍的动态网页是不同的概念。
静态网页的特点如下。
●静态网页每个网页都有一个固定的URL,且网页URL以.htm、.html、.shtml等
常见形式为扩展名,而不含有“?”。
●网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页的内容
都是保存在网站服务器上的。
也就是说,静态网页是实实在在保存在服务器上的
文件,每个网页都是一个独立的文件。
●静态网页的内容相对稳定,所以容易被搜索引擎检索。
●静态网页没有数据库的支持,在制作和维护方面工作量较大,因而当网站信息量
很大时,完全依靠静态网页的制作方式就比较困难。
●静态网页的交互性差,在功能方面有较大的限制。
判断一个网页是否是静态网页,可以这样简单地判断:第一看扩展名,第二看是否能与服务器发生交互行为。
采用静态网页会导致很大的局限性。
仅由HTML页面构成的Web应用程序的内容是静止的,它不会对用户的动作做出动态响应。
静态网页的制作请参阅第11章。
1.1.2 动态网页
动态网页是指在接到用户访问要求后动态生成的页面,页面内容会随着访问时间和访问者发生变化。
动态网页一般是在服务器端运行的程序、网页、组件,属于动态性的,它们会随不同客户、不同时间,返回不同的网页。
动态网页是与静态网页相对应的,也就是说,网页URL的扩展名不是.htm、.html、.shtml、.xml等静态网页的常见形式,而是以.asp、.jsp、.php、.perl、.cgi等形式为扩展名。
动态网页的特点如下。
●动态网页以数据库技术为基础,可以大大降低网站维护的工作量。
●采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调
查、用户管理、订单管理等。
●动态网页实际上并不是独立存在于服务器上的网页文件,只有当用户请求时服务
器才返回一个完整的网页。
●动态网页中的“?”对搜索引擎检索存在一定的问题,搜索引擎一般不可能从一
个网站的数据库中访问全部网页,或者出于技术方面的考虑,搜索引擎不会去抓
取网址中“?”后面的内容,所以采用动态网页的网站在进行搜索引擎推广时需
要做一定的技术处理才能适应搜索引擎的要求。
应用JavaScript脚本实现客户端交互的内容请参阅第11章11.2节。
在本书中,服务端程序的设计通过JSP来实现,请参阅后续章节内容。
静态网页和动态网页各有特点,网站采用动态网页还是静态网页主要取决于网站的功能需求和网站内容的多少,如果网站功能比较简单,内容更新量不是很大,采用纯静态网页的方式会更简单,反之一般要采用动态网页技术来实现。
静态网页是网站建设的基础,静态网页和动态网页之间也并不矛盾,为了网站适应搜索引擎检索的需要和加快页面的访问速度,即使采用动态网页技术,也可以将网页内容转化为静态网页发布。
动态网站也可以采用静动结合的原则,适合采用动态网页的地方用动态网页,如果有必要使用静态网页,则可以考虑用静态网页的方法来实现。
在同一个网站上,动态网页内容和静态网页内容同时存在也是很常见的事情。
1.2 Web服务器和网络数据库
1.2.1 Web服务器
Web服务器也称为WWW服务器。
WWW 采用的是客户/服务器结构,其作用是整理和存储各种WWW资源,并响应客户端软件的请求。
一台普通的计算机要成为Web服务器,必须通过相应的程序(如IIS、PWS和Apache等)来实现。
当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件发送到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。
服务器使用HTTP(超文本传输协议)进行信息交流,这就是人们常把它们称为HTTPD服务器的原因。
Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。
例如,假设要提供电子商城的最新产品信息,只需要建立一张免费请求表单,它就会要求电子商城的用户输入相关地址信息;用户填完单后,单击提交按钮,该表单将被发送至服务器上的某一程序,它负责处理该请求,并用E-mail给电子商城的用户发送一份最新产品信息。
也可以让该程序把客户提供的信息发给网站管理者,以便存储在数据库中。
用于执行这些功能的程序或脚本称为网关脚本/程序,或称为CGI(通用网关界面)脚本。
在Web上,我们所见到的大多数表单和搜索引擎上都使用了该技术。
在Windows操作系统中,如果采用ASP或进行Web程序开发,则需要通过IIS来搭建Web服务器;如果采用PHP进行Web程序开发,则需要通过Apache来搭建Web服务器;如果采用JSP进行Web程序开发,则需要通过J2SDK和J2EESDK以及
相关的应用服务器(如Tomcat、WebLogic等)来搭建Web服务器。
各种环境的具体配置,请参阅相关资料。
1.2.2 网络数据库技术
“网络数据库”涉及网络和数据库,在了解什么是网络数据库之前,先来看一下数据库和计算机网络的概念。
数据库是按一定的结构和规则组织起来的相关数据的集合,是综合用户数据形成的数据集合,是存放数据的仓库。
数据库技术目前是计算机处理与存储数据最有效、最成功的技术。
计算机网络是将分布在不同地理位置、具有独立功能的计算机系统通过线路连接起来,在网络协议和网络管理软件的支持下,以相互通信和资源共享为目的的计算机集群系统。
数据和资源共享这两种技术结合在一起即成为在今天广泛应用的网络数据库(也叫Web数据库)。
网络数据库得到广泛的应用和发展是因为人们在网络数据库中可以找到他们需要的东西,如检查银行账户、查询股票价格、进行网上购物等。
这些功能是用HTML编写的网页无法做到的,因为用HTML无法完成交互功能,要做到这些,必须使用网络数据库技术。
网络数据库可以实现方便廉价的资源共享,数据信息是资源的主体,因而网络数据库技术自然而然地成为了互联网的核心技术。
现在流行的SQL Server 2000、MySQL和Oracle都是网络数据库系统。
它们是Web 程序开发的核心,用来存储用户的各种资源。
这些数据库系统可以跟Web服务器在同一台物理计算机上,也可以分布在单独的物理计算机上,称之为数据库服务器。
1.3 JSP与ASP/PHP/
目前,最常用的动态网页语言有ASP(Active Server Pages)、JSP(Java Server Pages)、PHP(Hypertext Preprocessor)和。
下面对这几种动态网页设计语言进行简单比较。
1.3.1 ASP
ASP(Active Server Pages)是一个Web服务器端的开发环境,利用它可以产生和运行动态的、交互的、高性能的Web服务应用程序。
ASP采用脚本语言VBScript(JavaScript)作为自己的开发语言。
ASP的主要技术特点如下。
●使用VBScript和JavaScript 等简单易懂的脚本语言,结合HTML 代码,即可
快速进行网站应用程序地开发。
●无须编译,容易编写,可在服务器端直接执行。
●使用普通的文本编辑器(如记事本),即可进行编辑设计。
●与浏览器无关,用户端只需使用能解释HTML代码的浏览器,即可浏览ASP所
设计的网页内容。
●ASP能与任何ActiveX Script语言相容。
除了可使用VBScript或JScript语言来
设计外,还可通过Plug-in的方式,使用由第三方所提供的其他脚本语言来开
发,譬如REXX、Perl、Tcl等。
●可使用服务器端的脚本来产生客户端的脚本。
ASP是Microsoft开发的动态网页语言,只能运行于微软的服务器产品和PWS之上。
在Unix环境下可以通过ChiliSoft的插件来支持ASP,但是ASP本身的功能有限,必须通过ASP+COM的组合来扩充,Unix下的COM实现起来非常困难。
1.3.2 PHP
PHP是一种跨平台的服务器端的嵌入式脚本语言,它大量地借用C、Java和Perl语言的语法,并结合PHP自己的特性,使Web开发者能够快速地开发Web应用程序,它支持目前绝大多数数据库。
PHP的主要技术特点如下。
●数据库连接。
PHP可以编译成能与许多数据库相连接的函数。
PHP与MySQL是
绝佳的组合,当然也可以自己编写外围的函数来间接存取数据库,PHPLIB就是
最常用的可以提供一般事务需要的一系列基库。
但PHP提供的数据库接口支持
彼此不统一,比如对Oracle、MySQL和Sybase的接口不一样,这是PHP的一
个弱点。
●面向对象编程。
PHP提供了类和对象。
基于Web的编程工作非常需要面向对象
编程的能力,PHP支持构造器、提取类等。
PHP3.0可在Windows、Unix和Linux的Web服务器上正常运行,还支持IIS和Apache等通用Web服务器,用户更换平台时,无需变换PHP代码即可使用。
1.3.3
是ASP的.NET版本,可以创建动态Web页面。
的主要技术特点如下。
●使用户能从数据源(如后台数据库和存储于Web服务器上的文本文件)
访问数据。
●使用户能用被称为模板的编程代码集合来创建HTML文档。
使用模板
的优点是用户可以在HTML文档显示给用户之前,将从数据源检索到的内容动
态地插入到HTML文档中,从而在从数据源检索到的内容发生变化时不需要手
动修改信息。
●也使用户能将HTML的设计同数据检索机制相分离。
这样,改变
HTML的设计不会影响数据库应用程序。
类似地,服务器脚本确保了对数据源的
修改不要求对HTML文档做出改动。
1.3.4 JSP
JSP(Java Server Page)是Sun公司推出的新一代动态网站开发语言,完全解决了目前
ASP和PHP的脚本级执行的缺点。
JSP 可以在Servlet和JavaBean的支持下,完成功能强大的动态网站程序的开发。
JSP的主要技术特点包括以下内容。
1. 将内容的生成和显示进行分离
使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面;使用JSP标识或者小脚本来生成页面上的动态内容;生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。
如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。
在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。
这有助于作者保护自己的代码,同时保证任何基于HTML的Web浏览器的完全可用性。
2. 强调可重用的组件
绝大多数JSP页面依赖于可重用的、跨平台的组件(JavaBeans或者Enterprise JavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。
开发人员能够共享和交换执行普通操作的组件,或者使得这些组件能为更多的使用者或者客户团体所使用。
基于组件的方法加速了总体开发过程,并且使得各种组织在它们现有的技能和优化结果的开发努力中得到平衡。
3. 采用标识简化页面开发
Web页面开发人员不会都是熟悉脚本语言的编程人员。
JavaServer Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。
标准的JSP标识能够访问和实例化JavaBeans组件、设置或者检索组件属性、下载Applet,以及执行用其他方法更难于编码和耗时的功能。
通过开发定制标识库,JSP技术是可以扩展的。
今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库,这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。
JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。
作为采用Java技术家族的一部分,以及Java 2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。
由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java Servlet,所以JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。
作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。
随着越来越多的供应商将JSP支持添加到自己的产品中,用户可以使用自己所选择的服务器和工具。
更改工具或服务器并不影响当前的应用。
JSP同PHP类似,几乎可以运行于所有平台,如Windows NT、Linux、Unix Windows NT下IIS通过一个插件,例如JRUN或者ServletExec就能支持JSP。
著名的
Web服务器Apache已经能够支持JSP。
由于Apache广泛应用在Windows NT、Unix和Linux上,因而JSP有更广泛的运行平台。
虽然现在Windows NT操作系统占了很大的市场份额,但是在服务器方面Unix的优势仍然很大,而新崛起的Linux更是来势不小。
从一个平台移植到另外一个平台,JSP和JavaBean甚至不用重新编译,因为Java字节码都是标准的、与平台无关的。
从性能、开发效率、支持平台等各角度综合考虑,编者认为JSP应该是未来Web程序开发的主要语言。
【课堂实践1-1】
【任务1】
打开浏览器,在地址栏中输入“/index.htm”,进入网易公司的免费邮箱页面,查看地址栏和网页内容,体验静态页面的特点。
【任务2】
在/index.htm页面中选择【注册3G免费邮箱】超链接(http://reg. /reg/reg0.jsp?url=/QuickCreateMail.jsp),进入申请免费邮箱页面,查看地址栏和网页内容,体验动态网页的特点。
【任务3】
打开浏览器,在地址栏中输入“/index.htm”,进入中国程序员网站的主页,选择【免费注册】超链接(/CSDNUserRegister.aspx),进入注册页面,查看地址栏和网页内容,体验网站中静态网页和动态网页的结合。
【任务4】
比较网易免费邮箱申请页面和中国程序员注册页面的异同。
1.4 C/S结构与B/S结构
1.4.1 C/S结构
1. C/S结构概述
C/S结构,即Client/Server(客户/服务器)结构,是大家熟知的软件系统体系结构,它通过将任务合理分配到Client端和Server端,降低了系统的通信开销,可以充分利用两端硬件环境的优势,早期的软件系统多以此作为首选设计标准。
客户/服务器(C/S)结构的出现是为了解决费用和性能的矛盾,最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。
二者可分别称为前台程序与后台程序。
运行数据库服务器程序的机器,称为应用服务器,一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户程序运行在用户自己的计算机上,对应于服务器计算机,可称为客户计算机。
当需要对数据库中的数据进行操作时,客户程序就自
动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则做出应答,送回结果。
在这种结构中,数据库的管理由数据库服务器完成。
而应用程序的数据处理,如数据访问规则、业务规则、数据合法性校验等则可能有两种情况:一是全部由客户机来完成,客户机向服务器传送的是结构化查询语言SQL,像这种运算和商业逻辑都在服务器端运行而客户端只负责一些简单的用户交互的结构也称为瘦客户机;二是由客户机和服务器共同来承担,程序处理一部分在客户端以程序代码来实现,一部分在服务器端以数据库中的触发器或存储过程实现,像这种运算和商业逻辑可能会放在客户端进行的结构也称为胖客户机。
C/S 结构的系统结构如图1-2所示。
数据库服务器
数据库
应用程序
应用
程序
应用
程序
应用
程序
以太网
请求
结果
服务器层
客户层
客户机
客户机
客户机
客户机
图1-2 客户/服务器结构
2. C/S结构的软件存在的问题
由于这种通信方式简单,软件开发起来容易,现在的很多应用软件都是基于这种二层的客户/服务器结构的,但这种结构的软件存在以下问题。
(1) 伸缩性差。
客户机与服务器联系很紧密,无法在修改客户机或服务器时不修改另一个,这使软件不易伸缩、维护量大,软件互操作起来也很难。
(2) 性能较差。
在一些情况下,还需要将较多的数据从服务器端传送到客户机进行处理,这样,一方面会出现网络拥塞,另一方面会消耗客户端的主要系统资源,从而使整个系统的性能下降。
(3) 重用性差。
数据库访问、业务规则等都固化在客户端应用程序中。
如果客户另外提出的其他应用需求中也包含了相同的业务规则,程序开发者将不得不重新编写相同的代码。
(4) 移植性差。
当某些处理任务是在服务器端由触发器或存储过程来实现时,其适应性和可移性较差。
因为这样的程序可能只能运行在特定的数据库平台下,当数据库平台变化时,这些应用程序可能需要重新编写。
1.4.2 B/S结构
B/S软件体系结构,即Browser/Server (浏览器/服务器)结构,是随着Internet技术的兴起,对C/S体系结构的一种变化或者改进的结构。
在B/S体系结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。
B/S结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。
基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。
用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。
B/S体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础,这种结构更成为当今应用软件的首选体系结构。
1.4.3 C/S和B/S的比较
B/S与C/S体系结构相比,C/S是建立在局域网的基础上的,而B/S是建立在广域网的基础上的。
虽然B/S体系结构在电子商务、电子政务等方面得到了广泛的应用,但并不是说C/S结构没有存在的必要,相反,在某些领域中C/S结构还将长期存在。
下面对C/S 结构和B/S结构进行简单比较。
1. 支撑环境
C/S一般建立在专用的网络上,小范围里的网络环境、局域网之间再通过专门服务器提供连接和数据交换服务;B/S 建立在广域网之上。
不必是专门的网络硬件环境,例如电话上网、租用设备。
B/S的信息自己管理,有比C/S更强的适应范围,一般只要有操作系统和浏览器就行。
2. 安全控制
C/S一般面向相对固定的用户群,对信息安全的控制能力很强。
一般高度机密的信息系统采用C/S 结构比较适宜;B/S 建立在广域网之上,对安全的控制能力相对弱,面向的是不可知的用户群,可以通过B/S发布部分可公开信息。
3. 程序架构
C/S 程序可以更加注重流程,可以对权限多层次校验,对系统的运行速度可以较少考虑;B/S 对安全以及访问速度的多重考虑,建立在需要更加优化的基础之上,比C/S有更高的要求,B/S结构的程序架构是发展的趋势。
Microsoft公司的.NET系列、SUN 和IBM推出的JavaBean 构件技术将使B/S更加成熟。
4. 软件重用
C/S 程序侧重于整体性考虑,构件的重用性不是很好;B/S一般采用多重结构,要求构件有相对独立的功能,能够相对较好的重用。
5. 系统维护
C/S程序由于整体性,必须整体考察,所以处理出现的问题以及系统升级都比较难,一旦升级,可能要求开发一个全新的系统;B/S程序由构件组成,通过构件个别地更换,可以实现系统的无缝升级,系统维护开销减到最小,用户从网上自己下载安装就可以实现升级。
6. 用户接口
C/S多是建立在Windows平台上,表现方法有限,对程序员普遍要求较高;B/S建立在浏览器上,有更加丰富和生动的表现方式与用户交流,并且大部分难度较低,从而降低了开发成本。
7. 信息流
C/S程序一般是典型的集中式的机械式处理,交互性相对低;B/S信息流向可变化,如电子商务的B2B、B2C和B2G等信息、流向的变化很多。
C/S结构与B/S结构各有优势,在相当长的时期内二者将会共存。
【课堂实践1-2】
【任务1】
分别使用本地迅雷和Web迅雷下载文件,体验C/S模式和B/S模式的不同。
【任务2】
进入免费邮箱服务器(如/index.htm),通过输入用户名和密码进入自己的邮箱发送邮件;使用Foxmail或Outlook Express从本地计算机实现邮件的发送(Foxmail或Outlook Express的配置请参阅相关资料)。
比较两种发送邮件的方式的不同。
本章小结
本章学习了如下内容:
●静态网页和动态网页。
包括静态网页的特点和动态网页特点。
●Web服务器和网络数据库。
包括Web服务器概念和网络数据库技术。
●JSP与ASP/PHP/。
包括ASP的特点、PHP的特点、的特点和
JSP的特点。
●C/S结构与B/S结构。
包括C/S结构的模型和特点、B/S结构的模型和特点。
课外拓展
【思考题】
如果所在城市的新华书店需要建立一个名为eBook的网站来实现网上售书,请根据新。