【知识目标】
本章将向读者介绍Web开发技术的基础知识,主要包括静态网页与动态网页、Web服务器和网络数据库、JSP程序开发工具、C/S模式与B/S模式等概念。本章的学习要点包括如下几点。
(1)静态网页中静态的概念;
(2)动态网页中动态的含义;
(3)什么是Web服务器;
(4)什么是网络数据库;
(5)JSP、ASP、ASP.NET、PHP的比较;
(6)C/S模式的特点;
(7)B/S模式的特点。
【技能目标】
(1)能识别静态网页和动态网页;
(2)能选择合适的Web服务器;
(3)能选择合适的网络数据库。
1.1 认知静态网页和动态网页
WWW 是 World Wide Web (环球信息网)的缩写,也可以简称为 Web,中文名字为“万维网”。它起源于1989年3月,由欧洲量子物理实验室(European Laboratory for Particle Physics,CERN)所发展出来的主从结构分布式超媒体系统。通过万维网,人们只要通过使用简单的方法,就可以很迅速方便地取得丰富的信息资料。 由于用户在通过 Web 浏览器访问信息资源的过程中,无需再关心一些技术性的细节,而且界面非常友好,因而 Web 刚推出就受到了热烈的欢迎,并迅速得到了飞速的发展。
长期以来,人们只是通过传统的媒体(如电视、报纸、杂志和广播等)获得信息。但随着计算机网络的发展,人们想要获取信息,已不再满足于传统媒体那种单方面传输和获取的方式,而希望有一种主观的选择性。到了1993年,WWW 的技术有了突破性的进展,它解决了远程信息服务中的文字显示、数据连接以及图像传递的问题,使得 WWW 成为
Internet上最为流行的信息传播方式。现在,Web 服务器成为 Internet 上最大的计算机群,它为Internet提供各种类别的数据库系统,如文献期刊、产业信息、气象信息、论文检索等,都是基于WWW技术的,通过这种方式使得信息的获取变得非常及时、迅速和便捷。可以说,Web 为 Internet 的普及迈出了开创性的一步。
1.1.1 静态网页
静态网页是指没有后台数据库、不含程序、不可交互的网页。编的是什么它显示的就是什么,不会有任何改变。静态网页更新起来相对比较麻烦,适用于一般更新较少的展示型网站。
在网站设计中,纯粹HTML格式的网页通常被称为“静态网页”,早期的网站一般都是由静态网页制作的。静态网页通常是以.htm、.html、.shtml等为后缀的页面文件。在HTML格式的网页上,也可以出现各种动态的效果,如.gif格式的动画、Flash、滚动字幕等,这些“动态效果”只是视觉上的,与下面将要介绍的动态网页是不同的概念。
静态网页的主要特点如下。
- 静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难;
- 网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页的内容都是保存在网站服务器上的,也就是说,静态网页是实实在在保存在服务器上的文件,每个网页都是一个独立的文件;
- 静态网页每个网页都有一个固定的URL,且网页URL以.htm、.html、.shtml等常见形式为后缀;
- 静态网页的内容相对稳定,因此容易被搜索引擎检索;
- 静态网页的交互性较差,在功能方面有较大的限制。
1.1.2 动态网页
动态网页是相对于静态网页而言的,是指可交互的、有后台数据库、含有程序的网页,它显示的内容随着用户需求的改变而改变。
动态网页通常是以.asp、.jsp、.php、.aspx等形式为后缀的页面文件,这里说的动态网页,与网页上的各种动画、滚动字幕等视觉上的“动态效果”没有直接关系,动态网页也可以是纯文字内容的,也可以是包含各种动画的内容,这些只是网页具体内容的表现形式,无论网页是否具有动态效果,采用动态网站技术生成的网页都称为动态网页。
动态网页的主要特点如下。
- 动态网页是以数据库技术为基础的,可以大大降低网站维护的工作量;
- 动态网页实际上并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页;
- 采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调查、用户管理、订单管理等;
- 搜索引擎一般不可能从一个网站的数据库中访问全部网页。
1.2 认知Web服务器和网络数据库
1.2.1 Web服务器
Web服务器不是常常提到物理机器(服务器),而是一种软件,可以管理各种Web文件,并为提出HTTP请求的浏览器提供HTTP响应。
Web服务器可以解析HTTP协议。当Web服务器接收到一个HTTP请求,会返回一个HTTP响应,送回一个HTML页面。为了处理一个请求,Web服务器可以返回一个静态页面、进行页面跳转,或者把动态响应的产生委托给一些其他的程序,像CGI脚本、JSP脚本、Servlets程序、ASP脚本、JavaScript程序。无论它们的目的如何,这些服务器端的程序通常产生一个HTML的响应来让浏览器可以浏览。
在UNIX和Linux平台下使用最广泛的免费HTTP服务器是W3C、NCSA和Apache服务器,而Windows平台NT/2000/2003使用IIS的Web服务器。在选择使用Web服务器时应考虑的本身特性因素有:性能、安全性、日志和统计、虚拟主机、代理服务器、缓冲服务和集成应用程序等,下面介绍几种常用的Web服务器。
1.Microsoft IIS
Microsoft的Web服务器产品为Internet Information Server(IIS), IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。IIS是目前最流行的Web服务器产品之一,很多著名的网站都建立在IIS的平台上。IIS提供了一个图形界面的管理工具,称为 Internet服务管理器,可用于监视配置和控制Internet服务。
IIS是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。它提供ISAPI(Intranet Server API)作为扩展Web服务器功能的编程接口;同时,它还提供一个Internet数据库连接器,可以实现对数据库的查询和更新。
2.IBM WebSphere
WebSphere Application Server 是一种功能完善、开放的Web应用程序服务器,是IBM电子商务计划的核心部分,它是基于 Java 的应用环境,用于建立、部署和管理 Internet 和 Intranet Web 应用程序。它对这一整套产品进行了扩展,以适应 Web 应用程序服务器的需要,范围从简单到高级直到企业级。
WebSphere 针对以 Web 为中心的开发人员,是在基本 HTTP服务器和 CGI 编程技术上成长起来的。IBM 将提供 WebSphere 产品系列,通过提供综合资源、可重复使用的组件、功能强大并易于使用的工具以及支持 HTTP 和 IIOP 通信可伸缩运行时的环境,来帮助这些用户从简单的 Web 应用程序转移到电子商务世界。
3.BEA WebLogic
BEA WebLogic Server 是一种多功能、基于标准的Web应用服务器,为企业构建自己的应用提供了坚实的基础。各种应用开发、部署所有关键性的任务,无论是集成各种系统和数据库,还是提交服务、跨 Internet 协作,起始点都是 BEA WebLogic Server。由于它具有全面的功能、对开放标准的遵从性、多层架构、支持基于组件的开发,基于 Internet 的企业都选择它来开发、部署最佳的应用。
BEA WebLogic Server 在使应用服务器成为企业应用架构的基础方面继续处于领先地位。BEA WebLogic Server 为构建集成化的企业级应用提供了稳固的基础,它以 Internet 的容量和速度,在连网的企业之间共享信息、提交服务,实现协作自动化。
4.Apache
Apache仍然是世界上用得最多的Web服务器,市场占有率达60%左右。它源于NCSAhttpd服务器,当NCSA WWW服务器项目停止后,那些使用NCSA WWW服务器的人们开始交换用于此服务器的补丁,这也是Apache名称的由来(Pache 补丁)。世界上很多著名的网站都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的UNIX、Windows、Linux系统平台上)以及它的可移植性等方面。
5.Tomcat
Tomcat是一个开放源代码、运行Servlet和JSP Web应用软件的基于Java的Web应用软件容器。Tomcat Server是根据Servlet和JSP规范执行的,因此就可以说Tomcat Server也实行了Apache-Jakarta规范且比绝大多数商业应用软件服务器要好。
Tomcat是Java Servlet 2.2和JavaServer Pages 1.1技术的标准实现,是基于Apache许可证下开发的自由软件。Tomcat是完全重写的Servlet API 2.2和JSP 1.1,并与 Servlet/JSP兼容的容器。Tomcat使用了JServ的一些代码,特别是Apache服务适配器。随着Catalina Servlet引擎的出现,Tomcat第4版号的性能得到提升,使得它成为一个值得考虑的Servlet/JSP容器,因此目前许多Web服务器都是采用Tomcat。
1.2.2 网络数据库技术
数据库技术产生于20世纪60年代末至20世纪70年代初,其主要目的是有效地管理和存取大量的数据资源。数据库技术主要研究如何存储、使用和管理数据。
近年来,数据库技术和计算机网络技术的发展相互渗透、相互促进,已成为当今计算机领域发展迅速、应用广泛的两大领域。数据库技术不仅应用于事务处理,并且进一步应用到情报检索、人工智能、专家系统、计算机辅助设计等领域。
网络数据库也叫Web数据库。促进Internet发展的因素之一就是Web技术。由静态网页技术的HTML到动态网页技术的CGI、ASP、PHP、JSP等,Web技术经历了一个重要的变革过程。Web已经不再局限于仅仅由静态网页提供信息服务,而改变为动态的网页,可提供交互式的信息查询服务,使信息数据库服务成为了可能。Web数据库就是将数据库技术与Web技术融合在一起,使数据库系统成为Web的重要有机组成部分,从而实现数据库与网络技术的无缝结合。这一结合不仅把Web与数据库的所有优势集合在了一起,而且充分利用了大量已有数据库的信息资源。图1-1是Web数据库的基本结构图,它由数据库服务器(Database Server)、中间件(Middle Ware)、Web服务器(Web Server)、浏览器(Browser)4部分组成。
它的工作过程可简单地描述成:用户通过浏览器端的操作界面以交互的方式经由Web服务器来访问数据库。用户向数据库提交的信息以及数据库返回给用户的信息都是以网页的形式显示的。
1.3 比较JSP和ASP.NET
1.3.1 ASP
ASP 即Active Server Pages的缩写,它是微软公司开发的一种类似HTML、Script(脚本)与CGI(公用网关接口)的结合体,它没有提供自己专门的编程语言,而是允许用户使用许多已有的脚本语言编写ASP的应用程序。ASP程序的编制比HTML更方便且更有灵活性。它是在Web服务器端运行的,运行后再将运行结果以HTML格式传送至客户端的浏览器。因此ASP与一般的脚本语言相比,要安全得多。
ASP的最大好处是可以包含HTML标签,也可以直接存取数据库及使用无限扩充的ActiveX控件,因此在程序编制上要比HTML方便而且更富有灵活性。通过使用ASP的组件和对象技术,用户可以直接使用ActiveX控件,调用对象方法和属性,以简单的方式实现强大的交互功能。
但ASP技术也非完美无缺,由于它基本上是局限于微软公司的操作系统平台之上,主要工作环境是微软公司的IIS应用程序结构,又因ActiveX对象具有平台特性,所以ASP技术不能很容易地实现在跨平台的Web服务器上工作。
ASP网页主要有以下特点。
利用ASP可以实现静态网页的一些功能限制,实现动态网页技术。
ASP文件是包含在HTML代码所组成的文件中的,易于修改和测试。
服务器上的ASP解释程序会在服务器端制定ASP程序,并将结果以HTML格式传送到客户端浏览器上,因此使用各种浏览器都可以正常浏览ASP所产生的网页。
ASP提供了一些内置对象,使用这些对象可以使服务器端脚本功能更强。例如,可以从Web浏览器中获取用户通过HTML表单提交的信息,并在脚本中对这些信息进行处理,然后向Web浏览器发送信息。
- ASP可以使用服务器端ActiveX组件来执行各种各样的任务,例如,可以进行存取数据库、发送和接收E-mail或访问文件系统等任务;
- 由于服务器是将ASP程序执行的结果以HTML格式传回客户端浏览器,因此使用者不会看到ASP所编写的原始程序代码,可防止ASP程序代码被窃取。
1.3.2 PHP
PHP 即Hypertext Preprocessor(超文本预处理器),PHP 是一种HTML内嵌式的语言,PHP与微软公司的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格类似于C语言,现在被很多的网站编程人员广泛地运用。
PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;与同样是嵌入HTML文档的脚本语言JavaScript相比,PHP在服务器端执行,充分利用了服务器的性能;PHP执行引擎还会将用户经常访问的PHP程序驻留在内存中,其他用户在下一次访问这个程序时就不需要重新编译程序了,只要直接执行内存中的代码就可以,这也是PHP高效率的体现之一。
PHP具有非常强大的功能,所有的CGI或者JavaScript的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。PHP提供了标准的数据库接口,数据库连接方便,兼容性强;扩展性强;可以进行面向对象编程。
PHP的主要特点如下。
- 开放的源代码。事实上所有的PHP源代码都可以得到。
- PHP是免费的。
- 基于服务器端。由于PHP是运行在服务器端的脚本,可以运行在UNIX、Linux、Windows下。
- 嵌入HTML。因为PHP可以嵌入HTML语言,所以学习起来并不困难。
- 简单的语言。PHP坚持脚本语言为主,与Java和C++不同。
- 效率高。PHP消耗相当少的系统资源。
- 图像处理。用PHP动态创建图像。
1.3.3 JSP
JSP 即Java Server Pages,它是由Sun Microsystem公司于1999年6月推出的新技术,JSP技术有点类似ASP技术,它是在传统的网页HTML文件(.htm,.html)中插入Java程序段(JavaScript),从而形成JSP文件(*.jsp)。
JSP和ASP在技术方面有许多相似之处,不过两者来源于不同的技术规范组织,以至 ASP一般只应用于Windows NT/2000平台,而JSP则可以在85%以上的服务器上运行。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
自JSP推出后,众多大公司都推出支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。
JSP的主要特点如下。
- 一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。
- 系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性,其优点是显而易见的。
- 强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理、消息处理,一台服务器到无数台服务器,Java显示了巨大的生命力。
- 多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利地运行于多种平台之下。
1.3.4 ASP.NET 4.0
ASP.NET不是 Active Server Page(ASP)的一个简单升级版本,而是一种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的Web应用程序。ASP.NET提供许多比现在的Web开发模式强大的功能。
ASP.NET构架可以用Microsoft公司最新的产品 Visual Studio.NET开发环境进行开发。Visual Studio.NET是一种所见即所得的编辑环境。
1.ASP.NET 4.0新特性
在Microsoft.NET Framework 4.0中,ASP.NET已经得到改进,建立网站和网页并维持其运行比以前更简单,代码量比以前更少。ASP.NET 4.0的新特性主要包括以下几个方面。
(1)公共语言运行时(CLR)和基类库(BCL)的改进
性能改进,包括更好的多核心支持、后台垃圾回收和服务器上的探查器附加。新的内存映射文件和数字类型。更轻松的调试,包括转储调试、Watson 小型转储、64 位的混合模式调试和代码协定。
(2)可扩展性强
很多ASP.NET功能都可以扩展,这样可以轻松地将自定义功能集成到应用程序。
(3)性能更优
使用预编译、可配置的缓存和SQL缓存失效等功能,可以优化Web应用程序的性能。
(4)Windows 工作流 (WF) 的改进
利用这些改进,开发人员能够更好地承载工作流并与其进行交互。这些改进包括:改进的活动编程模型、改进的设计器体验、新的流程图建模样式、展开的活动面板、工作流规则集成和新的消息相关功能。显著提高了基于 WF 的工作流的性能。
2.ASP与ASP.NET的不同
(1)开发语言不同
ASP仅局限于使用脚本语言来开发,用户给Web页中添加ASP代码的方法与客户端脚本中添加代码的方法相同,导致代码杂乱。ASP.NET允许用户选择并使用功能完善的编程语言,也允许使用潜力巨大的.NET Framework。
(2)运行机制不同
ASP是解释运行的编程框架,所以执行效率较低。ASP.NET是编译性的编程框架,运行的是服务器上编译好的公共语言运行时库代码,可以利用早期绑定,实施编译来提高效率。
(3)开发方式不同
ASP把界面设计和程序设计混在一起,维护困难。 ASP.NET把界面设计和程序设计以不同的文件分离开,复用性和维护性都得到了提高。
1.4 比较C/S结构与B/S结构
1.4.1 C/S结构
C/S结构全称为Client/Server,即客户端/服务器模式。C/S结构的系统分为两个部分:客户端和服务器。应用程序也分为客户端程序和服务端程序。服务器程序负责管理和维护数据资源,并接受客户端的服务请求(如数据查询或更新等),向客户端提供所需的数据或服务。对于用户的请求,如果客户端能够满足就直接给出结果;反之则交给服务器处理。该结构模式可以合理均衡事务的处理,充分保证数据的完整性和一致性。
客户端应用软件一般包括用户界面、本地数据库等。它面向用户,接受用户的应用请求,并通过一定的协议或接口与服务器进行通信,将服务器提供的数据等资源经过处理后提供给用户。当用户通过客户端向服务器发出数据访问请求时,客户端将请求传送给服务器,服务器对该请求进行分析、执行,最后将结果返回给客户端,显示给用户。客户端的请求可采用SQL语句或直接调用服务器上的存储过程来实现。服务器将运行的结果发送给客户端,客户端和服务器之间的通信通过数据库引擎(如ODBC引擎、OLE DB引擎)来完成,数据库一般采用大型数据库(如SQL Server、Oracle等)。C/S模式的结构模式如图1-2所示。
C/S结构模式能够在网络环境完成数据资源的共享,提供了开放的接口,在客户端屏蔽掉了后端的复杂性,使客户端的开发、使用更加容易和简单,适合管理信息系统的一般应用,但C/S结构模式也存在许多不足,主要体现以下几点。
(1)C/S结构模式只能适用于中、小规模的局域网,对于大规模的局域网或广域网不能很好地胜任。
(2)开发成本高,C/S结构对客户端软硬件要求较高,尤其是软件的不断升级换代,对硬件要求不断提高,增加了整个系统的成本。
(3)当系统的用户数量增加时,服务器的负载急剧增加,使系统性能明显下降。
(4)移植困难,不同开发工具开发的应用程序,一般兼容性差,不能移植到其他平台上运行。
(5)系统管理和维护工作较困难,不同客户机安装了不同的子系统软件,用户界面风格不一,使用繁杂。
1.4.2 B/S结构
随着Internet不断普及,以Web技术为基础的B/S模式正日益显现其先进性,当今很多基于大型数据库的管理信息系统都采用这种全新的结构模式。B/S结构全称为Browser/Server,即浏览器/服务器模式。
1.B/S结构模式的工作原理
B/S结构由浏览器、Web服务器、数据库服务器3个层次组成。这种模式,客户端使用一个通用的浏览器,代替了形形色色的各种应用程序软件,用户的所有操作都是通过浏览器进行的。该结构的核心是Web服务器,它负责接受本地或远程的HTTP查询请求,然后根据查询条件到数据库服务器中提取相关数据,再将查询结果翻译成HTML,传回提出查询请求的浏览器。同样,浏览器也会将更改、删除、新增数据记录的请求传到Web服务器,由Web服务器完成相关工作。B/S模式的结构模型如图1-3所示。
2.B/S结构模式的优点
(1)使用简单。用户使用单一的Browser软件,操作方便,易学易用。
(2)维护方便。应用程序都放在Web服务器端,软件的开发、升级与维护只在服务器端进行,减轻了开发与维护的工作量。
(3)对客户端硬件要求低。客户端只需安装一种Web的浏览器软件(如微软公司的IE浏览器)。
(4)能充分利用现有资源。B/S结构采用标准的TCP/IP、HTTP协议,可以与现有Intranet网很好地结合。
(5)可扩展性好。B/S结构可直接通过Internet访问服务器。
(6)信息资源共享程度高。Intranet网中的用户可方便地访问系统外资源,Intranet外的用户也可访问Intranet网内的资源。
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 建立在广域网之上,不必是专门的网络硬件环境,利用电话上网, 租用设备。信息自己管理,有比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 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高;B/S 建立在浏览器上,有更加丰富和生动的表现方式与用户交流,并且大部分难度较低,开发成本低。
(7)信息流
C/S 程序一般是典型的集中式的机械式处理, 交互性相对低;B/S信息流向可变化。如电子商务的B-B、B-C和B-G等信息、流向的变化很多。
C/S结构与B/S结构各有优势,在相当长的时间内二者将会共存。