电子商务网站是一种典型的基于Web的分布式、三层应用体系结构,即表示层、应用层和数据层。其中,应用层与表示层和数据层明显地分离出来,如图1.1所示。
(1)浏览器指的是在客户端浏览Internet信息的软件,也称为Web浏览器。
(2)Web服务器指的是计算机信息资源的存放主机。
(3)数据库服务器存放可以在Web服务器中调用的数据库数据。
图1.1 电子商务网站体系结构
Web通信的基本原理:由浏览器向Web服务器发出HTTP请求,Web服务器接到请求后,进行相应的处理,并将处理的结果以HTML文件的形式返回浏览器,客户浏览器对其进行解释并显示给用户。Web服务器要与数据库服务器进行交互,则必须通过中间件才能实现,常用的中间件有CGI、ASP、JSP、JDBC、WebAPI等。
Web客户端的主要任务是展现信息内容,其涉及的技术主要包括HTML、CSS、脚本程序、Java Applets、XML、插件技术以及VRML技术等。
1.HTML
HTML是Hypertext Markup Language(超文本标记语言)的缩写,它是构成Web页面的主要工具,是由SGML(Standard General Markup Language,标准广义标志语言)衍生出来的一种通用文档,用来定义信息表现方式的格式。HTML是与Web密切相关的第二个协议。用HTML格式书写的文件,不会因为操作平台与界面程序的差异而造成读取障碍,它正确地“告诉”Web浏览器如何显示信息,如何进行链接。
在HTML文档中包含有特殊的标记,它使得该文档元素能指向其他HTML文档或其他某一个图片、某一个站点等,这一现象称为超文本链接。超文本链接可用于不同的服务器,还可以创建指向该文档另一部分的链接,这种内嵌链接是从一个文档跳转到另一个文档的关键,正是由于它才使得客户浏览器与服务器的数量以指数型方式增加,才使得用户能轻松地在网上进行“冲浪”,并通过这种链接“畅游全世界”。
2.CSS
CSS(Cascading Style Sheet,层叠样式表)是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。CSS的引入就是为了使HTML语言更好地适应页面的美工设计。它以HTML为基础,提供了丰富的格式化功能,如字体、颜色、背景、整体排版等,并且网页设计者可以针对各种可视化浏览器来设置不同的样式风格。CSS3是CSS技术的升级版本,CSS3语言开发是朝着模块化发展的。以前的规范作为一个模块过于庞大而且比较复杂,所以,把它分解为一些小的模块,更多新的模块也被加入进来。这些模块包括盒子模型、列表模块、超链接方式、语言模块、背景和边框、文字特效、多栏布局等。
【拓展文本】
3.脚本语言
脚本语言是嵌入在HTML文档中的程序。使用脚本程序可以创建动态页面,大大提高交互性。用于编写脚本程序的语言主要有JavaScript和VBScript。JavaScript由Netscape公司开发,具有易于使用、变量类型灵活和无须编译等特点。VBScript由Mi-crosoft公司开发,与JavaScript一样,可用于设计交互的Web页面。要说明的是,虽然JavaScript和VBScript语言最初都是为创建客户端动态页面而设计的,但它们都可以用于服务端脚本程序的编写。客户端脚本与服务端脚本程序的区别在于执行的位置不同,前者在客户端机器执行,而后者在Web服务端机器执行。
【拓展文本】
4.Java Applets
Java Applets即Java小应用程序。使用Java语言创建小应用程序,浏览器可以将JavaApplets从服务器下载到浏览器,在浏览器所在的机器上运行。JavaApplets可提供动画、音频和音乐等多媒体服务。JavaApplets使得Web页面从只能展现静态的文本或图像信息,发展到可以动态展现丰富多样的信息。动态Web页面,不仅表现在网页的视觉展示方式上,更重要的是它可以对网页中的内容进行控制与修改。
【拓展文本】
5.XML
XML(Extensible Markup Language)是一种可扩展标记语言,可扩展性是因为XML里允许用户创建所需的标签,而HTML的标签却是固定的。
XML并不是标记语言,它只是用来创造标记语言(如HTML)的元语言。XML也不是HTML的替代产品,或HTML的升级,它只是HTML的补充,为HTML扩展更多功能。我们不能用XML来直接编写网页。即便是包含了XML数据,依然要转换成HTML格式才能在浏览器上显示。
【拓展文本】
在XML中,标记语法是通过文件类型定义(Document Type Definition,DTD)来描述的。也就是说,通过DTD来定义XML文档中的元素、属性以及元素之间的关系。一个遵守XML语法规则并遵守相应DTD文件规范的XML文档才能称为有效的XML文档。
采用XML技术的网页,最大的特点是将数据与显示分离,数据存放在XML文档中。XML数据与HTML间的调用和交互是通过页面脚本语言来实现的。
6.插件技术
插件技术大大丰富了浏览器的多媒体信息展示功能,常见的插件包括QuickTime、Realplayer、Media Player和Flash等。
【拓展文本】
7.VRML技术
Web已经由静态步入动态,并正在逐渐由二维走向三维,将用户带入五彩缤纷的虚拟现实世界。VRML(Virtual Reality Modeling Language)是目前创建三维对象最重要的工具,它是一种基于文本的语言,并可运行于任何平台。
【拓展文本】
对于电子商务网站开发来说,更重要的是应用服务器端的程序,与Web客户端技术从静态向动态的演进过程类似,Web服务端的开发技术也是由静态向动态逐渐发展、完善起来的。Web服务器技术主要包括服务器端技术、CGI技术、PHP技术、ASP技术和JSP技术等。
1.服务器端技术
服务器端技术主要指有关Web服务器构建的基本技术,包括服务器策略与结构设计、服务器软硬件的选择及其他有关服务器构建的问题。
2.CGI技术
CGI(Common Gateway Interface)是一种公共网关接口。本质上,CGI是一个运行在服务器上的程序,是Web服务器调用外部程序的一个接口。通过CGI,Web服务器能将用户从浏览器中输入的数据作为参数,调用本机上的程序,并把运行结果返回用户浏览器。
启动CGI程序需要以下基本方法。
(1)用户在HTML页面中单击某个链接。
(2)浏览器请求服务器运行某个CGI程序。
(3)如果用户具有适当权限,服务器运行该CGI程序。
(4)Web服务器将CGI程序的结果返回浏览器。
(5)浏览器显示输出结果。
在创建CGI程序时,需要使用某种编程语言。常用的有Visual Basic、Shell Script、Perl、Java以及C/C++等。
3.ASP技术
ASP(Active Server Pages)是一种动态服务器主页。ASP是一套服务器端的脚本运行环境。通过ASP,可以结合HTML网页、ASP指令、ActiveX元素和JavaScript脚本或VBScript脚本建立动态、交互、高效的Web服务器应用程序。
ASP支持动态的HTML主页,它的执行可以分成以下几个步骤。
(1)用户在浏览器的网址栏中输入ASP的文件名,并按Enter键。
(2)浏览器将该ASP的请求发送给Web服务器IIS(Internet Information Services)。
(3)IIS接收该申请要求,并根据其.asp的扩展名从硬盘或者内存中调用正确的ASP文件。
(4)这个文件被发送到一个称为ASP.DLL的特定文件中,然后将会从头至尾被执行并根据命令要求生成相应的静态主页。
(5)该主页将被送回浏览器,由用户浏览器解释执行并显示。
ASP不仅可以提供动态网页,而且可以利用ADO(Active Data Object,微软开发的一种数据访问模型)方便地访问数据库,这样我们就能够开发基于WWW的应用系统。
4.PHP技术
PHP(PersonalHomePage)是一种跨平台的服务器端的嵌入式脚本语言,它大量地借用C、Java和Perl语言的语法,并结合PHP自己的特性,使Web开发者能够快速地写出动态生成页面。它支持目前绝大多数数据库。最重要的一点,PHP是完全免费的,不用花钱就可以从各个站点自由下载,而且可以不受限制地获得源码,甚至可以加进用户自己需要的特色。
对于中小企业来说,使用PHP构建电子商务网站无疑是最佳选择。因为PHP是完全免费的,并且开放源代码。PHP在大多数UNIX平台、GUN/Linux和微软Windows平台上均可以运行,而且安装过程比较简单。PHP支持绝大多数主流或非主流的数据库,如dbase、Informix、Microsoft SQL Server、MySQL、Sybase、ODBC(Open Database Connectivity)和Oracle等。目前利用Apache做Web服务器,MySQL为后台数据库,PHP开发网页是非常流行的一个组合。
5.JSP技术
【拓展文本】
JSP(Java Server Pages)是Servlet2.1 API的扩展。利用这一技术,可以建立先进、安全和跨平台的动态网站,而且它能够适应市场上包括ApacheWebServer、IIS在内的大部分的服务器产品。
JSP与Microsoft的ASP技术非常相似,都是面向Web服务器的技术,但JSP可以不加修改运行在多数平台上,符合“一次编写,各处运行”的Java标准。
Java Beans是一种基于Java的可重复使用的软件组件,在JSP程序中,Java Beans常用来封装事务逻辑、数据库操作等,可以实现业务逻辑和前台程序(如JSP程序)的分离。目前,JavaBeans在服务器端的应用非常广泛。
【拓展文本】
当Web服务器接收到一个JSP文件请求时,Web服务器将请求发送至JSP服务器(如Apache公司的Tomcat),JSP服务器对JSP文件进行语法分析并将其编译成Servlet。该编译过程仅在初次调用时发生。
JSP技术具有以下优点。
1)将内容的生成和显示进行分离
使用JSP技术,Web页面开发人员可以使用HTML或者XML标记来设计页面的显示方式,使用JSP标记或者小脚本来生成页面的动态内容。核心逻辑被封装在标记和JavaBeans中,这样就可以明确地进行分工,Web页面设计人员编写HTML,Servlets程序人员和JavaBeans程序人员编写动态部分和各种组件。
在服务器端,JSP引擎解释JSP标记和小脚本,生成所请求的内容(如通过JavaBeans组件和JDBC技术访问数据库),然后将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于用户保护自己的代码,还保证任何基于HTML的Web浏览器的完全可用性。
2)强调可重用的组件
绝大多数JSP页面依赖于可重用的、跨平台的组件(Java Beans或者Enterprise Java Beans组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。
3)采用标记简化页面开发
绝大多数JSP处理将通过与JSP相关的XML标记来完成。在JSP页面中,JSP语句利用标记将JSP脚本嵌入HTML文档中,或利用JSP标记访问JavaBeans组件。标记的好处在于它们易于在应用程序间使用和共享。
JSP技术能够使开发者扩展JSP标记。第三方开发人员和其他人员可以为常用功能创建自己的标志库。这使得Web页面开发人员能够使用熟悉的工具如同标记一样地执行特定功能的构件来工作。
4)安全性高
由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为JavaServlets,因此JSP页面具有Java技术的所有优势,包括健壮的存储管理和相当高的安全性。
5)一次编写,各处运行
作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,用户可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。本次开发使用的就是JSP语言。
电子商务网站客户端与服务器端是通过HTTP通信协议进行通信的,HTTP通信协议允许用户提出HTTP“请求”(Request),然后由服务器根据实际处理结果传回HTTP“响应”(Response)。
【拓展文本】
(1)当用户向Web服务器送出请求时,Web服务器将会开启一个新的链接。
(2)通过该链接,用户可以将HTTP请求传递给Web服务器。
(3)当Web服务器收到HTTP请求时,将进行解析与处理,并把处理结果包装成HTTP响应。
(4)Web服务器将HTTP响应传至用户。只要用户接收到HTTP响应,Web服务器就会关闭该链接,用户的执行状态将不会保存。