《电子商务网站建设 第9章》由会员分享,可在线阅读,更多相关《电子商务网站建设 第9章(179页珍藏版)》请在金锄头文库上搜索。
1、第3部分 电子商务应用程序开发第9章 Web应用程序概述本章主要介绍9.1 什么是Web应用程序 9.2 Web应用程序的工作方式 9.3 VBScript脚本语言简介 9.4 ASP应用服务器技术基础 9.5 数据库基础 9.6 IIS Web服务器介绍 9.7 本章摘要与重点回顾运用前面章节所述的方法,已经可以建立一个完 整的网站,并为访问者提供静态的信息。但是,这 样一个网站只能提供信息,其性质等同于一个出版 物,不能称为一个真正的Web应用,这样的静态网 站是不能用于电子商务活动的,电子商务活动要求 网站提供与使用者交互的手段。那么,什么是Web 应用程序呢?9.1 什么是Web应用程
2、序Web应用程序是一组Web页面,这些Web页面与 访问者交互,与其他Web页面交互,并与Web服务 器上访问的各种资源(例如数据库)交互,来完成 一个特定的功能。所谓交互,是指以提问、回答的 方式交换需要的信息。Web应用程序是以大量运用 动态页面为特征的。动态页面是与静态页面相对应 的概念。静态页面的内容已完全确定,Web服务器 在用户请求该页时不做任何改变地将该页发给用户 。动态页面的部分或全部内容是不确定的,用户最 终看到的动态页面所呈现出来的内容只在用户向 Web服务器请求该页时才能确定。利用Web应用程序,用户可以方便地完成信息的 采集、保存、快速查询和分析。网上商店、网上问 卷、
3、用户反馈表、电子图书馆、搜索引擎等都是 Web应用程序的生动实例。 图9-1是Macromedia官方站点上的唱片店实例。 唱片店的商品目录(Catalog)是动态页面的很好 的例子,用户看到商品目录页面在不同的日期、不 同的时刻都可能不同。用户每次请求该页面时, Web服务器都会根据当时商品数据库中的实际内容 ,来生成当时有效的商品目录页面。 查阅有关唱片店Web应用程序实例的信息,可输 入下列网址: http:/ aver/articles/record_store.html图9-1唱片店实例9.2.1静态页面的处理流程静态页面的内容在页面设计者设计时就完全确定 了,它由一系列静态的HTM
4、L标签元素组成。Web 服务器上保存的静态页面传到用户端时是不变的。 下面是一个静态页面的例子: 9.2 Web应用程序的工作方式静态页面实例静态页面实例源码传到用户端不会有变化处理静态页面的工作由Web服务器完全承担。当 用户单击网页上的超链接,选择浏览器中的书签或 直接在浏览器的地址栏中输入URL地址来请求一个 静态页面时,浏览器会向Web服务器发送对该页面 的请求; Web服务器接收到该请求后,会根据请 求所指出的页面地址,根据服务器上虚拟目录和实 目录的对应关系找到该页面文件; 然后Web服务 器把该页面文件通过HTTP协议原封不动地传给用 户端的浏览器,其处理流程如图9-2所示。图9
5、-2静态页面的处理流程简单来说,静态页面的处理流程如下: (1) 浏览器发出对静态页面的请求。 (2) Web服务器寻找该页面。 (3) Web服务器将该页面返回给浏览器。对Web应用程序而言,处理流程就没有这么简单 。由于对动态页面有部分的页面内容会在请求时生 成,所以处理上增加一些层次。动态页面是在静态 页面的基础上添加服务器端脚本或标签编写而成的 。当Web服务器接收到对动态页面的请求,找到该 页面后,并不马上传回用户,而是先把页面传给一 个专门负责处理动态元素的处理层次来生成最终传 回用户端的页面内容。这个处理层次被称为应用服 务器。9.2.2 简单动态页面的处理流程应用服务器执行动态
6、页面中的服务器端脚本或标 签,执行的动作包括对服务器端可访问的资源的操 作(例如文件操作、数据库操作、会话信息等)和 生成结果。生成结果是把原来页面中的服务器端脚 本或标签替换成一系列静态的页面元素,生成什么 页面由服务器端脚本或标签控制。因此,应用服务 器返回给Web服务器的是一个静态页面,再由Web 服务器将这个静态的结果页面传给用户。对简单的 动态页面,不涉及外部资源访问,处理流程仅增加 应用服务器这一个层次。图9-3是这个流程的示意 图。图9-3简单动态页面的处理流程该流程概述如下: (1) 浏览器发出对动态页面的请求; (2) Web服务器找到该页面,传给应用服务器 ; (3) 应用
7、服务器扫描页面,执行代码,生成结 果; (4) 应用服务器把结果页面返回给Web服务器 ; (5) Web服务器发回该结果页面给浏览器。下面是一个ASP动态页面的例子: 简单动态页面实例应用服务器会将上面的服务器端脚本替换掉在用户端浏览器的某一次执行看到的是如图9-4所 示的结果页面。 如果在用户端浏览器查看该页面的源代码,可以 看到服务器端脚本已经被替换成该函 数的执行结果: 2002 8 22 10:29:36。由于脚本在服务器上而不是在客户端运行,传送 到浏览器上的 Web 页是在 Web 服务器上生成的, 所以不必担心浏览器能否处理脚本,Web 服务器 已经完成了所有脚本的处理,并将标
8、准的 HTML 传输给浏览器。由于只有脚本的结果返回到浏览器 ,所以服务器端脚本不易复制,用户看不到当前正 在浏览的页面创建时的脚本命令。图9-4简单动态页面的结果实例当需要访问外部资源时,Web应用程序的处理流 程会增加更多的处理层次。这种情况下,动态页面 的服务器脚本中将包含访问外部资源的代码,可能 对外部资源作检索、更新、添删等操作,并可把操 作结果或者抽取的外部资源数据编排好,生成替换 服务器脚本的静态内容。外部资源的最典型的例子 是数据库,但并不只限于数据库,文件系统、企业 应用网关,如企业资源计划(ERP)/客户关系管 理(CRM)/供应链管理(SCM)、传统主机应用 网关(IBM
9、的交易处理中间件(CICS)等都是典 型的外部资源。 9.2.3 复杂动态页面的处理流程图9-5复杂动态页面的处理流程以数据库作为外部资源为例,当Web服务器接收 到对动态页面的请求,找到该页面后,把页面传给 应用服务器; 应用服务器执行动态页面中的服务 器端脚本或标签,当遇到访问数据库的代码时,应 用服务器发送代码中的SQL命令给数据库服务器; 数据库服务器执行SQL命令,把结果所得的数据集 返回给应用服务器; 应用服务器执行脚本中的后 续代码,生成替换脚本的静态内容,生成过程中如 何利用数据库服务器返回的数据集由脚本代码控制 ; 应用服务器将最终生成的静态页面返回给Web 服务器; 再由W
10、eb服务器将这个静态的结果页面 传给用户,图9-5是这一过程的示意图。Web应用程序的一般处理流程概括如下: (1) 浏览器发出对动态页面的请求; (2) Web服务器找到该页面,传给应用服务器 ; (3) 应用服务器扫描页面,执行代码; (4) 遇外部资源访问代码,应用服务器发送资 源访问命令给资源服务器; (5) 资源服务器执行资源访问命令,返回结果 数据集; (6) 应用服务器执行余下的代码,插入数据到 结果页面; (7) 应用服务器把结果页面返回给Web服务器 ; (8) Web服务器发回该结果页面给浏览器。VBScript脚本语言是一种介于HTML语言和 Visual Basic高级
11、语言之间的一种语言,也可以称为 简化的Visual Basic语言。它接近于高级语言,但却 比高级语言简单易学,当然其功能也没有高级语言 那么强。 ASP本身并不是一种脚本语言,在ASP程序中常 用的脚本语言有VBScript和JavaScript等语言。 VBScript脚本语言直接来源于Visual Basic语言,并 且继承了VB的简单易学的特点。9.3 VBScript脚本语言简介VBScript脚本程序既可以在客户端浏览器中执行 ,也可以在服务器端执行,一般ASP程序中的 VBScript语言是放在服务器端执行的。 下面简单介绍VBScript脚本语言的语法。当VBScript代码放
12、在服务器端执行时有2种语法 格式。 语法格式1:语法格式2:VBScript代码9.3.1 VBScript代码的基本语法格式有时,为了某种需要,可能也会将VBScript代码 放在客户端执行,此时的语法格式如下: VBScript代码在Visual Basic、C+等高级语言中,有整数、字符 、浮点数等不同的数据类型,但在VBScript中,只有 一种数据类型,称为Variant,也叫做变体类型。 Variant是一种特殊的数据类型,根据不同的使用方式 ,它可以包含不同的数据类别信息。Variant变量中保 存的数据类型称为变量的子类型。 例9.1 Variable=2003VBScript
13、会将它当成整数对待 Variable=“2003“VBScript会将它当成字符串对待 Variable=“中国上海“VBScript会将它当成字符串对 待9.3.2 VBScript的数据类型Variable=20.03VBScript会将它当成实数对待 从例9.1可以看出,VBScript会根据赋值自动确定 数据变量的数据子类型。 注意:在ASP中VBScript用的标点符号都是在英 文状态下输入的。 VBScript也会根据代码的上下文自动转换数据的 子类型。 例9.2 Variable_1=“2003“ 这里Variable_1作为一个字 符串变量来工作 Variable_2=Vari
14、able_1+3这时VBScript就会自动 将Variable_1转换成整数变量,然后参与运算一般情况下,Variant变量会自动转换其代表的数 据子类型,但有时候,也会遇到一些数据类型不匹 配造成的错误。这时,可以使用VBScript的转换函 数来强制转换数据的子类型。表9-1列出Variant的 数据子类型。 表9-1 Variant的数据子类型 子类型说明String变长字符串类型Byte其值是0 255之间的无符号整数Integer其值是-32 76832 767之间的带符号的整数Long取值范围是-2 147 483 6482 147 483 647之间的长整型整数Single包含
15、单 精度浮点数Double其值是双精度浮点数Date(Time) 其值代表某个日期和时间的数字Boolean其值是 True和FalseCurrency取值范围是-922 337 203 685477.580 8922 337 203 685 477.580 7Empty变量 未初始化时,如果代码中将其作为数字,其值就是 0; 如果代码中将其作为字符串,其值就是一个零 长度字符串(“)Null不包含任何有效数据的变量 Object包含一个对象9.3.3VBScript的常量常量是在整个脚本中保持不变的量。常量可以代 表字符串、数字等常数,常量一经声明,其值将不 能再更改。声明常量的意义就在于可
16、以在程序的任 何部分使用该常量来代表特定的数值,从而方便程 序的编写。用Const语句在VBScript中创建常量。例9.3 Const PI=3.1415926 表示数值型常数 Const Val=100 表示数值型常数 Const char1=“中国“ 表示字符串型常数 Const char2=“100“ 表示字符串型常数 Const birthday=#2003 1 12# 表示日期或时间常 数 表9-2是用于连接常量和变量构成表达式的运算符 。算术运算符比较运算符逻辑运算符描述符号描述 符号描述符号求幂等于=逻辑非Not负号-不等于VBScript的循环语句常用于重复执行一组语句, 例如,求累加或阶乘,或重复从数据库中一次读出 或写入多条记录。VBScript中的循环语句有4种常 见的形式。 1. ForNext循环语句 ForNext循环语句是一种强制型循环语句,其 语法格式与