电子商务2完整版教学课件全书电子讲义最新

上传人:hs****ma 文档编号:569748024 上传时间:2024-07-30 格式:PPT 页数:355 大小:5.70MB
返回 下载 相关 举报
电子商务2完整版教学课件全书电子讲义最新_第1页
第1页 / 共355页
电子商务2完整版教学课件全书电子讲义最新_第2页
第2页 / 共355页
电子商务2完整版教学课件全书电子讲义最新_第3页
第3页 / 共355页
电子商务2完整版教学课件全书电子讲义最新_第4页
第4页 / 共355页
电子商务2完整版教学课件全书电子讲义最新_第5页
第5页 / 共355页
点击查看更多>>
资源描述

《电子商务2完整版教学课件全书电子讲义最新》由会员分享,可在线阅读,更多相关《电子商务2完整版教学课件全书电子讲义最新(355页珍藏版)》请在金锄头文库上搜索。

1、1第第1 1章章 电子商务网站的基础知识电子商务网站的基础知识1.1浏览商务网站11.2商务网站概述41.3商务网站的规划与设计分析621.11.1浏览商务网站浏览商务网站1.1.1任务1实训准备11.1.2任务2浏览网站131.1.1 任务任务1实训准备实训准备硬件:能访问Internet的机房,学生每人一台计算机1.11.1浏览商务网站浏览商务网站41.1.21.1.2任务任务22浏览网站浏览网站1 1办公类网站办公类网站 通常在企业内部为提高办公效率所采用的网站,如图1-1所示,提供了在学校内部各部门之间的办公及公文管理系统。实现网上通知及时传递,公文及时发放,以及公文查找等功能。图1-

2、1 天津职业大学办公及公文管理系统 52企业宣传类网站企业宣传类网站 天津南开创元公司:天津南开创元公司:http:/。如图。如图1-2所示。所示。图1-2 南开创元企业网站 6这类网站通常在首页上用文字或图片介绍企业的最新信息动态,例如本例中的南开创元属于软件开发企业,所以最新动态介绍了主要的软件产品;在网站首页的上部,放置一些链接到网站的其他页面,我们称为目录划分,该网站的目录划分结构为:Home(主页)、“关于我们”、“创元动态”、“成功案例”、“产品介绍”、“技术支持”、“代理产品”、“公司诚聘”、“合作伙伴”。其他的企业网站首页面安排与栏目划分与此大体类似。73信息发布类商务网站信息

3、发布类商务网站天津市软件行业协会(http:/)。这类网站通常是某个行业信息集成单位的网上交流系统,例如本例中的天津市软件行业协会,集中了天津市软件行业的最新动态与相关行业规定。这类网站的特点是专业信息量大,所以栏目的划分至关重要;对于首页内容的布局如图1-3所示的结构。8该类网站的目录划分随企业特点不同而不同,例如上面的天津市软件行业协会网站的目录结构:“首页”、“业界动态”、“协会概况”、“软件基地”、“政策法规”、“认证专栏”、“技术专栏”、“企业之窗”、“Language”。图1-3 天津市软件行业协会首页94电子商城当前的电子商城几乎提供了电子商务类网站所支持的所有功能:例如商品检索

4、、商品采购、商品展示、订单支持,送货上门等商业一条龙服务,使客户足不出户轻松购物。如易淘吧电子商城(见图1-4)。图1-4 易淘吧电子商城 101.21.2商务网站概述商务网站概述 1.2.1任务1将商务网站分类41.2.2任务2对网站系统进行结构化设计6111-2-11-2-11-2-11-2-1任务任务任务任务1 1 1 1将商务网站分类将商务网站分类将商务网站分类将商务网站分类1普及型网站普及型网站企企业根据自身要求确定信息的根据自身要求确定信息的发布布类型和具体内容(如企型和具体内容(如企业基本基本情况介情况介绍、通、通讯地址、地址、产品和服品和服务信息、供求信息、人信息、供求信息、人

5、员招聘信息和招聘信息和合作信息等),以达到与客合作信息等),以达到与客户、供、供应商、公众和其他一切商、公众和其他一切对该企企业感感兴趣的人趣的人传送信息的目的。送信息的目的。 该类网站多数网站多数为静静态页面,主要用以面,主要用以进行宣行宣传。2应用型网站用型网站 除了除了发布企布企业信息以外,企信息以外,企业还可以利用互可以利用互联网的交互功能与客网的交互功能与客户进行交流;利用在行交流;利用在线订单系系统接收商品接收商品订购和和订制;利用在制;利用在线调查引引擎擎调查客客户的需求和喜好;利用留言板接的需求和喜好;利用留言板接纳客客户的意的意见等。等。应用型网站的主要功能包括如下。用型网站

6、的主要功能包括如下。(1)企)企业信息信息发布:包括公司布:包括公司简介、部介、部门简介、公司最新介、公司最新动态、公司公告、公司公告、产品品推荐等推荐等栏目。目。(2)商品信息)商品信息发布系布系统:企:企业可以通可以通过此系此系统发布如商品性能、价格、布如商品性能、价格、图形、功形、功能介能介绍、使用演示、客、使用演示、客户评价等内容。另外可以接收客价等内容。另外可以接收客户发来的在来的在线商品商品订单,网站,网站还可根据企可根据企业需要,开需要,开发出在出在线支付、在支付、在线结算等系算等系统,使企,使企业网站从网站从简单的网上橱窗的网上橱窗发展成展成为网上交易柜台。网上交易柜台。123

7、电子商子商务类网站网站通过在电子商务应用中对它的一般特点与功能的抽象和定义,解决面向不同电子商务应用层次的通用性问题,为用户提供功能完善、效率高、成本低的建设电子商务应用网站的整体解决方案。电子商务应用被划分为:商品检索、商品采购、订单支付、客户服务和系统管理五大模块。电子商务类网站的主要功能包括如下。(1)支持多种形式的商品发布。(2)支持商品的价格和交叉促销方式。(3)购物车采用Cookie技术,最大限度的提高商品采购的速度。(4)个性化的采购订单模板,方便顾客进行购物组合比较,并实现常规购物的快速选购。(5)购物车内置的价格计算模型可以根据商家的价格体系灵活订制。(6)支持多种国内外主流

8、信用卡的在线支付。(7)完善的客户服务和客户关系管理。(8)与管理软件系列产品进行无缝集成,快速构建大型商务站点。134媒体信息服务网站系统媒体信息服务网站系统主要服务对象为报刊杂志的读者与广告客户,其功能简介如下。(1)信息发布系统:通过信息发布,将报社的文章快速方便地在网上发布。(2)电子版系统:报社可以根据需要,设定一定数量的网站专栏,构造本刊电子版。(3)客户在线咨询系统:可将本社各种最新公告及时通报给读者、特约记者和广告客户,读者可以通过此系统向报社编辑部提出自己的建议和意见、广告客户可以通过此系统向广告部提交广告订单;特约记者可以通过此系统实现在线投递稿件。(4)网站管理系统:网站

9、管理系统使用对象是系统管理员和网站编辑,主要包括用户及权限设置、数据库维护、网页设置、标志与标题设置及网站各栏目的内容编辑等功能。145办公事公事务管理网站管理网站办公事务管理网站系统主要包括办公事务管理系统、人力资源管理系统、办公成本管理系统和网站管理系统。其具体功能如下。(1)办公事务管理系统主要包括公文与文档管理、企业公告、企业大事记、会议纪要、资产与办公用品管理、行政管理规章制度、办公事务讨论组。(2)人力资源管理系统主要包括员工简历、员工档案、岗位职责、员工通讯录、人事管理规范、人事讨论组等功能。(3)办公成本管理系统主要包括固定资产管理、人力成本管理、经营成本管理等系统。(4)网站

10、管理系统本系统为网站管理人员提供了便捷的网站管理工具,主要包括用户及权限设置、数据库维护、网页设置、标志与标题设置及网站各栏目内容编辑等功能。156商商务管理网站管理网站商务管理网站包括广告商品管理系统、客户管理系统、合同管理系统、营销管理系统及网站管理系统,主要功能如下。(1)广告商品管理系统包括广告资源管理、计划与系统管理,可为公司市场、销售等经营部门提供及时的信息服务。(2)客户管理系统主要包括客户管理、商务代表管理、代理商(大客户)管理等功能,可及时为公司营销管理人员提供最新的客户及相关资料。(3)合同管理系统主要包括合同设置、合同执行、合同评审、变更管理、经济指标、费用支付及信息集成

11、等,规范并优化公司的合同管理流程及管理体系。(4)营销管理系统主要包括经营预算与结算管理以及产品销售量、商务代表业绩、客户采购量、销售金额等信息的统计与分类管理功能。(5)网站管理系统本系统为网站管理人员提供了便捷的网站管理工具,主要包括用户及权限设置、数据库维护、网页设置、标志与标题设置及网站各栏目内容编辑等功能。167企企业信息服信息服务网站网站企业信息服务网站系统主要服务对象为企业客户。通过企业信息服务网站,客户可以及时了解企业经营范围、最新动态、商品及价格等信息,并可通过网站提供的客户咨询服务与企业相关部门进行在线信息交流。主要功能如下:(1)公司信息发布系统本系统包括公司简介、部门简

12、介、最新动态、公告、产品推荐等栏目。(2)产品信息发布系统企业可以通过此系统发布如产品介绍、价格、图片、使用演示、评价等内容。此外,企业可以在此基础上定制开发具备产品定购、在线支付、在线结算等功能的应用系统,使本系统从网上橱窗发展成网上交易柜台。通过此系统,客户可以及时将其需求、意见和建议等信息及时反馈到企业相关部门;企业可以通过此系统,及时将最新的售前与售后咨询服务提供给客户。(3)网站管理系统本系统为网站管理人员提供了便捷的网站管理工具,主要包括用户及权限设置、数据库维护、网页设置、标志与标题设置及网站各栏目内容编辑等功能。171.2.2 1.2.2 1.2.2 1.2.2 任务任务任务任

13、务2 2 2 2对网站系统进行结构化设计对网站系统进行结构化设计对网站系统进行结构化设计对网站系统进行结构化设计 随着技随着技术的不断的不断发展和用展和用户对网站功能的需求不断网站功能的需求不断提高,如今网站提高,如今网站项目的目的设计已已经不能再不能再仅仅简单地利用地利用静静态html文件来文件来实现,作,作为一一类特殊的信息系特殊的信息系统,网站,网站项目的目的设计和开和开发越来越像一个越来越像一个软件工程,也越来越复件工程,也越来越复杂,网站的开,网站的开发和建和建设就是一个系就是一个系统工程的开工程的开发和建和建设。网站是企网站是企业向用向用户和网民提供信息(包括和网民提供信息(包括产

14、品和服品和服务)的一种方式,是企)的一种方式,是企业开展开展电子商子商务的基的基础设施和信施和信息平台,离开网站(或者只是利用第三方网站)去息平台,离开网站(或者只是利用第三方网站)去谈电子商子商务是不可能的。企是不可能的。企业的网址被称的网址被称为“网网络商商标”,也是企也是企业无形无形资产的的组成部分,而网站是成部分,而网站是Internet上宣上宣传和反映企和反映企业形象和文化的重要窗口。形象和文化的重要窗口。18商务网站的功能模块如图1-5所示。191.31.3商务网站的规划与设计分析商务网站的规划与设计分析 1.3.1任务1确定Web站点设计原则71.3.2任务2设计Web站点基本模

15、块71.3.3任务3确定Web站点设计要点81.3.4任务4设计首页101.3.5任务5编排网站内容101.3.6任务6对网页进行可视化设计121.3.7任务7设计网站的目录结构和链接结构141.3.8任务8了解网站设计的常用技术1620企业网站作为一类特殊的信息系统,在系统设计时,应当遵循上面介绍的系统设计的总体思想和原则。同时,由于它的特殊性,在进行站点系统设计时,除根据该类系统的自身特点,还应当把握下面一些要点。1.31.3商务网站的规划与设计分析商务网站的规划与设计分析 211.3.1 1.3.1 1.3.1 1.3.1 任务任务任务任务1 1 1 1确定确定确定确定WebWebWeb

16、Web站点设计原则站点设计原则站点设计原则站点设计原则 要设计一个有吸引力的网站,至少应该遵循下述一些基本原则。1安全快速访问安全快速访问 足够的带宽是快速访问的保证。页面下载速度是网站留住访问者的关键因素之一,如果20s30s还不能打开一个网页,一般人就会没有耐心。稳定的、全天24小时、全年365天都可以连续工作的服务器是网站正常运作的保证。2及时更新信息及时更新信息 网站信息必须经常更新。在网站建设的初期,很多人错误地认为,要想让网站吸引住浏览者,就一定要把主页的设计尽量做得漂亮。这种看法有极大的片面性。主页设计得好,自然会吸引人们的注意,但这种吸引是暂时的,要想长期吸引住浏览者,最终还是

17、靠网站内容的不断更新。 每次更新的网页内容要尽量在主页中提示给浏览者。由于网站内容的结构一般都是树形结构,所有文章都包含在各级版块或栏目里。因此,如果每次更新的网页内容全都被放进了各级版块和栏目中,浏览者并不知道更新了哪些东西,如果让用户到版块或栏目中去查找,就不是一个好的方法。 223完善完善检索能力索能力合理地组织信息内容,以便让浏览者快速、准确地检索到要查询的信息,这是一个网站是否成功的关键。解决这个问题,通常可通过对网站内容的全中文检索来实现。如果一个网站只有几十页内容,则根本不用进行全中文检索,用遍历方法就可查洵。4网站的信息交互能力网站的信息交互能力如果一个网站只是为访问者提供浏览

18、,而不能引导浏览者参与到网站内容的部分建设中去,那么它的吸引力是有限的。231.3.2 1.3.2 1.3.2 1.3.2 任务任务任务任务2 2 2 2设计设计设计设计WebWebWebWeb站点基本模块站点基本模块站点基本模块站点基本模块1站点结构图(站点结构图(Sitemap)站点结构图是一种有关站点结构、组织方式的示意图。各主要内容或题目的详细内容将被列在其下的副标题中。当访问者点击标题、题目或副标题时,相关的网页就会出现在屏幕当中。站点结构图还可以被视为是站点的分级结构图。以这种方式组织起来的信息可以使访问者迅速找到他所需信息的所在位置。2导航栏(导航栏(Navigation Bar

19、)每个Web站点都应该包括一组导航工具,它出现在此站点的每一个页面中。导航栏中的按钮应该包括:主页、联系方式、反馈及其他一些用户感兴趣的内容。设计导航栏应注意以下几点:(1)图表比单纯的文字效果更佳,但它必须能够清楚地体现出它所链接的内容。(2)无任何链接的内容不要做成按钮的形式。(3)使用常用颜色。避免在链接处使用特殊的颜色,应该使用标准、醒目的颜色。屏幕上显示的页面所对应的按钮应该相应变成灰色,或突出显示,或以其他方式表示出来。(4)每个页面都应包括代表“返回”或“前进”的箭头。243反馈表(反馈表(Feedback Forms)利用反馈表,访问者可以随时便捷的提出信息需求。从反馈表中可以

20、发现,在站点中哪些信息是重要的,哪些是无关紧要的。此外,还可以考虑加设消息栏,用户可以在此发表一些评论,提出他们所关心的问题。这不仅可以使他们与企业保持联系,而且可以让他们互相之间进行交流。4引人入胜的内容(引人入胜的内容(Compelling Content)在每页中都要包含相关的、引人入胜的内容。特别是当要销售某种产品的时候,每个页面都要用精心修饰的内容和图像。企业的目的是为了吸引普通用户,所以站点上所使用的语言也应该通俗易懂,并对专业用语及技术术语进行解释。可将特别重要的内容用符号标记出来,但不要用得过多,以保持页面的简洁。255常常见问题解答(解答(FAQ)创建FAQ可以避免重复回答相

21、同的问题,如果将问题列于FAQ页面的上部,并将每个问题与答案连接在一起,可以节省企业和访问者双方的时间和精力。必须确认在导航栏中包含有FAQ按钮。6精美的精美的图像(像(Good Graphics)图像不应使用过多,要选择合适的、不需要占用太多内存及下载时间的图像。7相关站点相关站点链接(接(Relevant Links)成功的网站通常都可以链接到其他站点,以提供更多相关信息。对每个链接都要做简要说明,以帮助访问者选择最适合其需求的站点。企业需要对所链接站点做定期的访问,删除那些死站点,以免使访问者感到厌烦。每周维护一次就足够了,但要持之以恒。261.3.3 1.3.3 1.3.3 1.3.3

22、 任务任务任务任务3 3 3 3确定确定确定确定WebWebWebWeb站点设计要点站点设计要点站点设计要点站点设计要点各种类型的Web站点的设计侧重点不同,但总的说来有如下设计要点。1目目标明确、定位正确明确、定位正确Web站点的设计是企业或机构发展战略的重要组成部分。想在这个新媒体上展示企业形象、企业文化的信息空间,一定要明确设计站点的目的和用户需求,从而做出切实可行的计划。2主主题鲜明、富有特色明、富有特色在目标明确的基础上,对网站的整体风格和特色做出定位,规划网站的组织结构。要做到主题鲜明突出,力求简洁,要点明确,以简单明确的语言和画面告诉大家本站点的主题,吸引对本站点有需求的人的视线

23、,对无关的人员也能留下一定的印象。对于一些行业标志和公司的标志应充分加以利用。Web站点主页应具备的基本成分包括如下。(1)页头:准确无误地标识企业的站点和企业标志。(2)E-mail地址:用来接收用户垂询。(3)联系信息:如普通邮件地址或电话。(4)版权信息。注意重复利用已有信息,如客户手册、公共关系文档、技术手册和数据库等可以轻而易举地用到企业的Web站点中。273版式版式编排布局合理排布局合理版式设计通过文字图形的空间组合,表达出和谐与美。努力做到整体布局合理化、有序化、整体化;多页面站点页面的编排设计要求把页面之间的有机联系反映出来,这里主要的问题是页面之间和页面内的秩序与内容的关系,

24、特别是关系十分紧密的有上下文关系的页面,一定要设计向前的和向后的按钮,便于浏览者导读。4色彩和色彩和谐重点突出重点突出色彩是艺术表现的要素之一,它是以光刺激眼睛再传导到大脑中枢而产生的一种感觉。在网页设计中,根据和谐、均衡和重点突出的原则,将不同的色彩进行组合、搭配来构成美丽的页面。28利用色彩对人们心理影响的成果,合理地加以运用。按照色彩的记忆性原则,一般暖色较冷色的记忆性强。色彩还具有联想与象征的特质,如:红色象征火、血、太阳;蓝色象征大海、天空和水面等。例如要设计出售冷食的虚拟店面,应使用消极而沉静的颜色,使人心理上感觉凉爽一些。在色彩的运用过程中,还应注意的一个问题是:由于国家和种族的

25、不同,宗教和信仰的不同,生活的地理位置、文化修养的差异,不同的人群对色彩的喜恶程度有着很大差异。如:儿童喜欢对比强烈、个性鲜明的纯颜色;生活在草原上的人喜欢红色;生活在闹市中的人喜欢淡雅的颜色;生活在沙漠中的人喜欢绿色。在设计中要考虑主要读者群的背景和构成。295形式内容和形式内容和谐统一一形式服务于内容,内容又为目的服务,形式与内容的统一是设计网页的基本原则之一。在画面的组织原则中,将丰富的意义和多样的形式组织在一个统一的结构里,形式语言必须符合页面的内容,体现内容的丰富含义。6多媒体功能的利用多媒体功能的利用最大资源优势在于多媒体功能,因而要尽一切努力挖掘它,吸引浏览者保持注意力。因而画面

26、的内容应当有一定的实用性。这里需要注意的问题是,由于网络带宽的限制,在使用多媒体的形式表现网页的内容时应考虑客户端的传输速度,或者说将多媒体的内容控制在用户可接收的下载时间内是十分必要的。307相关站点引相关站点引导链接接一个好的网站的基本要素是用户进入后,与本网站相关的信息都可以方便快捷地找到,其中要借助于相关的站点,所以做好友情链接是一项重要的工作。超文本这种结构使全球所有联上因特网的计算机成为超大规模的信息库,链接到其他网站轻而易举。8网站网站测试必不可少必不可少测试实际上就是模拟用户访问网站的过程,以便发现问题改进设计。许多成功的经验表明,让对计算机不是很熟悉的人来参加网站的测试工作效

27、果非常好,这些人会提出许多专业人员没有顾及到的问题或一些好的建议。9合理地运用新技合理地运用新技术一定要合理地运用网页制作的新技术,切忌将网站变为一个制作网页的技术展台,永远记住用户方便快捷地得到所需要的信息是最重要的;但对于网站设计者来说,必须学习掌握网页设计的新技术,如Java、DHTML、XML等,根据网站内容和形式的需要合理地应用到设计中。311.3.4 1.3.4 1.3.4 1.3.4 任务任务任务任务4 4 4 4设计首页设计首页设计首页设计首页从根本上说,首页是全站内容的目录,能否吸引浏览者留在站点上,能否促使浏览者继续单击进入,全凭首页设计的效果。那么,如何设计好一个首页呢?

28、这需要处理好以下两方面的工作。321确定首确定首页的基本内容模的基本内容模块首页的内容模块是指在首页上需要实现的主要内容和功能。Web站点首页应具备的基本成分包括:页头,准确无误地标识企业的站点和标志;E-mail地址,用来接收用户垂询;联系信息,如普通邮件地址或电话、版权信息。注意可重复利用已有的信息,例如客户手册、公共关系文档、技术手册和数据库等。首页的基本内容包括如下。(1)页头:准确无误地标识企业的站点和标志(Logo)以及广告条(Banner)。(2)主菜单(Menu)。(3)新闻(Whatsnew)。(4)电子邮件(MailList):用来接收用户垂询。(5)联络信息:如普通邮件地

29、址或电话、版权信息(Copyright)等。(6)搜索(Search)。(7)友情链接(Links)。(8)计数器(Count)。(9)其他信息。一般的站点都需要如下一些模块:网站名称(Logo)、广告条(Banner)、主菜单(Menu)、新闻(Whatsnew)、搜索(Search)、友情链接(Links)、邮件列表(MailList)、计数器(Count)、版权(Copyright)等。332设计首首页的版面的版面设计版面的最好方法是:找一张白纸、一支笔,先将理想中的草图勾勒出来,然后再用网页制作软件实现。在设计中,应避免“封面”问题。“封面”是指没有具体内容,只放一个标徽Logo单击进

30、入,或者只有简单的图形菜单的首页。除非是艺术性很强的站点,或者确信内容独特足以吸引浏览者进一步单击进入的站点,否则,封面式的首页并不会给企业站点带来什么好处。341.3.5 1.3.5 1.3.5 1.3.5 任务任务任务任务5 5 5 5编排网站内容编排网站内容编排网站内容编排网站内容Internet最大的资源优势在于它的多媒体功能,因而要尽一切努力开发挖掘,吸引浏览者保持注意力。1协调页面元素的关系面元素的关系在页面中,图片、文字之间的前后位置及疏密程度的不同所产生的视觉效果各不相同。在网页上,图片、文字前后叠压所构成的空间层次目前还不多见,常见的是一些设计得比较规范化、简明化的页面,这种

31、叠压排列能产生强节奏的空间层次,视觉效果强烈。例如页面上、左、右、下、中位置所产生的空间关系,以及疏密的位置关系所产生的空间层次,这两种位置关系使视觉流程生动而清晰,注目程度高,疏密的位置关系变化使空间层次富有弹性,同时也让人产生轻松或紧迫的心理感受。352网站内容开网站内容开发的要点的要点影响网站成功的因素主要有网站结构的合理性、直观性,多媒体信息的实效性。成功网站的最大秘诀在于让用户感到网站对他们非常有用,因此,网站内容开发对于网站建设至关重要。进行网站内容开发的要点包括:HTML文档的效果由其自身的质量和浏览器解释HTML的方法决定。所以在网页设计时要充分考虑网页是否让所有的浏览器能够正

32、常浏览。网站信息的组织最好采用树形结构,因为吸引用户的关键在于总体结构的层次分明。因为网状结构不仅不利于用户查找信息,而且在以后会带来复杂的维护工作。图像、声音和视频信息能够比普通文本提供更丰富和更直接的信息,但直接后果是文件太大且浏览速度缓慢,因此图像和媒体文件的使用要适度。网站内容应是动态的,随时进行修改和更新,以使自己的网站紧跟市场潮流。在主页上,注明更新日期及URL(统一资源定位符)对于经常访问的用户非常有用。网页中应该提供一些联机帮助功能。如输入查询关键词就可以提供一些简单的例子,千万不能让用户不知所措。网页的文本内容应简明扼要、通俗易懂。文字要正确,不能有语法错误和错别字。363企

33、企业Web站点的典型内容站点的典型内容企业的Web站点应包括以下典型内容。(1)企业的基本背景介绍企业的背景介绍材料,如果有条件,最好能够提供相应的英文版,简介文字最好提供简单和详实两个版本。专业的电子版企业简介应该具有图文混排的非HTML格式,例如可以使用Acrobat的PDF格式供客户下载,因为Acrobat文件能够保持图文排列的整体观感。(2)详细的产品资料或服务介绍生产制造类企业应该把自己主要产品的全貌反映在网站上,让客户能够查询到产品的主要技术规格、照片和其他可公开的信息;服务类企业应该通过各种手段把详尽的服务内容和条款列出。根据企业产品或服务门类的多少,企业网站也应该采用不同的内容

34、构造方式。如果企业的产品线比较复杂,并且经常有产品升级换代,那么最好采用Web数据库技术,让访问者可以进行数据库查询和分类检索。(3)技术支持资料除了产品说明书之外,企业还应该掌握自己产品的更多信息,如常见故障处理、计算机产品的编程接口等。这些资料如果能够公开,可放入网站,以减轻企业技术支持人员的工作量。37(4)企业营销网络很多企业在总部以外都有其他分支机构,为此企业应该在网站上列出全球范围内所有可接洽到的办公场所,包括他们的电话、传真、电子邮件,并列出他们各自的职能。(5)财务报告对于股份制尤其是上市的企业,应该将重要的财务报告上网,让股民能够方便地查询到这些信息,包括中报、年报和各种配股

35、计划。(6)收集客户反馈在企业网站上应该至少带有一个客户反馈表单,用于收集客户和普通访问者对企业改进产品和服务的意见或建议。网络管理员应该经常检查提交上来的内容,并及时转交给企业决策部门使用。(7)其他针对企业经营特点的内容如服装制造企业可以加入一些时尚网站的链接,音响制品厂商可以加入音乐站点链接。但是,千万不要直接链接到竞争厂商的网站。在企业Web站点建立后,要不断更新内容,利用这种新媒体宣传本企业的企业文化、企业理念和企业产品。站点信息的不断更新和新产品的不断推出,会让浏览者感到企业的实力和发展,同时也会使企业更加有信心。要认真回复用户的电子邮件、传统信件、电话垂询和传真,做到有问必答。最

36、好将用户进行分类,例如售前一般了解、销售、售后服务等,由相关部门处理,使网站访问者感受到企业的真实存在,产生信任感。381.3.6 1.3.6 1.3.6 1.3.6 任务任务任务任务6 6 6 6对网页进行可视化设计对网页进行可视化设计对网页进行可视化设计对网页进行可视化设计页面可视化设计主要包括页面组织效果、页面色调效果、页面版式设计、页面美术设计等几方面内容。1页面面组织效果效果页面组织效果主要通过页面元素来体现,页面元素可以是一个点,一条线或者一个面。(1)点点是所有空间形态中最简洁的元素,也可以说是最活跃、最不安分的元素。设计中,一个点就可以包罗万象,体现设计者的无限心思,网页中的图

37、标、单个图片、按钮或一段文字等都可以说是点。点是灵活多变的,我们可以将一排文字视为一个点,或将一个图形视为一个点。在网页设计中的点,由于大小、形态、位置的不同而会给人不同的心理感受。39(2)线线在编排设计中有强调、分割、导线、视觉线的作用。线会因方向、形态的不同而产生不同的视觉感受,例如垂直的线给人平稳、挺立的感觉;弧线使人感到流畅、轻盈;曲线使人跳动、不安。在页面中内容较多时,就需进行版面分割,通过线的分割保证页面良好的视觉秩序。页面在直线的分割下,产生和谐统一的美感;通过不同比例的空间分割,有时会产生空间层次的韵律感。网页设计中点、线的运用并不是孤立的,很多时候都需要将它们结合起来,以表

38、达完美的设计意境。402页面色面色调效果效果关于色彩的原理有许多,在此仅仅阐述网页配色时的一些常用技巧。(1)用一种色彩。这里是指先选定一种色彩,然后调整透明度或者饱和度(说得通俗些就是将色彩变淡或加深),产生新的色彩,用于网页。这样的页面看起来色彩统一,有层次感。(2)用两种色彩。先选定一种色彩,然后选择它的对比色。(3)用一个色系。简单地说就是用一个感觉的色彩,例如淡蓝,淡黄,淡绿;或者土黄,土灰,土蓝。在网页配色中,还要切记一些误区:(1)不要将所有颜色都用到,尽量控制在3种色彩以内。(2)背景和前文的对比尽量要大,绝对不要用花纹繁复的图案作背景,以便突出主要文字内容。413页面版式面版

39、式设计版面指的是从浏览器看到的完整的一个页面(可以包含框架和层次)。对于版面布局的设计,应当重视如下原则:加强视觉效果,加强文字图案的可视度和可读性;统一感的视觉;新鲜和个性是版面布局的最高境界。常用版面布局的形式:(1)“T”结构布局所谓“T”结构就是指页面顶部为横条网站标志+广告条,下方左面为主菜单,右面显示内容的布局。因为菜单条背景较深,整体效果类似英文字母“T”,所以称为“T”形布局。这是网页设计中使用最广泛的一种布局方式。这种布局的优点是页面结构清晰、主次分明,且是初学者最容易掌握的布局方法。缺点是规矩呆板,如果色彩细节上再不注意,很容易让人看后乏味。42(2)“U”形布局这是一个象

40、形的说法,就是页面一般上下各有一个广告条,左面是主菜单,右面放友情链接等,中间是主要内容。这种布局的优点是充分利用版面,信息量大。缺点是页面拥挤,不够灵活。也有将四边空出,只用于中间的窗口型的设计,例如网易的壁纸站。(3)对称对比布局顾名思义,采取左右或者上下对称的布局,一半深色,另一半浅色,一般用于设计型站点。优点是视觉冲击力强,缺点是将两部分有机地结合比较困难。43(4)POP布局POP引自广告术语,就是指页面布局像一张宣传海报,以一张精美图片作为页面的设计中心。此类布局常用于时尚类站点,比如ELLE.com。优点是显而易见,漂亮吸引人,缺点是速度慢。布局需注意的地方:通常阅读时眼睛从左上

41、方开始,逐行浏览到达下方,插入图像时不要忘记这种特性。任何具有方向性的图片应该放置在网页中对视觉最重要的地方,如果在左上角放置一幅小鸟的图片,鸟嘴应该放在把浏览者目光引向页面中部的地方,而不是把视线引走。这种思路可以用于所有图片:面部应该“看”网页的中部;汽车的“停靠”面向网页中部;道路、领带等图片的放置都应该有助于吸引目光从左向右、从上向下的移动;一般总是把网站导航栏放置在页面左边,也是出于这种考虑,不断地出现在浏览者最佳视野之中。以上总结了目前网络上常见的几种布局,此外还有许多别具一格的布局,关键在于网站本身的创意和设计。444页面美术设计网页设计与其他出版设计最大的不同表现在以下三方面。

42、(1)传播的媒介不同许多用户是用Modem上网的,考虑到用户的容量程度,图形一般不宜太大;通常每个图形应小于30KB,每个页面图形总量应小于50KB。图片是影响网页下载速度的重要原因,根据经验,把每页全部内容控制在30KB左右可以保证比较理想的下载速度。图像以在6KB8KB之间为宜,每增加2KB会延长1s的下载时间。(2)所能采用的文件格式的限制对通用浏览器来说,能识别的图像格式仅为JPEG和GIF。这两者又各有不同的特点和适用环境。45(3)与美术设计人员要有良好的合作首先应该能向他们提供前面所说的内容和逻辑结构图。因为他们的责任仅是对网页的形式负责,而至于内容,必须由企业业务人员去敲定。其

43、次,应该把站点的美术需求、风格等告诉美术创作人员。如果可能的话,最好能带着他们去见业务人员,直接了解站点形象方面的要求。此外,还应该把企业原有的一些成功的宣传册子、CI(企业形象)手册等材料尽可能交给美术人员作为参考。在向美术设计人员提供了上述信息和材料后,就可以让他们设计出形成站点风格的一些关键要素了。从美术和效率的角度出发,应该考虑采用可视化的页面编辑工具。最好能请一些有美感、懂得排版的人从事此项上作。他们可能多半不会使用HTML语言,但比程序员制作出来的网页页面要好看得多。此外,工具的选择也很重要。市场上有很多编辑器,有的工具很好,它能有效地把高级美术人员、排版人员以及程序员的工作分开。

44、461.3.7 1.3.7 1.3.7 1.3.7 1.3.7 1.3.7 任务任务任务任务任务任务7 77 7 7 7设计网站的目录结构和链接结构设计网站的目录结构和链接结构设计网站的目录结构和链接结构设计网站的目录结构和链接结构设计网站的目录结构和链接结构设计网站的目录结构和链接结构为了实现信息的有效传递,也为了便于网站的更新和维护,站点目录结构的设计十分重要。主次分明、脉络清晰的站点结构使访问者对网站内容一目了然,便于获得所需信息。同时,规划合理的目录结构对于网站所有者来说,可以在以后的内容更新和维护中,节省大量时间和精力。471网站的目网站的目录结构构网站目录是指建立网站时创建的目录。

45、例如在用FrontPage2003建立网站时都默认建立了根目录、Images目录和子目录。目录结构的好坏,对浏览者并没有什么太大的影响,但是对于站点本身的上传维护、未来的内容扩充和移植有着重要的影响。(1)所有文件不要都存放在根目录下有的网站为了方便,将所有文件都放在根目录下。这样做造成的不利影响在于以下几个原因。文件管理混乱。常搞不清哪些文件需要编辑和更新,哪些无用的文件可以删除,哪些是相关联的文件,这会影响工作效率。上传速度慢。服务器一般都会为根目录建立一个文件索引。如果将所有文件都放在根目录下,那么即使只上传更新一个文件,服务器也需要将所有文件再检索一遍,建立新的索引文件。很明显,文件量

46、越大,等待的时间也越长。所以,建议尽可能减少根目录的文件存放数。48(2)按栏目内容建立子目录子目录的建立应首先按主菜单栏目建立。例如网页教程类站点可以根据技术类别分别建立相应的目录,像Flash、DHTML、JavaScript等。企业站点可以按公司简介、产品介绍、价格、在线订单、反馈联系等建立相应的目录。其他的次要栏目,需要经常更新,可以建立独立的子目录,而一些相关性强、不需要经常更新的栏目,例如关于本站、关于站长、站点经历等,可以合并放在一个统一的目录下。所有程序一般都存放在特定目录下,例如CGI(通用网类接口)程序放在Cgi-bin目录。为便于维护管理,所有需要下载的内容也最好放在一个

47、目录下。492网站的网站的链接接结构构网站的链接结构是指页面之间相互链接的拓扑结构。研究网站的链接结构的目的在于:用最少的链接,使得浏览最有效率。通常,建立网站的链接结构有两种基本方式。(1)树状链接结构(一对一)该结构类似DOS的目录结构,首页链接指向一级页面,一级页面链接指向二级页面。立体结构看起来就像蒲公英。这样的链接结构浏览时,一级级进入,一级级退出。该结构的优点是条理清晰,访问者明确知道自己在什么位置,不会迷路。缺点是浏览效率低,一个栏目下的子页面到另一个栏目下的子页面,必须绕经栏目页。(2)星状链接结构(一对多)该结构类似网络服务器的链接,每个页面相互之间都建有链接。这种链接结构的

48、优点是浏览方便,随时可以到达自己喜欢的页面。缺点是链接太多,容易使浏览者迷路。50在实际的网站设计中,经常见到这两种结构的混合使用。通常首页和一级页面之间用星状链接结构,一级和二级页面之间用树状链接结构。如果站点内容庞大、分类明细,需要超过三级页面,那么建议在页面里显示导航栏,这样可以帮助浏览者明确自己所处的位置。读者在许多网站页面顶部可看到类似的表示:“您现在的位置是:首页财经新闻股市信息深圳股深发展”。在链接结构确定后,考虑链接的效果和形式,是采用下拉表单,还是用DHTML动态菜单等等。实际上,站点内容和功能的设计是网络营销策略的直接体现,从单纯的企业介绍、企业形象树立、企业产品与服务信息

49、的发布到网上直销,网站的内容与功能设计既要符合企业的需求,又要参考当前技术的发展状况和应用水平。以网络营销为主的企业站点不但要充分运用多媒体技术实现信息发布功能,更重要的是要发挥Web的交互特性,实现网站信息检索、在线客户服务、用户反馈信息收集,甚至在线订单、在线购物、在线支付等功能。511.3.8 1.3.8 1.3.8 1.3.8 任务任务任务任务8 8 8 8了解网站设计的常用技术了解网站设计的常用技术了解网站设计的常用技术了解网站设计的常用技术Internet是发展最快的领域,新的网页制作技术几乎每天都会出现,对于网站设计者来说,必须学习、跟踪、掌握网页设计的新技术,将站点功能与内容有

50、机地结合起来。这实际上对网站设计者的素质要求极高,因为这是一个正在形成和蓬勃发展的新领域,几乎每天都会有新的技术和规范产生,具体的如Java、DHTML、XML、DOM等新技术,需要不断学习才能不落伍。为此,在建设网站时,就需要根据不同功能采取不同的设计技术。就目前的情况来看,企业网站的设计技术基本上有7种。521网页设计技术网页设计技术无疑是网站开发的基本功。网站是否美观大方,是否拥有强烈的视觉冲击力,与网页的设计技术密切相关。设计网页的技巧多种多样,各类参考书籍也是数不胜数。2数据库技术一个网站如果没有数据库技术支持,它的维护成本会相当高昂。采用数据库技术的最大好处有两个:一是方便用户的浏

51、览、查询检索以及统计比较等;二是容易进行信息、数据的更新,系统维护成本相对较低。数据库技术可以广泛应用于企业网站,常见的有如下。53(1)新闻数据库系统:及时更新资料,让用户迅速查阅关于企业的各项新闻动态资料。(2)产品数据库系统:进行企业产品的介绍、评价、导购、检索、网上订购和使用问答等等。(3)调查数据库系统:进行服务调查、产品调查、形象调查、宣传调查等,并可以自动进行统计分析。(4)用户数据库系统:提供良好的售后服务。543表单回收技术所谓的表单回收技术是指在网上设置一些表格,用户填写之后,可以自动反馈给企业。企业网站应用的表单回收技术主要包括:用户的建议、投诉、人才招聘、招商合作、意见

52、反馈等。4邮件列表技术邮件列表(MailingList)技术能够让用户及时订阅企业的最新资料或者网站的更新动态。如果企业希望更多的访问者留下联系信息的话,建议采用这一技术。5全文检索技术采用全文检索技术,可以让用户迅速查找到所需要的内容。如果企业网站比较大,应该使用这一技术。556搜索引擎技术这个技术可以把与企业相关的资料、网站集合在一起,从而使用户迅速查阅与企业产品、服务、权益等相关的各种资料。这也是目前最为流行的“企业门户网站”概念。7电子商务技术采用电子商务技术,可以实现网上的订购与交易功能,但由于此项技术涉及到资金的转移,因而难度很高,目前尚未形成规模。但此项技术将是企业网站的发展方向

53、之一,所以在网站设计时应该留出一个发展空间。理论上说,囊括了上述技术的网站无疑将是非常出色的。但有一点必须注意,如果全部采用上述技术,投入的费用相当高。因此,在实际运作中,企业应该根据自己的实际情况和实际能力,量力而行。56习题习题一、思考一、思考题(1)为什么会产生电子商务?(2)你身边有哪些电子商务应用?(3)你希望通过学习电子商务学到什么?(4)规划一个Web站点需要考虑哪些因素?二、操作二、操作题(1)上网浏览几个电子商务网站,说出他的首页布局,归纳它们的栏目划分。(2)任选一个电子商务类网站,规划它的栏目划分,在网页编辑工具FrontPage2003或DreamweaverMX中编辑

54、商务网站的首页。(3)从Internet上搜索并浏览两个不同类型的网站,一个为制造型企业的商务网站,一个为销售型企业的商务网站,试比较这两个不同类型的网站之间内容、功能上有何差异。第第2 2章章 构建商务网站的运行环境构建商务网站的运行环境 2.1商务网站的发布182.2Web站点的建立192.3Web站点的目录管理292.4FTP站点的建立362.5FTP站点的安全管理402.6知识拓展44习题572.1 2.1 2.1 2.1 商务网站的发布商务网站的发布商务网站的发布商务网站的发布发布站点是将构成网页和站点的所有文件复制到Web服务器上,让浏览者看到网页设计者或某一个公司的作品,在第1章

55、中给出了Internet浏览器/服务器结构的示意图,那么,把网页作品放在什么地方,才能让所有的人浏览?当然,是在服务器上。在服务器上安装、运行适当的软件,并运行相应的服务。如图2-1所示,是Web站点在服务器上运行的环境:在操作系统之上运行Web、E-mail、FTP等服务器软件,再加上Web站点连接Internet的硬件设备就可构成交互的商务网站的运行环境了。58常用的Web环境有如下几种。1Windows98系统要求:安装网络协议TCP/IP。安装PWS(PersonalWebServer,个人Web服务器),用于发布Web站点。安装Office2000中的Access2000作为网站后台

56、数据库。59图2-1 商务网站的运行环境 2Windows 2000系系统(本(本书即用即用该环境)境)要求:安装网络协议TCP/IP。安装IIS(InternetInformationServer),创建和管理Web站点。安装FTP(FileTransferProtocol),管理Web站点的文件。安装Office2000中的Access2000作为Web站点后台数据库或安装SQLServer个人版或企业版。3JSP(Java服服务器网器网页)开)开发环境境要求:同Windows2000系统。额外需要:J2sdk和resin-2.0.1。安装J2sdk1.3.1或1.4都可,其他开发工具也可

57、。配置系统:JSDK安装完成后应配置系统的环境变量,Java才能正确执行。配置过程如下:选择我的电脑|属性|系统特性|高级,环境变量:新建/classpath;变量值:Jsdk的安装路径bin;单击【确定】按钮;重新启动计算机生效。安装resin-2.0.1。以下将着重介绍Windows2000系统下商务网站的运行环境。602.2Web2.2Web站点的建立站点的建立 2.2.1任务1安装IIS192.2.2任务2创建Web站点212.2.3任务3把多个IP地址绑定到同一台服务器上212.2.4任务4创建一个新的Web站点232.3.5任务5为同一个IP创建多个Web站点2761WWW服务是网

58、站应当提供的一项基本服务功能。在本节中,将学习利用Microsoft管理控制台(MMC)配置WWW服务,这是目前大多数网站都采用的方式。Microsoft管理控制台(MMC)为WWW服务的如下四方面提供了属性对话框:(1)WWW主属性(MasterService),对当前服务器上所有Web站点都起作用的属性;(2)Web站点(Site),针对某一特定Web站点的属性;(3)目录(Directory),针对目录(包括虚拟目录)的属性;(4)文件(File),针对单个文件的属性。掌握上面4项属性,就可以对IIS服务器和它的Web站点的各个方面进行配置。622.2.1 2.2.1 2.2.1 2.2

59、.1 任务任务任务任务1 1 1 1安装安装安装安装IISIISIISIIS InternetInformationServer(以下简称IIS)是站点(Site),包括Web、FTP、News和E-mail服务器站点的管理中心,操作系统不是默认安装的,安装步骤如下:(1)在“控制面板”中,鼠标双击“添加/删除程序”图标,弹出如图2-2所示的“添加/删除程序”窗口。6364图2-2 “添加/删除程序”窗口(2)单击“添加/删除程序”对话框左侧的“添加/删除Windows组件”选项,出现如图2-3所示的“Windows组件向导”对话框,在“Internet信息服务(IIS)”复选框前的方框上单击

60、鼠标左键,出现“”,代表安装该组件,单击【下一步】按钮,以后选择默认项,即可安装完毕。65图2-3 “Windows组件向导”对话框2.2.2 2.2.2 2.2.2 2.2.2 任务任务任务任务2 2 2 2创建创建创建创建WebWebWebWeb站点站点站点站点要建立一个Web站点,首先需要提供一个IP地址。可以采用下面的3种方法之一,在计算机上建立多个站点。方法一:把多个IP地址绑定到同一台服务器上。方法二:使用不同的主机头名称。(推荐方法)方法三:TCP端口法,Web站点的默认端口一般为80,改变这一端口,就能实现在同一服务器上新增站点的目的。由于TCP端口法无法与DNS结合,因此,主

61、要讲解前两种方法。662.2.3 2.2.3 2.2.3 2.2.3 2.2.3 2.2.3 任务任务任务任务任务任务3 33 3 3 3把多个把多个把多个把多个把多个把多个IPIPIPIPIPIP地址绑定到同一台服务器上地址绑定到同一台服务器上地址绑定到同一台服务器上地址绑定到同一台服务器上地址绑定到同一台服务器上地址绑定到同一台服务器上在装有Windows2000的计算机上增加IP地址,就可以在用户的IIS服务器上增加多个Web站点。为了完成以下各步,操作者需要具有管理员权限和空闲的IP地址(包括子网掩码)。其操作步骤如下:(1)打开“控制面板”,然后双击“网络和拨号连接”图标,如图2-4

62、所示。67图2-4 “控制面板”对话框 (2)从打开的“网络和拨号连接”对话框中,选择“本地连接”选项,右击,从弹出的快捷菜单中选择“属性”命令,打开“本地连接属性”对话框,选择“常规”选项卡,选择“Internet协议(TCP/IP)”选项,如图2-5所示。然后,单击【属性】按钮,出现“Internet协议(TCP/IP)属性”对话框,如图2-6所示。68图2-5 “本地连接属性”对话框 图2-6 “Internet协议(TCP/IP)属性”对话框 (3)在该对话框中至少已经具有了一个IP地址,要增加新的IP地址,单击【高级】按钮,出现“高级TCP/IP设置”对话框,如图2-7所示。69图2

63、-7 “高级TCP/IP设置”对话框 (4)单击“IP地址”域内的【添加】按钮,然后在弹出的“TCP/IP地址”对话框中输入IP地址和子网掩码,如图2-8所示。(5)单击【确定】按钮,关闭对话框,然后重新启动计算机,即可实现新IP地址的添加。70图2-8 添加TCP/IP地址2.2.4 2.2.4 2.2.4 2.2.4 任务任务任务任务4 4 4 4创建一个新的创建一个新的创建一个新的创建一个新的WebWebWebWeb站点站点站点站点一个默认的Web站点已经随IIS5.0的安装而安装了,然而,在大多数情况下,用户需要创建自己的内容。因此,必须创建一个新的Web站点。在给服务器添加了新的IP

64、地址之后,这项工作就比较容易了。在下述步骤中所创建的Web站点与默认的Web站点在内容上几乎一样,这是因为新站点的主目录指向默认Web站点的主目录,新创建站点的名字为edu。操作步骤如下:71(1)在程序组的子项目管理工具中,选择“Internet信息服务”,打开“Internet信息服务”主界面,将会看到所有连接到服务器的列表,因为目前尚未连接到任何服务器,所以在列表中只看到本地机器(这里是admin)。如图2-9所示72图2-9 Internet信息服务主界面 (2)双击计算机名(admin)或是单击admin前的,查看此计算机运行的所有站点,可看到有默认Web站点、默认FTP站点、管理W

65、eb站点以及默认SMTP虚拟服务器。如图2-10所示。73图2-10 查看计算机当前的站点 (3)在计算机名admin上右击,在弹出的快捷菜单中选择“新建”|“Web站点”命令,如图2-11所示。74图2-11 “Internet信息服务”新建Web站点(4)这时将打开新的Web站点创建向导,进入向导第一步输入“Web站点说明”,可以在“Web站点说明”的“说明”文本框中输入Web站点名tsia。如图2-12所示。单击【下一步】按钮,打开向导的第二步“IP地址和端口设置”。75图2-12 Web站点创建向导一:输入站点说明 (5)在向导的第二步,将被要求输入Web站点的IP地址和服务器的端口号

66、(WWW服务器默认的端口号为80),选择一个IP地址给新的站点,如图2-13所示。单击【下一步】按钮,打开向导的第三步“Web站点主目录”。76图2-13 Web站点创建向导二:设置IP与TCP端口 (6)在向导的第三步,需要提供Web位于服务器上的目录和此Web站点是否允许匿名访问。浏览默认Web站点的目录(在标准安装的情况下应为:“驱动器盘号:Inetpubwwwroot”),如图2-14所示。单击【下一步】按钮,打开向导第四步“Web站点访问权限”。(7)在向导的第四步,需要设置对Web站点的访问许可,如图2-15所示。可以从其中允许下列权限的选项中进行选择。默认设置是允许“读取”和“运

67、行脚本”访问权限,在大多数情况下这就足够了。7778图2-14 Web站点创建向导三:设置网站目录图2-15 Web站点创建向导四:设置站点目录的访问权限(8)单击【下一步】按钮,再单击【完成】按钮,以创建新的站点。站点创建后处于停止的状态,也就是说它已经存在,但尚不能从外界访问。如图2-16所示。(9)选择新创建的站点,单击状态栏上的【开始】按钮或在新创建的站点名称上右击,然后从快捷菜单中选择“开始”命令。这样新站点就启动了。为了验证上述工作,打开浏览器,使用IP地址建立链接。79图2-16 站点添加完毕 2.3.5 2.3.5 2.3.5 2.3.5 任务任务任务任务5 5 5 5为同一个

68、为同一个为同一个为同一个IPIPIPIP创建多个创建多个创建多个创建多个WebWebWebWeb站点站点站点站点企业在建立网站时,就会面临这样一个问题:如何使一台服务器看起来像是几台甚至是几十台服务器。作为ISP也自然会为企业用户提供虚拟主机服务,考虑到成本和利润,建网不可能为每一个客户都单独准备一台服务器,否则费用非常高昂。如果一台计算机只能用来模拟一个站点,那么需要多少台计算机才能搭建起一个初具规模的站点环境呢?如何在一台服务器上实现多IP和多域名的WWW服务,也就是说,把一台服务器变换成几台、几十台服务器,并且让每一台虚拟的服务器都拥有自己的IP地址和域名?如果使用IIS4.0以前的版本

69、,在一个服务器上建立多个站点的唯一方法是给每个站点分配一个唯一的IP地址。如果使用IIS4.0,可以采用以下3种方式来唯一的标识Web站点:IP地址(IPAddress)端口号(PortNumber)主机标头名称(HostHeaderName)80可以在服务器上创建许多站点,只要每个站点至少在上面的3个标识中有一个标识不同就可以了。这意味着可以创建IP地址和端口号相同,仅主机标头不同的多个站点。对于那些使用过其他Web服务器产品的用户而言,主机标头已不是一个新概念,但对于大多数IIS的用户而言,主机标头是标识Web站点的一个新概念。下面举例说明。假设想把两个朋友的主页放在同一台服务器上,其中一

70、个朋友的域名(即DN)为;另一个朋友的域名为,而服务器现在仅有一个空闲的IP地址,如何来解决这个问题呢?使用IIS5.0,这个问题很容易解决。81在DNS服务器数据库中,可以把两个站点的DNS指定为相同的IP地址,然后在IIS5.0服务器上用这个IP地址创建新的站点。现在标识中的三部分中有两部分都相同,即同一IP地址和同一端口号。因此需要使用第三部分主机标头来区分这两个朋友的站点。操作步骤如下。(1)据前文所述的内容,创建两个新的站点,分别命名为tsia1和tsia2。(2)在站点列表中的sitel上右击,从快捷菜单中选择“属性”命令,将会看到Web站点的“tsia1属性”对话框,如图2-17

71、所示。8283图2-17 “tsia1属性”对话框 (3)在“Web站点标识”选项组中,单击【高级】按钮,出现“高级多Web站点配置”对话框,如图2-18所示。84图2-18 “高级多Web站点配置”对话框 (4)在“高级多Web站点配置”对话框中,将看到目前站点的3部分标识的列表。选择当前记录(目录仅有IP地址和端口号定义),然后单击【编辑】按钮,打开“高级Web站点标识”对话框,如图2-19所示。(5)在“主机标头名”文本框中,输入:,单击【确定】按钮,以使改变生效。(6)单击【确定】按钮两次,一次关闭“高级多Web站点配置”对话框,另一次关闭站点的“属性”对话框。(7)为tsia2重复步

72、骤(2)(6),注意,将第(6)步的主机头名输入:即可。85图2-19 “高级Web站点标识”对话框2.3Web2.3Web站点的目录管理站点的目录管理 2.3.1任务1管理主目录292.3.2任务2管理虚拟目录302.3.3任务3配置目录属性34862.3.1 2.3.1 2.3.1 2.3.1 任务任务任务任务1 1 1 1管理主目录管理主目录管理主目录管理主目录 主目录在站点最初的创建过程中已被指定,并可以随时改变。站点的主目录存储着可以被用户访问的资源。在这个目录下可以包含其他的子目录或文件,用户可以设置这些子目录和文件的属性。Web站点最初的属性由WWW主属性所控制,若要修改WWW主

73、属性,在Internet信息管理器对话框的admin上右击,从快捷菜单中选择“属性”命令,弹出“admin属性”对话框,从“主属性”下拉列表框中选择“WWW服务”,如图2-20所示。然后,单击【编辑】按钮,打开“admin的WWW服务器主属性”对话框,在此对话框中就可以编辑“WWW服务”主属性,如图2-21所示。87图2-20 选择“WWW服务”主属性 图2-21 “admin的WWW服务主属性”对话框 2.3.2 2.3.2 2.3.2 2.3.2 任务任务任务任务2 2 2 2管理虚拟目录管理虚拟目录管理虚拟目录管理虚拟目录如果已经创建了一个Web站点,用户仅仅可以访问物理上位于主目录下的

74、内容,而不能访问不在主目录下的其他目录。为了允许用户访问其他目录的信息,需要创建虚拟目录,就是把其他的目录映射(images)到主目录,以便使它们就像物理上位于主目录下一样。下面介绍两种不同的虚拟目录:本地虚拟目录和远程虚拟目录。(1)创建一个本地虚拟目录最常使用的虚拟目录就是把服务器上的本地目录映射到Web站点的目录树。下面将要创建的虚拟目录就是最初创建的天津市软件行业协会tsia站点的英文版。要把虚拟目录加到已经创建的Web站点上,操作步骤如下。打开“Internet信息服务”窗口,找到想增加虚拟目录的Web站点tsia:增加虚拟目录english。88在此站点上右击,选择“新建”“虚拟目

75、录”选项,打开“虚拟目录创建向导”对话框。向导第一步,输入虚拟目录的名字(也就是虚拟目录将来被引用的别名),在这里输入english。向导第二步,选择虚拟目录所在的实际路径,在标准安装情况下所在的目录为:“驱动器盘号:Inetpubiissamples”。向导第三步,选择访问权限,选择默认设置:读取和脚本。单击【下一步】按钮,再单击【完成】按钮,完成创建虚拟目录的过程。89(2)创建一个远程虚拟目录用户并不局限于从本地计算机增加虚拟目录,还可以把通过网络共享的目录映射为一个虚拟目录。为了完成把新创建的本地虚拟目录english改变为远程虚拟目录的过程,必须拥有一个可以访问的网络共享目录,操作步

76、骤如下。在创建的虚拟目录的快捷菜单中,选择“属性”命令,打开“english属性”对话框,如图2-22所示。在此可对目录的访问权限、内容控制和应用设置等进行设置。9091图2-22 “english属性”对话框 设置目录访问权限如下。读取复选框:允许客户端读目录下的文件。写入复选框:允许客户端对一个目录进行写操作(可以用于允许上传文件的目录)。日志访问复选框:控制对此目录下所有文件的访问都做历史记录。例如可以禁止对那些仅包含图像文件的目录做历史记录,以便减少历史记录文件的大小。启用日志目录说明:在“admin的WWW服务主属性”对话框的“Web站点”选项卡中,对站点进行日志记录已选中为“启用日

77、志记录”复选框,并且有如下3种选择:NCSAformat、ODBClogging(toadatabase)和W3Clogfileformat(默认设置)。对于W3Clogfileformat而言,可以选择每天、每星期或每月创建一个新的记录文件,也可以永久地使用一个文件,或者文件到达指定的大小后就创建一个新的记录文件。如果用户设置了历史记录目录,并且使用了W3C扩展格式,就可以选择包含在记录文件中的字段。如图2-23所示。92目录浏览复选框:当目录下没有默认的文档时,允许用户浏览目录列表。如果在一个目录下没有默认的文档,并且浏览目录功能被禁用的话,用户就会收到一个禁止访问信息。因此,可以认为这项

78、内容控制特性是一项附加的访问权限。索引此资源复选框:指示IndexServer对本目录进行索引。在“应用程序设置”栏的“执行许可”下拉列表框中有如下3种可选项。无:没有设置脚本或者执行权限。纯脚本:允许客户端执行目录下的脚本。脚本和可执行程序:允许客户端执行目录下的应用程序(.exe和.dll)。(本权限设置本身也包含了脚本许可)。93图2-23 tsia 的Web站点属性启用日志记录 在“连接到此资源时,内容应该来自于”单选按钮列表中,选择“另一计算机上的共享位置”单选按钮。注意这时位置的标题由“本地路径”变为“网络目录”,如图2-24所示。在“网络目录”文本框中,输入共享的UNC名。单击【

79、连接为】按钮,指定用户访问这个资源时所使用的账号。然后,在“网络目录安全身份验证凭据”对话框中,输入用户名和密码,如图2-25所示。单击【浏览】按钮,可以通过如2-26图所示的“选择用户”对话框中进行选择用户。在“网络目录安全验证凭据”对话框单击【确定】按钮,会弹出用户“确认密码”对话框,输入后单击确认按钮即可。现在english虚拟目录的内容来自于网络共享资源。使用网络共享目录作为虚拟目录的实际位置(这对于主目录也适用)要比使用本地目录复杂得多。这里需要提及一个重要的安全因素:所有被访问的位于远程位置的文件都是通过在步骤提供的账号权限来访问的,而不是浏览器客户端的权限。在创建远程虚拟目录时,

80、应把这一点时刻牢记在心。9495图2-24 english属性设置图2-25 “网络目录安全验证凭据”对话框 图2-26 “选择用户”对话框 2.3.3 2.3.3 2.3.3 2.3.3 任务任务任务任务3 3 3 3配置目录属性配置目录属性配置目录属性配置目录属性(1)应用程序配置单击如图2-24所示的对话框虚拟目录选项卡中的【配置】按钮,打开“应用程序配置”对话框,可设置如下属性。应用程序映射:把一个特定的文件扩展名映射到程序、ISAPI扩展或脚本引擎,也可以限制对这些映射的HTTP动作。如图2-27所示。96图2-27 “应用程序映射”选项卡 应用程序选项:IIS包含针对ASP应用程序

81、的选项。例如默认的ASP语言、启用会话状态和ASP脚本时限。如图2-28所示。应用程序调试:允许对Web应用程序进行调试。可以指定客户方是否应该收到脚本错误信息(建议对开发服务器进行设置)或标准错误信息(建议对产品服务器进行设置)。97图2-28 “应用程序选项”选项卡 (2)应用程序保护对创建的每个Web站点或虚拟目录,IIS会自动创建一个应用程序。这个应用程序是用来做什么的呢?首先,它们被用来创建ASP的Web应用程序;其次,它们可以帮助用户把Web站点彼此独立起来。在分开的内存空间运行意味着IIS为这个站点创建一个新的进程,这样会带来性能上的降低。因为在Windows2000Server

82、环境下,进程与进程之间的通信开销是巨大的。然而,这种方法有一个巨大的好处,就是如果一个构件破坏了一个Web站点,那些进程独立的站点将不会受到影响。进程独立的另外一个好处是,如果一个站点崩溃了,崩溃会被自动检测到,然后在新的请求到来时,一个进程会自动创建以替代那个已崩溃的进程。这项特性很容易使用,只需在“应用程序保护”下拉列表框中选择“高(独立的)”选项即可,如图2-29所示。9899图2-29 “english属性”对话框 (3)重定向如果想把整个目录树离线以便维护,同时把用户重定向(Redirections)到一些状态页面(这些状态页面告诉用户有关维护工作的情况),或者想把一个目录的内容移到

83、另外一个目录中,但用户的书签中还保留着原来的目录。这时,重定向就是一种重要的能力。对于目录或文件的重定向特性的设置,可以在“english属性”对话框中选择“虚拟目录”选项卡或“文档”选项卡来完成。将所有对english目录的请求重定向到站点主目录下的default.asp文件,其步骤如下:打开english“虚拟目录”选项卡。从“连接到此资源时,内容应该来自于”选项组中,选择“重定向到URL”单选按钮。当前的属性页将会改变。在“重定向到”文本框中,输入“/default.asp”。如图2-30所示。100101图2-30 重定向目录请求 对于本例而言,可从下面几个属性复选框中进行选择。“上面

84、输入的准确URL”复选框:可使用该复选框将整个虚拟目录重定向到一个文件。例如要将对“/scripts虚拟目录”的全部请求重定向到位于主目录的文件default.htm,需在“重定向到”文本框中键入“/default.htm”,然后选中该复选框。“在这之下的目录”复选框:例如要将主目录删除重定向到名为“/newhome”的子目录,需在“重定向到”文本框中键入“/newhome”,然后选中该复选框。如果没有选中该复选框,Web服务器将继续把父目录映射到本身。“此资源的永久重定向”复选框:重定向被认为是暂时的,客户浏览器接收到下列消息:“302暂时重定向”。一些浏览器可以使用“301永久重定向”消息

85、作为永久更改URL的标志,如书签。1022.4FTP2.4FTP站点的建立站点的建立 2.4.1任务1创建一个FTP站点372.4.2任务2配置FTP站点标识39103FTP服务是企业电子商务网站应当提供的另一项最基本的服务功能。本节详细介绍如何在Microsoft的IIS环境下创建一个FTP站点,并对所创建的FTP站点进行各个方面的管理和维护。文件传输协议(FileTransferProtocol,FTP)用于管理计算机之间的文件传送。一般来说,用户联网的首要目的就是实现信息共享,文件传输是信息共享非常重要的一个内容。在早期的Internet,实现传输文件并不是一件容易的事。因为Intern

86、et是一个非常复杂的计算机环境,有PC、工作站、MAC、大型机等。据统计,连接在Internet上的计算机已有上千万台,而这些计算机可能运行不同的操作系统,有运行UNIX的服务器,也有运行DOS、Windows的PC和运行MacOS的苹果机等。各种操作系统之间的文件交流,需要建立一个统一的文件传输协议,这就是所谓的FTP。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议,这样用户就可以把自己的文件传送给别人,或者从其他的用户环境中获得文件。1042.4.1 2.4.1 2.4.1 2.4.1 任务任务任务任务1 1 1 1创建一个创建一个创建一个创建一个FTPFTP

87、FTPFTP站点站点站点站点IIS4.0提供了一个默认的FTP站点,可以使用这个站点来研究FTP服务的特性。但是,一般不使用默认的FTP站点来做实验,因此,可以创建一个新的FTP站点,这个新的站点使用与默认站点同样的主目录。通过向导创建一个新的、具有标准配置的FTP站点,这个站点的名字为cp,其操作步骤如下:(1)在程序组的子项目管理工具中,选择“Internet服务管理器”。(2)打开“Internet信息服务”,将会看到所有连接到服务器的列表。因为目前尚未连接到任何服务器,所以在列表中只能看到本地计算机。105(3)双击计算机名,查看此计算机运行的所有站点,这时可以看到默认的Web站点和F

88、TP站点,如果安装了其他服务的话,还将看到SMTP(简单邮件传输协议)站点和NNTP(网络新闻传输协议)站点。在计算机名上右击,在打开的快捷菜单中选择“新建”|“FTP站点”,打开“FTP站点创造向导”对话框。在向导的第一步,输入对FTP站点的描述。这里输入“tsia”。在下一步的对话框中选择给FTP服务器的IP地址。不要改变端口设置,如图2-31所示。106图2-31 选择FTP服务器的IP地址和端口号在下一步的对话框中,必须输入作为FTP主目录的路径。单击【浏览】按钮,然后在路径文本框输入“C:Inetpubftproot”,其中的C为所安装的Inetpub目录的驱动器名,如图2-32所示

89、。107图2-32 输入FTP站点主目录的路径最后,设置对这个FTP站点的访问权限,可以在两个访问权限中选择允许“读取”访问复选框和允许“写入”访问复选框,如图2-33所示。在默认情况下,读取访问被选中,写入访问没有被选中。单击【下一步】按钮,再单击【完成】按钮,以创建一个新的FTP站点。FTP站点创建后处于停止状态。使用新FTP站点向导创建的每一个站点在默认情况下,都具有读取权限,包括匿名登录。在后续内容中可以改变这些属性。108图2-33 提供FTP站点位于服务器上的主目录路径2.4.2 2.4.2 2.4.2 2.4.2 任务任务任务任务2 2 2 2配置配置配置配置FTPFTPFTPF

90、TP站点标识站点标识站点标识站点标识与Web站点相比,配置FTP站点标识时没有太多的选项。例如不能使用主机标头,不能对一个站点增加多个IP地址。然而,仍然可以改变站点绑定的IP地址和端口号,如图2-34所示(站点描述并不能作为站点标识,因为它对于外部世界是不可见的)。109图2-34 设置“FTP站点”选项卡 在正常情况下,不需要改变端口号。然而,如果想隐藏FTP站点,那么就应该选择一个与默认值不同的端口号。把默认的端口号21改为2100(这是一个任意选取的值,可以选择喜欢的值),操作步骤如下。(1)打开“tsia属性”对话框,选择“FTP站点”选项卡。(2)把TCP端口号从2l改为2100。

91、(3)单击【确定】按钮,以使改变生效,这时,不需要停止FTP服务。(4)使用新的端口号连接到FTP站点。很少需要改变一个FTP站点的端口号。然而,必须牢记:如果选择一个低于1024的端口号(这些端口号都保留给特定服务),为了允许对这个地址范围的端口进行访问,需要把FTP服务的EnablePortAttack注册项设为许可。110设置FTP消息:FTP服务器对用户而言并不具有很强的互操作性,一般仅可以在几个方面定制FTP站点,最常用的就是定制FTP站点消息。IIS5.0的FTP服务支持如下的几种消息类型:(1)欢迎信息这条消息在用户成功地登录到FTP服务器时出现。(2)退出这条消息在用户从FTP

92、服务器退出时出现。(3)最多连接数当登录到FTP站点的用户已经达到最大数目,而又有用户试图登录时,他将收到这条消息。设置FTP消息的操作步骤(如cpFTP站点)如下。打开FTP站点cp的“属性”对话框。选择“消息”选项卡,如图2-35所示。注意,可以给欢迎消息加入多行信息,但只能给退出和最大连接数的消息加入一行信息。输入欢迎消息。可以把最近对站点的改变或站点管理员的E-mail地址加入到消息中(这样用户就可以在使用站点遇到麻烦时与站点管理员联络)。输入“退出”和“最大连接数”的消息。单击【确定】按钮,以使改变生效。欢迎、退出和最多连接数的信息使站点可以给用户提供额外的信息。如图2-35所示。1

93、11112图2-35 设置“消息”选项卡 2.5FTP2.5FTP站点的安全管理站点的安全管理 2.5.1任务1访问控制站点402.5.2任务2指定站点管理员412.5.3任务3设置TCP/IP限制431132.5.12.5.1任务任务11访问控制站点访问控制站点在一个新的FTP站点创建时,默认情况下允许匿名访问,如图2-36所示。另外,所有在服务器计算机上有账户的用户也都可以登录。FTP的匿名访问以与Web服务相同的方式进行处理,即把匿名用户实例化成Windows2000下的一个标准账户(默认情况下为IUSR_machinename)。在“安全账号”选项卡的“允许匿名连接”区域中,“允许Il

94、S控制密码”复选框在默认情况下也被选中,这就允许改变账号的口令,IIS将自动使用新的口令。114115图2-36 设置“安全账号”选项卡 在决定是否允许匿名访问或是否允许所有其他用户都可访问之前,必须考虑一个非常重要的安全问题,这是因为当使用FTP时,用户名和口令通常是作为明文来传输的。这给Windows2000账户带来一个安全性的问题,因为在客户端和服务器之间没有办法对连接进行加密。所以,任何可以监听在客户端到服务器之间的用户都可以获得Windows2000的账户和密码。116当设置只允许对FTP站点cp进行匿名连接复选框之后,只有匿名用户可以登录到站点,那些具有合法用户名和口令的用户将不允

95、许登录。执行如下操作可达到这个目的:打开FTP站点“cp属性”对话框。选择“安全账号”选项卡。选中“只允许匿名连接”复选框。单击【确定】按钮,以使改变生效,现在就只有匿名用户可以登录到FTP站点了。用户不妨试试连接FTP站点,以自己的账号登录应该已不能登录。试着匿名登录,应该能够登录成功。如果想要服务器仅允许匿名登录,需要执行以上的步骤。但是设置这个限制并不能阻止用户试图以他们自己的Windows2000账户登录,他们的登录请求将被拒绝,但是他们的用户名和口令仍将通过网络传输到服务器。1172.5.2 2.5.2 2.5.2 2.5.2 任务任务任务任务2 2 2 2指定站点管理员指定站点管理

96、员指定站点管理员指定站点管理员像Web站点一样,可以基于每个站点给它们指定管理员。通常是把管理员权限赋予一个用户或整个组(像Administrators组,在默认情况下就拥有对IIS服务器上所有站点的管理权限),这使得把某个特定站点的管理工作分配给一个用户,而不让此用户有对其他站点的管理权限。118要赋予一个新用户管理FTP站点cp的权利,操作步骤如下。(1)在“管理工具”程序组下面,打开“计算机管理”对话框,双击“本地用户和组”,增加一个名为guestl的用户(不要把此用户加入到Administrators组中,因为这个组中的用户将自动地被允许管理所有的站点)。如图2-37所示。119图2-

97、37 增加FTP站点的新用户 (2)在创建新用户之后,打开FTP站点的“tsia属性”对话框,如图2-36所示。(3)切换到“安全账号”选项卡,查看一下“FTP站点操作员”选项组。注意,到目前为止,仅有Administrators组有权限管理这个站点。(4)单击【添加】按钮,打开“选拔用户”对话框,如图2-38所示,浏览新创建的用户账号guestl,把它加入到FTP站点操作员列表框中,操作成功,会看到如图2-39所示的结果。120图2-38 选中新用户(5)单击【确定】按钮,关闭FTP站点“tsia属性”对话框。(6)从计算机中注销当前用户。(7)以新用户(guestl)登录,打开“Inter

98、net服务管理器”对话框,注意到FTP站点tsia的管理员并没有服务器管理的权限,因此描述没有显示,状态设置为停止。FTP站点操作员并不具有管理FTP站点的所有权限。例如他们不能改变服务器的IP地址和端口号;也不能改变主目录和账号的安全设置。在这些限制条件下,用户可以放心地让其他人管理FTP站点。121图2-39 新用户添加完毕 2.5.32.5.3任务任务33设置设置TCP/IPTCP/IP限制限制不仅可以通过账号来限制对FTP站点的访问,还可以使用TCP/IP来限制。TCP/IP限制是基于目录的,可以给除了指定的地址和域名之外的所有用户以访问权限,也可以只给指定的地址和域名以访问权限。上面

99、两种限制都可以通过“tsia属性”对话框中的“目录安全性”选项卡来设置。域可以基于站点或目录级在以下几方面设置允许/禁止入口。(1)单机(单个计算机):在允许/禁止列表中输入已包括的计算机的IP地址。(2)一组计算机:输入已在允许/禁止列表中包括的计算机组的网络ID和子网掩码。要对整个FTP站点的cp设置上述两种类型的TCP/IP限制,可执行如下操作:(1)进入“Internet信息服务”对话框,打开FTP站点的“tsia属性”对话框。(2)选择“目录安全性”选项卡,如图2-40所示。122123图2-40 FTP站点“目录安全性”选项卡 (3)单击【添加】按钮,打开“拒绝以下访问”对话框,选

100、择单机(单个计算机)单选按钮,输入那些不想让它访问的站点的计算机IP地址。单击【确定】按钮,它将加入到拒绝列表中,如图2-41所示。(4)选择拒绝“一组计算机”单选按钮的访问可输入网络标识ID和子网掩码来实现,如图2-42所示。可以使用TCP/IP限制只有自己的Internet可以访问自己的FTP服务器(作为一个额外的保护)。另外,可以查看攻击自己站点的用户来自哪个IP地址。124图2-41 拒绝单个计算机的访问 图2-42 拒绝一组计算机的访问 2.62.6知识拓展知识拓展 2.6.1Web服务器设置原则442.6.2DNS服务器的设置451252.6.1Web2.6.1Web服务器设置原则

101、服务器设置原则对于要运行ASP应用程序的用户,在设置Web服务器权限时,必须遵循下列原则:对包含.asp文件的虚拟目录允许“读取”或“脚本”权限。对.asp文件和其他包含脚本的文件(如.htm文件等)所在的虚目录允许“读取”和“脚本”权限。对包含.asp文件和其他需要“执行”权限才能运行的文件(如.exe和.dll文件等)的虚目录允许“读取”和“执行”权限。1262.6.2DNS2.6.2DNS服务器的设置服务器的设置 1什么是DNS计算机在网络上通讯时只能识别如“192.168.0.127”之类的IP地址,当浏览者在地址栏中输入如的域名后,就能看到所需要的页面,是因为有一种称为“DNS服务器

102、”的计算机把域名自动“翻译”成相对应的IP地址,然后调出该IP地址所对应的网页,最后再传回给浏览器,浏览者才能看到相应页面。DNS(DomainNameSystem)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它主要是用来通过用户亲切而友好的名称(如)代替枯燥而难记的IP地址,以定位相应的计算机和相应服务。1272DNS的设置(1)打开DNS控制台:选择“开始菜单”|“程序”|“管理工具”|“DNS”命令,出现如图2-43所示的DNS服务器界面,当前只有一个admin服务器。128图2-43 DNS服务器界面(2)在admin上建立域名为

103、“”映射IP地址为“10.10.1.1”的主机记录,步骤如下。新建区域:鼠标右击admin服务器名,在弹出菜单中选择“新建区域”命令,出现“新建区域向导”对话框,单击【下一步】按钮,出现如图2-44所示的“区域类型”对话框;选择默认区域类型“标准主要区域”单选按钮,单击【下一步】按钮,同样在如图2-45所示的“正向或反向搜索区域”对话框中选择默认的“正向搜索区域”单选按钮,单击【下一步】按钮即可;在“区域名”对话框的名称文本框中输入“”,如图2-46所示,单击【下一步】按钮,在以后的对话框中都选择默认设置,直至完成即可。129130图2-44 “区域类型”设置 图2-45 创建正向搜索区域 图

104、2-46 输入区域名 区域创建完毕效果如图2-47所示。131图2-47 新建区域 新建主机:鼠标右击新区域“”,在弹出的菜单中选择“新建主机”命令,出现如图2-48所示的“新建主机”对话框,在主机名称文本框中输入“www”,在主机IP地址处输入10.10.1.1。然后单击【添加主机】按钮即可。的DNS设置完毕,效果如图2-49所示。132图2-48 “新建主机”对话框 图2-49 的DNS设置完毕 习题习题一、思考题(1)商务网站或交互网站为何要发布?(2)简述IIS、FTP、DNS的作用?(3)在IIS的Web服务器上,主页、FTP的默认发布目录是什么?(4)如何用一台服务器发布多个站点?

105、二、操作题(1)在一台计算机上建立两个Web站点Web1和Web2。(2)创建FTP站点ftp1。(3)为Web站点Web1配置一个虚拟目录image,物理路径为E:myweb。133第第3 3章章 ASPASP使用基础使用基础3.1接触ASP交互页面493.2交互网页说明503.3VBScript脚本语言513.4ASP对象593.5ASP对象应用663.6知识拓展84习题1343.13.1接触接触ASPASP交互网页交互网页135本节通过在计算机上运行交互网页的示例程序,让读者亲身体会一下交互网页与静态网页有哪些不同,动态网页的发布过程,动态网页所体现出的人机对话功能以及这些功能体现在商务

106、网站上有哪些优势。3.1.1任务1实训准备493.1.2任务2客户端与服务器信息交流493.1.3任务3运行计数器程序503.1.13.1.1任务任务11实训准备实训准备1复制素材库提供的资料将本书配套素材库提供的“实训资料/chapter1”文件夹复制到计算机。2发布站点chapter31363.1.23.1.2任务任务22客户端与服务器信息交流客户端与服务器信息交流在浏览器地址栏输入:http:/localhost/login.asp,显示界面如图3-1所示。在用户名和密码文本框分别输入1和2,会出现一个显示错误的消息框,在消息框单击“确定”按钮后,浏览器仍然显示login.asp;如果分

107、别输入admin,会看到浏览器窗口显示了index.asp的页面,这就是通常所说的登录程序。137图图3-1 用户在客户端输入信息用户在客户端输入信息 运行机制就是用户在浏览器端输入信息(有时是做了某方面的选择),同理,然后单击【提交】按钮,这些信息就会提交给服务器的某一个程序,在这个程序中作如下判断:如果用户名和密码均为admin,那么用户的登录信息正确,让用户进入index.asp,否则,提示错误,让用户重新输入。就像打开自己的邮箱之前一定要登录一样。这就是浏览器端与服务器端信息交流的一个示例,在下文中将详细学习这个服务器端程序的编写过程。1383.1.33.1.3任务任务33运行计数器程

108、序运行计数器程序推荐将一台计算机充当服务器,发布计数器程序,然后其他同学访问这台机器效果会更明显。在浏览器地址栏输入“http:/localhost/Applicationimg.asp”,观察网页上显示的数值。如果按照笔者推荐的方式运行该程序,会发现,随着访问人数的增多,计数器值不断增加;而且显示的数值其实是图片的组合。这个实例程序在下文中有完整的编辑说明。1393.2Web3.2Web站点的建立站点的建立 3.2.1任务1将网页分类503.2.2任务2了解ASP程序说明511403.2.13.2.1任务任务11将网页分类将网页分类现在普遍认为网页分为3种形式:静态网页、特效网页和动态网页。

109、静态网页是由HTML代码组成,网页文件扩展名为.htm或者.html,网页内容和网页元素在浏览器中显示的时候,没有动画效果,网页内容也不会随着浏览者的行为变化;特效网页是在HTML文档中嵌入某种Script脚本代码,这些代码可以让网页中某些元素具有特殊效果,例如随着主页同时出现的弹出窗口,或者在网页中四处飞舞的广告图片等,这样的网页代码仍然由浏览器解释执行;动态网页是在前两种文档基础上嵌入了编辑交互网页的语句,例如ASP语句,网页扩展名为.asp,程序由服务器执行,将执行后的结果生成HTML文档返回给请求的用户,这样的网页可以随着用户的输入或者选择的不同而出现不同的内容,供给用户浏览,这就是要

110、学习的ASP动态网页程序。图3-2给出了3种网页的代码区别。141142图3-2 3种网页形式对应的不同语言 3.2.23.2.2任务任务22了解了解ASPASP程序说明程序说明ASP程序以扩展名为.asp的纯文本形式保存在Web服务器上。用户可以用任何文本编辑器打开它,ASP程序中可以包含纯文本、HTML标记以及脚本命令。若要运行动态网页程序,就可以通过在第二章中介绍的IIS发布运行动态网站了。HTML就像容器,里面可以嵌入ASP代码和脚本语句,其中ASP代码在服务器端执行,HTML代码和脚本特效语句在浏览器端执行。现在常用脚本语句有VBScript和JavaScript。ASP技术没有自己

111、的语法格式,默认情况下,采用VBScript脚本语言的语法,除此之外,ASP技术还可以采用其他脚本语法。例如JavaScript,关键是在HTML文档最前面一定要说明,用的是哪一种,以便浏览器用相应的脚本语法来解释执行。声明方式如下:例如:143将这一行语句放在HTML文档最上方即可。用户到底采用哪一种脚本语言,取决于用户自己的喜好以及浏览器能执行哪一种语言。现在来说,几乎比较流行的脚本语言IE浏览器都可以执行。那么,动态网页在服务器上执行时,是如何区分ASP代码和脚本特效的呢?很简单,所有的ASP代码都用“”括起来,所有的脚本都用“”和“”括起来。服务器端执行的是“”之间的部分,其余一律留给

112、用户浏览器解释执行。要学好ASP程序的设计,就要掌握脚本的编写,现在常用的脚本语言有VBScript和JavaScript。那么什么是脚本(script)呢?其实脚本是由一系列的脚本命令所组成的,如同一般的程序一样,脚本可以将一个值赋给一个变量,可以命令Web服务器发送一个值到客户浏览器,还可以将一系列命令定义成一个过程。要编写脚本,用户必须要熟悉至少一门脚本语言,如VBScript。脚本语言是一种介乎于HTML和如JAVA、VisualBasic、C+等编程语言之间的一种特殊的语言,尽管它更接近后者,但它却不具有编程语言复杂、严谨的语法和规则。脚本可以在服务器端执行,也可以在浏览器端执行。A

113、SP程序其实就是在服务器端运行的脚本。在下一节中将介绍ASP默认的VBScript脚本语法。1443.3VBScript3.3VBScript脚本语言脚本语言 3.3.1VBScript脚本语言简介513.3.2声明变量523.3.3注释VisualBasic脚本573.3.4使用数学运算符和函数573.3.5使用逻辑连接和运算符573.3.6IF条件判断语句583.3.7循环583.3.8过程调用593.3.9函数调用591453.3.1VBScript3.3.1VBScript脚本语言简介脚本语言简介VBScript是ActiveSeverPages的默认脚本语言。VBScript通过变量

114、,操作符,循环,分支,函数和过程,扩展了HTML。通过在HTML网页中嵌人VBScript脚本,可以使静态的HTML网页成为动态网页。1客户端和服务器端编程语言VBScript既可以作为客户端编程语言,也可以作为服务器端编程语言。客户端编程语言的优点是浏览器完成了所有的工作,这可以减轻服务器的负担。VBScript也可以作为服务器端编程语言,用VBScript作为服务器端编程语言的好处是VBScript不受浏览器的限制。VBScript脚本在网页通过网络传送给浏览器之前被执行。Web浏览器收到的只是标准的HTML文件。当创建ASP网页时,需要用VBScript作为服务器端编程语言。1462使用

115、VBScript作为服务器端脚本语言把VBScript脚本放入“”括起来的标记符之间,服务器就会自动运行这段代码,然后把生成的结果代码传送到浏览器。【例3.1】示例(hello.asp),下面的VisualBasic脚本在一个ASP网页中输出100个“helloworld!”。循环输出helloWorldHelloworld!147显示效果如图3-3(a)所示,图3-3(b)图显示了服务器返回给浏览器的HTML结果文档。148(a)运行结果 (b)在浏览器中查看网页源文件的结果图3-3 服务器返回浏览器的结果在上面的代码中“”指明VisualBasic脚本的开始和结束(或者说指明ASP代码的开

116、始和结束)。字符对“”的作用与HTML中的字符对“”的作用非常相似。不过“”是用来指明HTML标识,“”用来指明脚本。当Web服务器看到这个特殊字符对时,就试图把它们之间的内容解释为一个脚本。1493.3.23.3.2声明变量声明变量1变量的声明在VisualBasic脚本中,使用一个变量之前不需要专门声明它。如上面的例3.1所示,myvar并没有提前声明,但是它被分配了一个值“Helloworld!”,并且这个值被输出到浏览器。这不会导致错误。但是对于长而复杂的程序,希望变量应先声明再使用。这样在调试时,对于拼写错误可以一目了然。方法就是进行强制变量声明OPTIONEXPLICIT:150【

117、例3.2】强制声明变量的使用(hellovar.asp)。循环输出helloWorldHelloworld!以上程序在第一行添加了,然而在程序中并没有声明变量myvar,网页发布运行的时候会得到这样的信息,如图3-4所示。151图3-4 变量未声明报错页面 变量声明关键字DIM语句。DIM语句可同时声明多个变量,只要把变量名用逗号隔开即可。在例3.2的程序中,变量使用前添加如下的一个DIM语句就可以正确显示内容了:DIMmyvar强制变量声明的注意事项:必须把OPTIONEXPLICIT语句作为一个ASP网页的起始语句之一。它必须出现在任何HTML标识或其他VBScript命令之前。如果不这样

118、做,该语句将被视为非法语句。1522变量子类型VBScript中所有变量都是相同的variant型变量。variant是一种特殊的变量类型,它可以代表许多其他类型的变量。一个variant型变量可以自动与赋给它的值的类型保持一致。但是,用typename()函数可以得到一个variant型变量的子类型。例如var1.asp,代码如图3-5(a)所示,得到结果如3-5(b)所示。153函数TYPENAME()可以揭示一个变量的子类型。但是,在多数情况下,不需要关心一个变量是如何代表数据的。154(a)代码 (b)运行结果图3-5 得到变量的子类型3变量数据范围不同的变量子类型可以代表的数据有不同

119、的范围。表3-1所示列出了变量子类型和它们的数据范围的完整信息。子 类 型范 围Byte0到255BooleanTRUE或FALSEInteger-32768到32767Long-2147483648到2147483647Single负数:-3.402823E38到-1.401298E-45正数:1.401298E-45到3.402823E38Double负数:-1.79769313486232E308到-4.94065645841247E-324正数:4.94065645841247E-324到1.7976931348623eE308Currency-922337203685477.5808

120、到922337203685477.5807Date100年1月1日到9999年12月31日Object任何对象String变长字符串,长度从0个字符到大约20亿个字符155表3-1 变量子类型及其数据范围注意:string子类型的数据范围非常之大。甚至可以把整个网页的内容保存在一个字符串变量中。空变量和空值变量的区别:在给一个变量分配一个值之前,该变量是空的。用函数ISEMPTY()可以检测一个变量是否为空。如下例所示(empty.htm):运行结果如图3-6所示。156图3-6 用isempty检测变量是否为空 空变量与被分配了长度为0的字符串或数字0的变量是不同的。例如,语句myvar=“

121、”和myvar=0都给变量myvar分配了一个值。在这两种情况下,该变量都不是空的。只有一个从未被赋过值的变量才是空变量。空变量与包含空值的变量也是不同的。这也许有些奇怪。一个被分配了空值NULL的变量不是空变量。而是有值NULL。如果想使一个已经分配了值的变量成为空变量,必须使用关键字EMPTY:myvar=EMPTY1574声明常量VBScript可以声明常量。常量与变量有相似之处;但是,一旦声明了一个常量,该常量的值将不能被改变。CONSTREG_FEE=10.00一次定义多个常量,只要把每个常量定义用逗号隔开即可。像这样:CONSTREG_FEE=10.00,REG_TERM=20,S

122、ITE_NAME=webworld5创建和修改数组与变量不同的是,数组在使用之前必须用DIM声明。例如下面的DIM语句声明了一个可以存储11个值的数组:DIMProduct(10)注意:VBScript中数组的下标从0开始,因此每个数组的元素个数都比声明语句中的数字多1。(例如上面的数组Product可以存储11个值。)158声明了一个数组之后,可以用一个下表索引为它的元素分配数值。例如可以用这样的语句:数组维数声明可直到60维。要创建一个多维数组,只要简单地在数组声明语句中增加一个维数即可。像这样:DIMProduct(10,10,10,10)这个声明创建了一个四维数组,每一维可以存储11个

123、元素。这意味着这个数组共可以保存14641个数值(11111111=14641)。随着维数的增加,数组的大小增加得很快。159VBScript另外有一种动态数组。使用格式为:DIM数组名()/*声明一个动态数组*/REDIMProduct(2)/*用REDIM指定该动态数组的维数,且可以重复使用*/REDIMPRESERVEProduct(3)当声明一个动态数组时,不需要指定数组的维数。第一次给一个动态数组分配数值之前,必须用REDIM语句指定它的维数。关键字PRESERVE的作用是保存该数组中的内容;如果不使用PRESERVE,数组中的所有数据都会丢失。1606数组函数UBOUND()函数U

124、BOUND()返回一个数组的大小。确切地说,可以返回数组的某一维的大小。如下所示:DIMProduct(10,33)/*函数返回值是10,即参数默认情况下,返回第一维的上界*/*函数返回值是10*/*函数返回值是33*/注释:虽然数组的某一维的第一个下标索引值总是0,但其第一维总是用1表示,不要混淆了维数与索引。VBScript有一个ERASE语句,可以用来操作固定大小的数组和动态数组。通过对一个静态数组使用ERASE语句,可以清除这个数组。如果该数组是一个字符串数组,ERASE语句把该数组的所有元素重新初始化为空字符串“”。如果该数组是一个数值数组,ERASE语句可以把该数组的所有元素重新初

125、始化为0。例如:161DIMProduct(2)Product(1)=RunningshoesERASEProduct输出:当这个脚本执行时,不会输出任何信息。ERASE语句清除了数组Product的所有数据,不论有多少元素被分配了值。当对动态数组使用ERASE语句时,它的作用与上述的不同。对动态数组使用ERASE语句时,该数组本身会被删除。在重新使用这个数组之前,必须对它重新初始化。如下例所示:DIMProduct()REDIMProduct(100)Product(1)=RunningShoesERASEProduct这个脚本创建了一个名为Product的动态数组。该数组的索引值为1的元素

126、被赋了一个值。然后,用ERASE语句删除了这个数组。如果在它被删除之后试图访问这个数组的任何一个元素,则将发生错误。162当删除了一个数组后,内存就被释放。对一个访问率很高的站点来说,每一字节的内存都很珍贵。因此当不再需要一个动态数组时,用ERASE语句删除它是个不错的主意。操作数组的最后一个有用的函数是ISARRAY()。函数ISARRAY()可以用来测试一个变量表达式是否是一个数组。例如:在这个例子中,第一个ISARRAY()函数返回TRUE,因为Product实际上是一个数组。第二个ISARRAY()函数返回FALSE,因为变量somevar没有被声明为一个数组。1633.3.33.3.

127、3注释注释VisualBasicVisualBasic脚本脚本在VisualBasic脚本中加入注释,可用下面的方法:或者REMIamaVBScriptcommentIamalsoaVBScriptcommentREM语句用来建立一条注释。单撇号可以用于同样的目的。REM语句与单撇号执行同样的功能。这两种注释只能用来注释一行。1643.3.43.3.4使用数学运算符和函数使用数学运算符和函数VBScript包括期望一种编程语言应该有的所有数学运算符。可以进行加,减,乘和除的运算。整除运算只返回整数。VBScript还包括一批数学函数。这些函数包括4个三角函数:反正切函数ATN(),正弦函数SI

128、N(),余弦函数COS(),正切函数TAN()。数学函数还包括自然对数函数LOG(),平方根函数SQR(),和指数函数EXP()。另外,VBScript有5个取舍函数。这些函数是取反函数ABS(),取整函数INT(),取舍函数FIX(),取整函数ROUND(),和函数SGN()。函数ABS()返回一个绝对值。函数INT()四舍五入后最接近的整数。函数FIX()也返回最接近的整数,不过这个函数对复数是向下舍入而不是向上舍入。函数ROUND()允许指定舍入后小数部分的位数。最后,函数SGN()返回1,0,或-1,分别对应其参数是正数,零,或复数。1653.3.53.3.5使用逻辑连接和运算符使用逻

129、辑连接和运算符等于运算符()测试两个值是否相等。当用于字符串时,被比较的两个字符串的所有字母要有相同长度。不等运算符()测试两个值是否不相等。当用于字符串时,这个运算符也要求长度相等。小于()运算符比较两个表达式的相互大小。小于等于运算符(=)当其左边的表达式大于或等于其右边的表达式时返回TRUE。VBScript还包括所有的逻辑连接符。可以用值TRUE,FALSE,和NULL来代表语句的真值。可以构造包含“非”(NOT),“与”(AND),“异或”(XOR),“或”(OR),以及IMP和EQV的语句。166一个IMP表达式当其前一个真值是false,或其后一个真值是true时,表达式的真值是

130、true。一个EQV表达式当前后两个真值都是false或都是true时,表达式的真值是true。当用作条件分支语句如IFTHEN,SELECTCASE,WHILE和DO循环的一部分时,逻辑连接符特别有用。1673.3.6IF3.3.6IF条件判断语句条件判断语句单条件判断IF.THEN.ENDIF语句。带有一个分支的IF.THEN.ELSE.ENDIF表达式,可以在ELSE语句后放置多个语句。分支嵌套。SELECTCASE多条件判断。格式如下:SELECTCASE变量CASE常值1语句1CASE常值2语句2CASEELSE语句nENDSELECT%1683.3.73.3.7循环循环1FOR循环

131、FOR循环格式:FOR递增变量初值TO终值STEP步长值IFTHENEXITFORNEXT注释:STEP可以省略,默认步长为;STEP也可以指定一个负值,构造反向循环。可以用EXIT,FOR语句从一个FOR.LOOP循环退出。假定在遍历一个数组以找到某个字符串表达式的匹配值。当已经找到了一个匹配时,不需要继续执行循环,这时通常与IF条件判断一起使用。1692FOREACHNEXT循环FOREACH.NEXT语句只适用于对数组或集合的元素进行循环,格式如下:Foreach循环变量in数组或集合ifthenexitforNext1703WHILEWEND和DOWHILE循环WHILE循环当某个条件

132、的真值保持为TRUE时,重复执行一组语句。格式如下:While条件表达式或逻辑表达式WEND当条件表达式或逻辑表达式为真,WHILE和WEND之间的所有语句被重复执行,直到条件为假。DOWHILE循环与WHILE循环密切相关,但是更复杂。格式如下:Dowhile条件表达式或逻辑表达式Loop当条件成立,重复执行语句。与之类似的循环就是DOUNTILLOOP循环。格式如下:Dountil条件表达式或逻辑表达式loop与FOR循环相类似,用EXITDO语句可强制退出WHILE循环。1713.3.83.3.8过程调用过程调用如果发现需要在脚本中的多处地方执行同样的一组语句,可以使用过程。一个过程可以

133、包含VBScript语句的任何集合。可以调用同一个过程任意多次。过程定义格式:SUB过程名(参数1,参数2,参数n)ENDSUB过程调用格式:Call过程名(参数)例如:过程可以带参数也可不带,多个参数间使用“,”分隔。1723.3.93.3.9函数调用函数调用函数与过程非常相似,只有关键的一点区别,函数可以传递回一个结果。函数定义格式:FUNCTION函数名(参数1,参数2,参数n)函数名ENDFUNCTION在程序中可使用或直接输出函数的返回值。1733.4ASP3.4ASP对象对象 3.4.1Response对象603.4.2Request对象613.4.3Server对象623.4.4

134、Application对象633.4.5Session对象65174在前面已在前面已经提提过,ASP技技术没有自己的没有自己的语法法规则,那么它,那么它是如何是如何实现网网页的交互性的呢?的交互性的呢?ASP是面向是面向对象的象的编程技程技术,它提供了,它提供了5个基本内置个基本内置对象和一些象和一些组件,每个件,每个对象和象和组件有相件有相应的属性和方法可供使用。在前面学的属性和方法可供使用。在前面学习了了ASP的默的默认脚本脚本语言言VBScript的基本的基本语法,法,ASP技技术就是就是应用自己的用自己的对象和象和组件件结合脚本合脚本语言的言的语法法规则实现网网页交互性的。交互性的。首

135、先了解一下首先了解一下ASP常用的几个内置常用的几个内置对象及其功能,如表象及其功能,如表3-2所示。所示。 175对象功能描述Response用来向浏览器回发信息,可用此对象从脚本向浏览器发送输出Request接收从浏览器发送到服务器的请求信息Server访问服务器端信息,控制ASP的运行环境Application用来存储、读取用户共享的应用程序信息,如可以用此对象在网站的用户间传送信息,当服务器重启后信息丢失Session存储、读取特定用户对话信息,以便重复使用,如可存储用户对网站的访问信息,当服务器重启后信息丢失176表3-2 ASP内置对象下面介绍ASP内置对象的使用特点。3.4.1R

136、esponse3.4.1Response对象对象Response对象的作用:主要用来向浏览器输出信息,其功能类似于其他编程语言的输出函数,所不同的是,一般编程语言是在本地机运行,把结果输出到本地的输出设备(如CRT、打印机等)上,而ASP是在服务器端运行,Response把运行结果输出到客户端的浏览器上。Response对象的语法格式:Response.属性方法(参数)数据集合(“集合元素”)Response对象的属性及说明如表3-3所示。177属性及取值使用说明Buffer=True/False布尔型,表明由一个ASP页面所创建的输出是否一直存放在IIS缓冲区,直到当前页面的所有服务器脚本处

137、理完毕或Flush、End方法被调用。在任何输出(包括HTTP报头信息)送往IIS之前这个属性必须设置。因此在.asp文件中,这个设置应该在语句后面的第一行。在ASP3.0以及后续版本中默认设置缓冲为开(True),而在早期版本中默认为关(False)。具体使用见知识拓展部分CacheControl=setting读/写,字符型,设置这个属性为“Public”允许代理服务器缓存页面,如为“Private”则禁止代理服务器缓存的发生Charset=value读/写,字符型,在由服务器为每个响应创建的HTTPContent-Type报头中附上所用的字符集名称(例如ISO-LATIN-7)Conte

138、ntType=MIME-type读/写,字符型,指明响应的HTTP内容类型,标准的MIME类型(例如“text/xml”或者“Image/gif”)。假如省略,表示使用MIME类型“text/html”,内容类型告诉浏览器所期望内容的类型Expiresminutes读/写,数值型,指明页面有效的以分钟计算的时间长度,假如用户请求其有效期满之前的相同页面,将直接读取显示缓冲中的内容,这个有效期过后,页面将不再保留在私有(用户)或公用(代理服务器)缓冲中178表3-3 Response对象的属性及说明属性及取值使用说明ExpiresAbsolute#datetime#读/写,日期时间型,指明当某页

139、面过期和不再有效时的绝对日期和时间,response.ExpiresAbsolute=#june6,200624:00:00#IsClientConnected只读,布尔型,返回客户是否仍然连接和下载页面的状态标志。在当前的页面执行完毕之前,假如一个客户转移到另一个页面,这个标志可用来中止处理(使用Response.End方法)PICS=PICS-Label-string只写,字符型,创建一个PICS报头并将之加到响应中的HTTP报头中,PICS报头定义页面内容中的词汇等级,如暴力、性、不良语言等Status=Codemessage读/写,字符型,指明发回客户的响应的HTTP报头中表明错误或页

140、面处理是否成功的状态值和信息。例如“200OK”和“404NotFound”179续上表 Response对象的方法及说明如表对象的方法及说明如表3-4所示。所示。方法及参数使用说明AddHeader(name,content)通过使用name和content值,创建一个定制的HTTP报头,并增加到响应之中。不能替换现有的相同名称的报头。一旦已经增加了一个报头就不能被删除。这个方法必须在任何页面内容(即text和HTML)被发往客户端前使用AppendToLog(string)当使用“W3CExtendedLogFileFormat”文件格式时,对于用户请求的Web服务器的日志文件增加一个条目

141、。至少要求在包含页面的站点的“ExtendedProperties”中选择“URIStem”BinaryWrite(SafeArray)在当前的HTTP输出流中写入Variant类型的SafeArray,而不经过任何字符转换。对于写入非字符串的信息,例如定制的应用程序请求的二进制数据或组成图像文件的二进制字节,是非常有用的Clear()当Response.Buffer为True时,从IIS响应缓冲中删除现存的缓冲页面内容。但不删除HTTP响应的报头,可用来放弃部分完成的页面End()让ASP结束处理页面的脚本,并返回当前已创建的内容,然后放弃页面的任何进一步处理Flush()发送IIS缓冲中所

142、有当前缓冲页面给客户端。当Response.buffer为True时,可以用来发送较大页面的部分内容给个别的用户Redirect(url)通过在响应中发送一个“302ObjectMoved”HTTP报头,指示浏览器根据字符串url下载相应地址的页面Write(string)在当前的HTTP响应信息流和IIS缓冲区写入指定的字符,使之成为返回页面的一部分180表3-4 Response对象的方法及说明Response对象的数据集合如表对象的数据集合如表3-5所示。所示。集合名称说明Cookies在当前响应中,发回客户端的所有cookie的值,这个集合为只写的181表3-5 Response对象的

143、数据集合及说明3.4.2Request3.4.2Request对象对象Request对象的作用:与对象的作用:与Response对象恰恰相反,前者是从客户端对象恰恰相反,前者是从客户端浏览器提取数据,而后者是用来向客户端浏览器输出信息。浏览器提取数据,而后者是用来向客户端浏览器输出信息。Request对象把客户信息保存在几个集合中,供对象把客户信息保存在几个集合中,供ASP应用程序使用。应用程序使用。Request对象的语法格式:对象的语法格式:Request.属性方法属性方法(参数参数)数据集合数据集合(“集合元素集合元素”)Request对象的属性及说明如表对象的属性及说明如表3-6所示。

144、所示。 属性说明TotalBytes只读,获得客户端在请求正文中发送的总字节数(Request.TotalBytes)182表3-6 Request对象的属性及说明Request对象的方法及说明如表对象的方法及说明如表3-7所示。所示。方法说明BinaryRead(count)当资料作为POST请求的一部分发往服务器时,从客户请求中获得count字节的资料,返回一个Variant数组(或者SafeArray)。如果ASP代码已经引用了Request.Form集合,这个方法就不能用。同样,如果用了BinaryRead方法,就不能访问Request.Form集合183表3-7 Request对象的

145、方法及说明Request对象的数据集合及说明如表对象的数据集合及说明如表3-8所示。所示。集合名称说明ClientCertificate当客户端访问一个页面或其他资源时,用来向服务器表明身份的客户证书的所有字段元或条目的数值集合,每个成员均是只读Cookies提供一种可以在来访者计算机上留下短小配置的方法,每个成员均为只读Form允许获取来自于用户浏览器端Form使用Post方法提交的字段值QueryString允许获取来自于客户端的查询字符串。几个不同的进程都可以生成查询字符串。如a标记stringsample生成值为value的变量名字符串。通过表单Get方法或由用户在其浏览器的地址框中键

146、入查询也可以生成查询字符串。ServerVariables随同客户端请求发出的HTTP报头值,以及Web服务器的几种环境变量的值的集合,每个成员均为只读184表3-8 Request对象的数据集合Request对象的常象的常见应用:用:接收伴随用户HTTP请求传导服务器的Quersystring字符串,例如现在的邮箱登录判断、显示特定用户的购物车等。接收用户在浏览器所填写的表单内容,例如,注册、登录等。1853.4.3Server3.4.3Server对象对象Server对象的定义:对象的定义:Server 对象提供对服务器上的方法和属性的对象提供对服务器上的方法和属性的访问,其中大多数方法和

147、属性是为实用程序的功能服务的。如在访问,其中大多数方法和属性是为实用程序的功能服务的。如在时间到达前控制脚本执行的时间,还可用来创建其他对象。时间到达前控制脚本执行的时间,还可用来创建其他对象。Server对象的语法:对象的语法:Server.属性方法属性方法(参数参数)Server对象的属性:对象的属性:Server对象的唯一一个属性用于访问一个正对象的唯一一个属性用于访问一个正在执行的在执行的ASP网页的脚本超时值,如表网页的脚本超时值,如表3-9所示。所示。 属性说明ScriptTimeout在脚本运行超过这一时间之后即作超时处理,默认值为90,格式:Server.ScriptTimeo

148、ut=NumSeconds186表3-9 Server对象的属性及说明Server对象的方法及说明如表对象的方法及说明如表3-10所示。所示。方法说明CreateObject(identifier)创建一个对象实例(可以是一个组件、应用程序或脚本对象),返回可以在代码中使用的一个引用。可以用于一个虚拟应用程序(global.asa页)创建会话层或应用程序层范围内的对象Execute(url)停止当前页面的执行,把控制转到在url指定的网页。用户的当前环境(即会话状态和当前事务状态)也传递到新的网页。在该页面执行完成后,控制传递回原先的页面,并继续执行Execute方法后面的语句HTMLEnco

149、de将字符串转化为使用特别的HTML字符MapPath(url)返回在url中指定的文件或资源的完整物理路径和文件名ScriptTimeout在终止前,一个脚本允许运行的秒数187表3-10 Server对象的方法及说明Server对象的常象的常见应用用:取得服务器中某个文件的路径取得当前ASP网页运行的服务器环境在服务器端用CreateObject方法建立某个组建的实例因为Server对象常见的应用是和组件结合,其常见应用一和组件结合,用CreateObject方法创建不同的组件对象;应用二用mappath方法得到某个文本文件或数据库的物理路径,也是与组件相关。所以关于Server的应用实例

150、将在后文中具体介绍。1883.4.4Application3.4.4Application对象对象定义:用来存储、读取用户共享的应用程序信息,如可以用此对象在网站的用户间传送信息,当服务器重启后信息丢失。Application对象的语法:Application属性方法(参数)Application对象的属性:没有内置的属性,但可以使用以下语句,设置用户定义的属性,也可称为集合。格式如下:Application(属性/变量名称)=用户自定义取值这样建立的属性通常称为Application变量,其终止的情况有3种:服务被终止、Global.asa被改变或者该Application被卸载。189Ap

151、plication对象的方法及说明如表3-11所示方法说明Contents.Remove(variable_name)从Application.Content集合中删除一个名为variable_name的变量Contents.RemoveAll()从Application.Content集合中删除所有变量Lock()锁定Application对象,使得只有当前的ASP页面对内容能够进行访问。用于确保通过允许两个用户同时地读取和修改该值的方法而进行的并发操作并不会破坏内容Unlock()解除对在Application对象上的ASP网页的锁定190表3-11 Application的方法 Appl

152、ication对象的事件:提供了在启动和结束时触发的两个事件,如表3-12所示。注意:Application的两个时间必须放在Global.asa文件中。SubApplication_OnStart事件的处理代码EndSubSubApplication_OnEnd事件的处理代码EndSub方法说明OnStart当ASP启动时触发,在用户请求的网页执行之前和任何用户创建Session对象之前。用于初始化变量、创建对象或运行其他代码OnEnd当ASP应用程序结束时触发。在最后一个用户会话已经结束并且该会话的OnEnd事件中的所有代码已经执行之后发生。结束时,应用程序中存在的所有变量被取消191表3

153、-12 Application对象的事件及说明Application对象的集合。Application对象提供了两个集合,可以用来访问存储于全局应用程序空间中的变量和对象。如表3-13所示。集合说明Contents没有使用OBJECT元素定义的存储于Application对象中的所有变量(及它们的值)的一个集合。包括Variant数组和Variant类型对象实例的引用StaticObjects使用OBJECT元素定义的存储于Application对象中的所有变量(及它们的值)的一个集合192表3-13 集合及说明Application对象的常见应用:Application对象拥有与应用程序所有

154、相关的集合、方法以及事件。一个Application对象包含的数据可以在整个应用程序中被所有用户享用。Application对象可以为任何类型,包括队列和对象。Application对象被普遍应用在以下方面:一个Application对象可以用来在每个主页上显示瞬态信息。例如用户可以利用Application对象来对每一主页进行当日新闻的更新。Application对象可以用来记录广告条被点击的时间和次数。Application对象可以从数据库中读取数据。例如可以从网站的数据库中接受销售品目录,然后利用Application对象显示在多个主页上。一个Application对象可以用来统计目前上

155、站人数(详见后面的小节)。一个Application对象可以用于网站上不同用户间的通信,这样就可以创建多用户游戏以及多用户聊天室。1933.4.5Session3.4.5Session对象对象Session对象的作用:可以存储特定用户会话所需的信息。当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的Web页时,如果该用户还没有会话,Web服务器将自动创建一个Session对象。当会话过期或放弃后,服务器将终止该会话。会话状态仅在支持cookie的浏览器中保留。Session对象的语法:Session.Co

156、llection|property|methodSession对象的属性及说明如表3-14所示。194属性说明CodePage整型。定义用于在浏览器中显示页面内容的代码页(CodePage)。代码页是字符集的数字值,不同的语言和场所可能使用不同的代码页。例如ANSI代码页1252用于美国英语和大多数欧洲语言,ANSI代码页932用于日文LCID整型。定义发送给浏览器的页面地区标识(LCID)。LCID是唯一标识地区的一个国际标准缩写,例如2057定义当前地区的货币符号是。LCID也可用于FormatCurrency等语句中,只要其中有一个可选的LCID参数。LCID也可在ASP处理指令中设置,

157、并优先于会话的LCID属性中的设置SessionID只读。长整型。返回这个会话的会话标识符,创建会话时,该标识符由服务器产生。只在父Application对象的生存期内是唯一的,因此当一个新的应用程序启动时可重新使用Timeout整型。为这个会话定义以分钟为单位的超时周期。如果用户在超时周期内没有进行刷新或请求一个网页,该会话结束。在各网页中根据需要可以修改。默认值是10min,在使用率高的站点上该时间应更短195表3-14 Session对象的属性及说明Session对象的方法:Session对象允许从用户级的会话空间删除指定值,并根据需要终止会话。方法及说明见如3-15所示。方法及参数说明

158、Contents.Remove(variable_name)从Session.Content集合中删除一个名为variable_name的变量Contents.RemoveAll()从Session.Content集合中删除所有变量Abandon()当网页的执行完成时,结束当前用户会话并撤销当前Session对象。但即使在调用该方法以后,仍可访问该页中当前会话的变量。当用户请求下一个页面时将启动一个新的会话,并建立一个新的Session对象(如果存在的话),注意在运行期间不能从Session.StaticObjects集合中删除变量196表3-15 Session对象的方法及说明197Sess

159、ion对象的事件:提供了在启动和结束时触发的两个事件,如表3-16所示。表3-16 Session对象的事件及说明 方法说明OnStart当ASP用户会话启动时触发,在用户请求的网页执行之前。用于初始化变量、创建对象或运行其他代码OnEnd当ASP用户会话结束时触发。从用户对应用程序的最后一个页面请求开始,如果已经超出预定的会话超时周期则触发该事件。当会话结束时,取消该会话中的所有变量。在代码中使用Abandon方法结束ASP用户会话时,也触发该事件Session对象的集合:提供了两个集合,可以用来访问存储于用户的局部会话空间中的变量和对象。如表3-17所示。集合说明Contents存储于这个

160、特定Session对象中的所有变量和其值的一个集合,并且这些变量和值没有使用OBJECT元素进行定义。包括Variant数组和Variant类型对象实例的引用StaticObjects通过使用OBJECT元素定义的、存储于这个Session对象中的所有变量的一个集合198表3-17 Session集合3.5ASP3.5ASP对象应用对象应用 3.5.1任务1脚本程序例题663.5.2任务2Response对象常用方法和属性举例693.5.3任务3应用Request对象733.5.4任务4应用Server对象793.5.5任务5应用Application对象803.5.6任务6应用Session

161、对象823.5.7任务7综合使用Request+Response+Session对象831993.5.13.5.1任务任务11脚本程序例题脚本程序例题 1VBScript脚本嵌入HTML的格式在浏览器端运行的脚本程序文件后缀名为.htm(静态网页),如下格式(vb.htm):客户端脚本编写举例程序!-DimfrmTmp声明一个变量SetfrmTmp=Document.Form1IfIsNumeric(frmTmp.Text1.Value)ThenIffrmTmp.Text1.Value30ThenMsgBox请输入10到30之间的数字!ElseFrmTmp.Submit输入正确,传递到服务器E

162、ndIf200ElseMsgBox请输入数字!EndIf-请输入10到30之间的数字:网页编辑完后,保存,然后直接双击文件名,就可以在浏览器中浏览了。效果如图3-7所示。VBScript脚本也可以在服务器端运行。文件后缀名为.asp(交互网页),上面的网页程序若另存为.asp,需要IIS发布才可以看到,效果同上。201(a)运行效果(b)提示消息框图3-7 当输入数值不在1030之间时,出现提示消息框 2分支结构根据用户在对话框中输入的有效数字,判断今天是星期几?其中用到了inputbox输入消息框和消息框msgbox的语法参见上文VBScript常用函数参考。效果如图3-8所示。202Sub

163、 ShowMessage Dim x x=InputBox(请输入x的值(1-7):) If not isnumeric(x) Then x= Select Case x Case MsgBox输入错误,请输入数字! Case 1 MsgBox 星期一 Case 2 MsgBox 星期二 Case 3(b)显示“星期三”图3-8选择分支实例效果图 MsgBox 星期三(a)输入数字3 Case 4 MsgBox 星期四 Case 5 MsgBox 星期五 Case 6 MsgBox 星期六 Case 7 MsgBox 星期日 Case Else MsgBox请输入1-7中的数字! End Se

164、lectEnd SubCall ShowMessage 调用ShowMessage 过程203(a)输入数字3(b)显示“星期三” 图3-8 选择分支实例效果图3过程调用+选择结构程序举例选择结构程序举例SubShowMessageDimx,y,zx=2Ifx0Theny=xElsey=-x图3-9代码运行结果以对话框的形式输出x、y和z的值MsgBoxx的值为&x&,y的值为&yEndSubCallShowMessage调用ShowMessage过程204效果如图3-9所示。图3-9 代码运行结果 注:Msgbox为消息框函数,格式见上文VBScript常用函数参考。 4循循环以及退出循以及

165、退出循环Exit for程序程序举例例求1100的累加和,当和超过200时跳出循环,并将累加和与累加项输出。ExitFor语句使用举例200ThenMsgBox此时i的值等于&i&,intSum的值等于&intSum图3-10网页运行结果ExitforEndIfNextEndSubCallShowMessage调用ShowMessage过程-效果如图3-10所示。205图3-10 网页运行结果 习题习题一、思考题(1)静态网页和交互网页有何区别?(2)ASP的默认脚本语言是什么?如果程序员需要使用JavaScript为主脚本语言,应当如何处理?(3)怎样避免直接在地址栏敲入URL即可绕过登录页

166、的错误?(4)什么时候要求清空浏览器的缓存?举几种常见的应用。(5)比较一下表单的get和post两种信息提交方法的区别?(6)探讨一下网站中哪些地方应用用户共享信息,哪些地方应用用户的私有信息?(7)Server对象可以访问客户机还是服务器上的方法和属性?(8)简述ASP文件的运行机制。二、操作题(1)编写VBScript脚本:实现用户在输入框中随机输入内容,当输入为100200之间的数字时,在消息框中显示:ok,当输入非数字时,在消息框中显示:这不是数字,当为其他信息时,在消息框中显示:错误!(2)利用VBScript脚本,编写数字能计算+、-、*、/的计算器。(3)实现下述的效果:用户在

167、填写注册信息时,单击【提交】按钮后,在网页上显示用户刚填写的所有信息。(4)试着编写聊天室(提高)。206第第4 4章章 ASPASP组件组件4.1知识引入944.2ASP组件介绍944.3ASP组件应用100习题1082074.2ASP4.2ASP组件介绍组件介绍4.2.1AdRotator组件954.2.2BrowserCapabilities组件964.2.3ContentLinking组件974.2.4计数器组件984.2.5CDONTS组件99208ASP组件均遵循Microsoft的ActiveX标准。ActiveX组件是一个文件,该文件包含执行一项或一组任务的代码,组件可以执行某

168、些特定的功能。安装好ASP平台后,所有的ASP内置组件都被安装注册到服务器上,调用内置组件的步骤是:首先必须创建组件的一个实例,并将该实例赋予一个变量;然后调用组件的方法和属性,完成相应的功能。ASP的内置组件有13种,而且还可以安装其他第三方的组件。209本章中主要介绍以下组件,如表本章中主要介绍以下组件,如表本章中主要介绍以下组件,如表4-14-14-1所示。所示。所示。 对象/集合功 能 描 述AdRotator组件Web页面上插入一个循环播放广告横幅的播放器BrowserCapabilities组件对象。取得系统中所有可用的磁盘驱动器信息ContentLinking组件集合。提供驱动器

169、的列表,这些驱动器实物地或在逻辑上与系统相连接。Drives集合包括所有驱动器,与类型无关。要可移动的媒体驱动器在该集合中显现,不必把媒体插入到驱动器中计数器组件文件夹对象,供存取文件夹的所有属性CDONTS组件集合。提供在Folder内的所有文件夹的列表210表4-1 ASP内置组件 4.3ASP4.3ASP组件应用组件应用4.3.1任务1AdRotator组件应用1004.3.2任务2BrowserCapabilities组件应用1014.3.3任务3ContentLinking组件应用1024.3.4任务4计数器组件应用1054.3.5任务5CDONTS组件应用1072114.2.1Ad

170、Rotator4.2.1AdRotator组件组件广告翻转组件:每次打开或重新加载网页时,实现随机的、交替的显示广告图像,并提供从显示的图像到另一个URL的链接。AdRotator组件在一个文本文件中保存广告列表;AdRotator组件依照在数据文件中的指令来显示它们。语法:SetAdRotator变量=Server.CreateObject(MSWC.AdRotator)创建AdRotator的一个实例,然后就可以使用它的属性或方法了,格式如下:AdRotator变量.属性=属性值或AdRotator变量.方法(循环定时文件路径)2121 1AdRotatorAdRotator组件的属性组件

171、的属性属性及取值说 明Border=size指定广告是否带边框。size指定显示边框的宽度,其默认值在RotateSchedule文件的文件头中设置Clickable=value指定广告是否可作为超链接显示。value:bool值,为ture时,广告作为超链接,否则为false,不作为超链接。默认值为trueTargetFrames=frame指定目标页的显示框架Subfolders返回这个文件夹下子目录的集合213表4-2 Ad Rotator组件的属性 2 2AdRotatorAdRotator组件的方法组件的方法该组件只有GetAdvertisement一个方法,用于重新取得一个将要显示

172、的图片和超文本链接。当用户第一次启动网页或重新刷新时,系统会重新取得下一个图片。该方法的语法格式如下:GetAdvertisement(rotationSchedulePath)其中rotationSchedulePath指定RotatorSchedule文件相对于虚拟目录的位置,例如:MyAd.GetAdvertisement(myadrot.txt)2143 3AdRotatorAdRotator组件的相关文件组件的相关文件Ad Rotator组件除了必要的件除了必要的Adrot.dll文件外,文件外,还要有循要有循环定定时文件,另外也可文件,另外也可以有重定向文件。以有重定向文件。循循环

173、定定时文件文件循循环定定时文件是一个文件是一个纯文本文件,包含文本文件,包含Ad Rotator组件用于管理和件用于管理和显示各种广示各种广告告图像的信息。在像的信息。在该文件中,用文件中,用户可以指定广告的可以指定广告的细节,例如,例如图像的大小、像的大小、显示示时间百分比。百分比。循循环定定时文件由两部分文件由两部分组成。第一部分是广告的通用信息,第二部分成。第一部分是广告的通用信息,第二部分设置与每置与每个广告相关的个性信息,包括指定每个广告的个广告相关的个性信息,包括指定每个广告的显示示图像、像、对应的的URL以及每个广告的以及每个广告的显示示频率等。率等。文件格式如下:文件格式如下:

174、REDIRECT URLWIDTH numWidthHEIGHT numHeightBORDER numBorder*adURLadHomePageURLTextimpressions重定向文件重定向文件重定向文件是重定向文件是Ad Rotator组件中的可件中的可选项,如果在循,如果在循环定定时文件中指定使用重定向文件,文件中指定使用重定向文件,每当用每当用户单击广告广告时,其,其发出的出的请求求对象会重定向到象会重定向到该文件。重定向文件是使用文件。重定向文件是使用Request.Querystring(URL)来取得与被来取得与被单击图像相关的像相关的“URL”。2154.2.2Brow

175、serCapabilities4.2.2BrowserCapabilities组件组件1Browser Capabilities组件的功能件的功能BrowserCapabilities(浏览器能力)组件,用于创建一个BrowserType对象,该对象提供带有客户端网络浏览器的功能说明的用户脚本。该组件之所以能识别客户浏览器的版本等信息,主要是因为当客户浏览器向服务器发送页面请求时,会自动发送一个UserAgentHTTP标头,该标头是一个声明浏览器及其版本的ASCII字符串。可以使用如下代码获得这段header。BrowserCapabilities组件将UserAgent映射到在文件brow

176、scap.ini中所注明的浏览器,并通过BrowserType对象的属性来识别客户浏览器。也就是说,将得到的标头信息与Browscap.ini文件所记录的浏览器属性信息相比较,如果某项属性值相互匹配,就认为该浏览器支持这项属性,如果在browscap.ini文件中找不到匹配项,且文件中也未指定浏览器设置,那么将使用默认的浏览器属性。创建一个BrowserCapabilities组件对象,语法如下:SetBrowser类型变量=Server.CreateObject(MSWC.BrowserType)2162browscap.ini文件BrowserCapabilities组件除包含一系列属性、

177、方法外,还有一个外部驱动文件browscap.ini文件。在默认情况下,browscap.ini文件被存放在WINDOWSSYSTEMINERSRV(如果是95/98+PWS4)或NTSYSTEM32INERSRV(如果是NT)目录中,读者可以自己编辑这个文本文件,以添加自己的属性或者根据最新发布的浏览器版本的更新文件来修改该文件。217browscap.ini文件主要定义了各种浏览器所具有的属性,下面截取了文件的一部分内容:;IE5.0IE5.0browser=IE /指定浏览器的名称Version=5.0 /指定浏览器的版本majorver=5 /指定浏览器的主版本号minorver=0

178、/指定浏览器的副版本号frames=True/指定浏览器是否支持框架tables=True /指定浏览器是否支持表格cookies=True/指定浏览器是否支持cookiesbackgroundsounds=True/指定浏览器是否支持背景音乐vbscript=True /指定浏览器是否支持VbScript脚本javaapplets=True/指定浏览器是否支持Java小程序javascript=True/指定浏览器是否支持JavaScript脚本ActiveXControls=True/指定浏览器是否支持ActiveX控件Win16=False/指定浏览器是否支持Win16beta=True

179、 /指定浏览器是否支持测试版AK=FalseSK=FalseAOL=FalseUpdate=False还有更多属性,请读者自行参阅browscap.ini文件。2184.2.3ContentLinking4.2.3ContentLinking组件组件ContentLinking组件的主要目的在于管理网页或网址间的超文本链接,可以通过一个网页或网址的线性排列的顺序列表来管理多个网页或网址间的超文本链接顺序。通常用于联机报刊、电子读物以及论坛邮件网站中。ContentLinking组件读取一个被称为线形排列顺序文本链接的文本文件,该文件列出了每个链接的URL和描述信息。根据这些信息,该组件可自动创

180、建每个相关页面的导航链接和目录链接,一旦页面间的结构发生变化,只要修改内容链接文件就可以实现导航链接和目录链接的更新,从而节省了站点维护的工作量。2191 1创建创建ContentLinkingContentLinking组件对象组件对象ContentLinking组件在使用时,首先创建一个管理URL列表的Nextlink对象,其语法如下:SetNextLink=Server.CreateObject(MSWC.NextLink)在成功创建了NextLink对象后,就可以使用该对象提供的属性和方法来完成特定的功能。2202 2编写线形排列顺序文件编写线形排列顺序文件 线性排列顺序文件也叫做内容

181、链接列表文件,是一个文本文件,其中包含Web页的相关信息列表,该文件必须在Web服务器的虚拟路径上才可使用。在该文件的每行中指定了链接的URL和描述信息。语法如下:urldescriptioncomment参数说明:url:是与页面相关的超链地址,可以是虚拟路径也可以是绝对路径;description:提供了能被超链使用的说明性文本信息;comment:包含了不被ContentLinking组件解释的注释信息,它的作用如同程序中的注释。description和comment参数是可选的。注意:在线形排列顺序文件中,每行以回车键结束,每列之间以【Tab】键分隔。2213 3ContentLink

182、ingContentLinking组件的方法组件的方法方法及其参数说明GetListCount(file)统计内容链接列表文件中链接的项目数GetNextURL(file)获取内容链接列表文件中所列的下一页的URLGetPreviousDescription(file)获取内容链接列表文件中所列的前一页的说明行GetListIndex(file)获取内容链接列表文件中当前页的索引GetNthDescription(file,i)获取内容链接列表文件中所列的第N页的说明行GetPreviousURL(lietURL)获取内容链接列表文件中所列的上一页的URLGetNextDescription(

183、file)获取内容链接列表文件中所列的下一页的说明行GetNthURL(file,i)获取内容链接列表文件中所列的第N页的说明222表4-3 Content Linking组件的方法 4.2.44.2.4计数器组件计数器组件在一个计数器组件中可以有多个不同名称的计数器,利用这些不同的计数器可以统计网站中多个元素的数据。计数器组件的创建语法如下:SetMyCount=Server.CreateObject(MSWC.Counters)2231 1计数器组件的方法计数器组件的方法方法及其参数说明Get(CountNember)返回指定的计数器的值,如果该值不存在,则创建并设初值为0Incremen

184、t(CountNember)对指定的计数器进行加1操作,如果指定的计数器不存在,则创建并将其值设为1Remove(CountNember)清除指定的计数器Set(CountNember,integer)设置指定计数器的数值224表4-4 计数器组件的方法及参数说明2 2计数器组件的使用计数器组件的使用ASP中的计数器组件通常在global.asa文件中声明,如下所示:在global.asa文件中利用HTML的标记创建一个名为MyCount的计数器实例。global.asa文件在整个网站运行开始运行时就执行,并且由于MyCount的计数器实例是一个Application类型的变量。所以在整个站点

185、内都可以访问该组件。2254.2.5CDONTS4.2.5CDONTS组件组件CDONTS组件是IIS本身提供的发送E-mail的组件,启用这个组件时需要安装和启动SMTP服务。如果SMTP服务器已安装,在System32目录下会存在一个名为cdonts.dll的文件。CDONTS组件在使用前也要创建实例,要使用Server对象的CreateObject方法,语法如下:SetmyMail=Server.CreateObject(CDONTS.NewMail)CDONTS组件提供了一系列的属性和方法。2261 1CDONTSCDONTS组件的属性组件的属性属性说明From寄送者的电子邮件地址To

186、收件人的电子邮件地址Subject电子邮件的主题Body电子邮件的内容BodyFormat内容格式,1为纯文本;0为html超文本Mailformat邮件格式,1为连续的纯文本,0为MIME类型Cc抄送电子邮件地址ContentBase带有附件的邮件中正文采用的基地址,是字符串类型ContentLocation带有附件的邮件中正文采用的地址Bcc密件抄送(即以“,”分隔的接受者列表)Importance优先登记,0为低,1为中,2为高Version返回CDONTS组件的版本号,只读属性227表4-5 CDONTS组件的属性 2 2CDONTSCDONTS组件的方法组件的方法常用的CDONTS组

187、件有下列3个方法:Send:在设置好对象属性后,直接使用Send方法通过Web服务器默认使用的SMTP服务器发送出上述内容的电子邮件,其语法如下:myMail.Send(from,to,subject,body,importance)AttachFile:附加一个文件,在发送邮件附件时使用。其语法如下:AttachFile(source,filename,encodingMethod)AttachURL:附加一个格式附件和数据;随邮件发送一个超文本格式的E-mail。其语法如下:AttachURL(source,contentlocation,contentbase,encodingMetho

188、d)具体的CDONTS组件的使用课件见4.3节的实训例题。228习题习题1改写改写CDONTS组件例件例题。建立如。建立如图4-13所示的网所示的网页,并制定表并制定表单的的Action属性属性为mail.asp,编辑mail.asp,实现当用当用户输入信息后,入信息后,单击【发送送】按按钮,即可将,即可将邮件件发往用往用户指定的指定的邮箱。箱。 229图4-13 建立表单页面 2编辑如如图4-14所示的网所示的网页,并指定表,并指定表单的的Action属性属性为mailattach.asp,并,并编辑此此处理程序,当用理程序,当用户输入信入信息后,息后,单击【发送送】按按钮,即可,即可实现带

189、附件的附件的邮件的件的发送。送。230图4-14 运行界面 第第5 5章章 文件系统组件文件系统组件5.1知识引入110 5.2文件系统组件1105.3文件系统组件应用1175.4拓展训练124习题1272315.25.2文件系统组件文件系统组件5.2.1FileSystemObject对象1115.2.2服务器的磁盘对象Drive1135.2.3服务器的文件夹操作Folder1135.2.4服务器的文件操作File1145.2.5文本文件的读写操作TextStream116232文件系统组件,全称FileSystemObject(以下简称FSO),其作用是能够取得Web服务器磁盘驱动器的相关

190、信息,或在服务器上添加、移动、改变、创建或删除文件夹,能够对文本文件进行读写操作。在Internet编程中,利用文件保存数据是一种简便快捷的方式。普遍应用在读写系统日志、存储用户数据以及站点计数器上。233FSOFSOFSO对象模型内含有的对象如表对象模型内含有的对象如表对象模型内含有的对象如表5-15-15-1所示。所示。所示。对象/集合功能描述FileSystemObject主对象。包含用来创建、删除和获得有关信息,以及通常用来操作驱动器、文件夹和文件的方法和属性。和该对象相关联的许多方法,与其他FSO对象中的方法完全相似;它们是为了方便才被提供的Drive对象。取得系统中所有可用的磁盘驱

191、动器信息Drives集合。提供驱动器的列表,这些驱动器实物地或在逻辑上与系统相连接。Drives集合包括所有驱动器,与类型无关。要可移动的媒体驱动器在该集合中显现,不必把媒体插入到驱动器中Folder文件夹对象。供存取文件夹的所有属性Folders集合。提供在Folder内的所有我呢间家的列表TextStream文本流对象。供存取文件内容,可以方便对文件的顺序访问File文件对象。取得文件信息,或是建立、移动和删除文件Files集合。提供包含在文件夹内的所有文件的列表2345.2.1FileSystemObject5.2.1FileSystemObject对象对象各组件对象在应用前都要进行实例

192、化,即创建一个属于该类的一个具体的对象,只有一个具体的对象才能使用相应的属性和方法。1创建FileSystemObject的一个实例Setfso=Server.CreateObject(Scripting.FileSystemObject)这样就建立了名为fso的FSO实例对象,接着就可以使用FileSystemObject对象的方法和属性来执行文件系统的操作了。FileSystemObject对象共有24种方法和一个属性。其语法为:FileSystemObject实例化对象.属性|方法FileSystemObject对象应用它的方法和属性对服务器的磁盘进行信息的读取;对文件夹和文件进行创建和

193、删除,并同时读取文件夹和文件的信息;在交互网站中应用最广泛的就是对文本文件的建立、删除、添加和读取操作。23522 2FileSystemObjectFileSystemObjectFileSystemObject对象的方法及功能如表对象的方法及功能如表对象的方法及功能如表5-25-25-2所示。所示。所示。 方法及方法的语法说明BuildPath(path,name)在由path指定的目录后加上由name指定的文件或文件夹CopyFile(source,destination,overwrite)从一个位置向另一个位置复制一个或多个文件source:指定文件字符串,可以包含通配字符来复制一个

194、或多个文件destination:目的字符串。不允许通配字符。overwrite:Bool值,指明是否覆盖已有文件。如果为true,文件被覆盖(默认);为false,则文件不会被覆盖。如果destination设置了只读属性,那么无论overwrite的值是什么,CopyFile都会失败CopyFolder(source,destination,overwrite)将文件夹连同子文件夹从一个位置复制到另一个位置CreateFolder(foldername)创建文件夹。foldername为指定创建的文件夹名CreateTextFile(filename,overwrite,unicode)创

195、建指定的文件名并返回一个TextStream对象,可以使用这个对象对文件进行读写filename:要创建文件的文件名;overwrite:Bool值,覆盖已有文件为true,否则为false(默认);unicode:Bool值,指明文件以Unicode方式创建值为true,否则作为ASCII文件创建值为false(默认)。DeleteFile(filespec,force)filespec:要删除的文件的名称。可以在最后的路径成分中包含通配字符force:Bool值,如果要删除设置了只读属性的文件,则为true;否则为false(默认)DeleteFolder(folderspec,force

196、)删除指定的文件夹及其内容folderspec:要删除的文件夹的名称。可以在最后的路径成分中包含通配字符;force:bool值,要删除只读属性的文件夹,则为true;否则为false(默认)236续表(二)续表(二)方法及方法的语法说明DriveExists(drivespec)如果指定的驱动器存在则返回True;如果不存在则返回Falsedrivespec:动器号或完整的路径说明FileExists(filespec)filespec:需要判定是否存在的文件的名称FolderExists(folderspec)如果指定的文件夹存在则返回True;否则返回FalseGetAbsolutePa

197、thName(pathspec)根据提供的路径说明返回明确完整的路径GetBaseName(path)返回字符串,该字符串包含路径中最后成分中的基本名称,不包含文件扩展名。path:为将返回其最后成分中的基本名称指定路径GetDrive(drivespec);返回相应于指定路径中驱动器的Drive对象drivespec:可以是驱动器号(c)、带冒号的驱动器号(c:)、带冒号和路径分隔符的驱动器号(c:),或者任意网络共享的说明(computer2share1)GetDriveName(path)根据指定路径返回包含驱动器名称的字符串path:必选项。路径说明,将根据其中成分返回驱动器名称Get

198、ExtensionName(path)返回包含路径中最后成分扩展名的字符串path:必选项。路径说明,将根据其中的成分返回其扩展名GetFile(filespec)filespec:必选项。filespec是指定文件的路径(绝对和或相对的)GetFileName(pathspec)返回指定路径的最后成分,但指定的路径不能只是驱动器说明pathspec:必选项。指定文件的路径(绝对的或相对的)GetFolder(folderspec)根据指定路径中的文件夹返回相应的Folder对象folderspec:指定文件夹的路径(绝对的或相对的)GetParentFolderName(path)根据指定路

199、径中的最后成分返回包含其父文件夹名称的字符串path:路径说明,将根据其中成分返回其父文件夹的名称237续表三续表三方法及方法的语法说明GetSpecialFolder(folderspec)返回指定的特殊文件夹对象folderspec:返回的特殊文件夹的名称GetTempName()返回一个随机产生的临时文件或文件夹名,有助于执行那些需要临时文件或文件夹的操作MoveFile(source,destination)从一个位置向另一个位置移动一个或多个文件MoveFolder(source,destination)从一个位置向另一个位置移动一个或多个文件夹OpenTextFile(filena

200、me,iomode,create,format)已指定方式打开文本文件filename:指明要打开的文件名;iomode:可以是3个常数之一:ForReading或1、ForWriting或2,ForAppending或3;create:Bool值,当指定的filename不存在时是否创建新文件。如果创建新文件则值为True,否则为False(默认);format:取值为TristateTrue|-1,以Unicode格式打开文件;TristateFalse|0,(默认)以ASCII格式打开文件,TristateUseDefault|-2,使用系统默认值打开文件23833 3FileSyste

201、mObjectFileSystemObjectFileSystemObject对象的数据结合对象的数据结合对象的数据结合DrivesDrivesDrivesFileSystemObject对象只有一个数据结合Drives,可以表示计算机上所有可用驱动器的信息。2395.2.25.2.2服务器的磁盘对象服务器的磁盘对象DriveDrive1Drive对象FileSystemObject对象能够取得磁盘对象的信息,但不能删除,通常只是收集服务器磁盘的相关信息。Diver对象的使用格式:DimobjdriverSetobjdriver=Fso.GetDrive(Fso.GetDrivername(s

202、trpath)2402 2DriveDrive对象的属性如表对象的属性如表5-35-3所示。所示。磁盘对象属性说明VolumeName磁盘卷标DriveLetter磁盘代号,即A、C、DSerialNumber磁盘序列号DriveType磁盘类型FileSystem磁盘使用的文件系统类型TotalSize磁盘的总容量FreeSpace磁盘的可用空间2415.2.35.2.3服务器的文件夹操作服务器的文件夹操作FolderFolder1Folder对象的方法:方法及其参数说明Copy(destination,overwrite)destination:必选项,复制文件或文件夹的目的位置,不允许通

203、配字符;overwrite:可选项,Boolean型,如果要覆盖已有文件或文件夹,则为True(默认);否则为FalseDelete(force)force:可选项,Boolean型,如果要删除设置了只读属性的文件或文件夹则为True;否则为False(默认);如果指定的文件或文件夹不存在,那么会产生一个错误Move(destination)destination:必选项,移动文件或文件夹的目的位置,不允许通配字符OpenAsTextStream(iomode,format)iomode:可选项,指明I/O的模式。取值及意义:ForReading或1以只读方式打开文件、ForWriting或2

204、以写方式打开文件。如果存在同名的文件,那么它以前的内容将被覆盖,ForAppending或3打开文件并从文件末尾开始写format:可选项,取值及意义:TristateUseDefault或-2使用系统默认值打开文件;TristateTrue或1以Unicode方式打开文件;TristateFalse或0以ASCII方式打开文件2422 2FolderFolder对象的属性对象的属性属性及取值说明Name返回当前目录名称ParentFolder返回上一级目录Size显示当前目录及子目录的所有文件大小总和Subfolders返回这个文件夹下子目录的集合Attributes文件夹属性DateCre

205、ateed创建时间DataLastAccessed访问时间DateLastModified最后修改时间2435.2.45.2.4服务器的文件操作服务器的文件操作FileFile1File对象的方法及参数说明对象的方法及参数说明方法及其参数说明Copy(destination,overwrite)destination:必选项,复制文件或文件夹的目的位置,不允许通配字符;overwrite:可选项,Boolean型,如果要覆盖已有文件或文件夹,则为True(默认);否则为FalseDelete(force)force:可选项,Boolean型,如果要删除设置了只读属性的文件或文件夹则为True;

206、否则为False(默认);如果指定的文件或文件夹不存在,那么会产生一个错误Move(destination)destination:必选项,移动文件或文件夹的目的位置,不允许通配字符OpenAsTextStream(iomode,format)iomode:可选项,指明I/O的模式。取值及意义为ForReading或1以只读方式打开文件、ForWriting或2以写方式打开文件。如 果 存 在 同 名 的 文 件 , 那 么 它 以 前 的 内 容 将 被 覆 盖 ,ForAppending或3打开文件并从文件末尾开始写format:可选项,取值及意义:TristateUseDefault或-

207、2使用系统默认值打开文件;TristateTrue或1以Unicode方式打开文件;TristateFalse或0以ASCII方式打开文件2442 2FileFile对象的属性及说明对象的属性及说明属性及取值说明Attributes=newattributes可选项,指定file对象的新属性值。取值见下表5-8所示DateCreated返回指定文件或文件夹的创建日期和时间。只读DateLastAccessed返回最后访问指定文件或文件夹的日期和时间。只读这个方法的操作依赖于底层的操作系统。如果操作系统不支持提供时间信息,那么将不会返回任何信息DateLastModified返回最后修改指定文件

208、或文件夹的日期和时间。只读Drive返回指定文件或文件夹所在驱动器的驱动器号。只读Name设置或返回指定文件或文件夹的名称。读/写ParentFolder返回指定文件或文件夹的父文件夹对象。只读Path返回指定文件、文件夹或驱动器的路径ShortName返回短名称,这些短名称由需要以前的8.3命名规范的程序使用(即主文件名不超过8个字符,扩展名不超过3个字符)ShortPath返回短路径名,这些短文件名由需要以前的8.3文件命名规范的程序使用Size对于文件,以字节为单位返回指定文件的大小。对于文件夹,以字节为单位返回文件夹中包含的所有文件和子文件夹的大小Type返回关于文件或文件夹类型的信息

209、。例如对于以.txt结尾的文件将返回“文本文档”245FileFile对象对象AttributesAttributes属性说明:设置或返回文件或文件夹的属性。根据属性说明:设置或返回文件或文件夹的属性。根据不同属性为读不同属性为读/ /写或只读,它的取值如表写或只读,它的取值如表5-85-8所示。所示。常数值描述Normal0普通文件。不设置属性ReadOnly1只读文件。属性为读/写Hidden2隐藏文件。属性为读/写System4系统文件。属性为读/写常数值描述Volume8磁盘驱动器卷标。属性为只读Directory16文件夹或目录。属性为只读Archive32文件在上次备份后已经修改。

210、属性为读/写Alias64链接或者快捷方式。属性为只读Compressed128压缩文件。属性为只读2465.2.55.2.5文本文件的读写操作文本文件的读写操作TextStreamTextStream1TextStream对象TextStream对象用于访问文本文件,语法格式如下。实例化TextStream对象.属性|方法()2TextStream对象的方法及功能TextStream对象的方法及功能如表5-9所示。247方法及其参数说明Close()关闭打开的TextStream文件Read(characters)从TextStream文件中读取指定数量的字符,并返回由此得到的字符串Char

211、acters:要从该文件读取的字符个数ReadAll()读取TextStream文件的全部内容并返回由此得到的字符串ReadLine()从TextStream文件中读取一整行(一直到换行符,但不包括换行符),并返回由此得到的字符串Skip(characters)在读取TextStream文件时跳过指定个数的字符。Characters:必选项。在读取文件时要跳过的字符个数SkipLine()在读取TextStream文件时跳过下一行Write(string)将给定的字符串写入到一个TextStream文件。String:要写入文件的文本WriteBlankLines(lines)将指定数量的换行

212、符写入到一个TextStream文件。Lines:要写入该文件的换行符的个数WriteLine(string)向TextStream文件中写入给定的字符串和一个换行符。String:要写入该文件的文本。如果忽略该参数,则向该文件写入一个换行符248表5-9 TextStream对象的方法TextStreamTextStream对象的属性及说明如表对象的属性及说明如表5-105-10所示所示 属性及取值说明AtEndOfLine如果文件指针正好位于TextStream文件中的行尾符之前,则返回True,否则返回False。只读。只应用于打开读取文件时AtEndOfStream如果文件指针正好位于

213、TextStream文件中的结尾,则返回True,否则返回False。只读。只应用于打开读取文件时Column为只读属性,返回当前字符在TextStream文件中的列号Line只读属性,返回TextStream文件中当前的行号2495.35.3文件系统组件应用文件系统组件应用5.3.5任务5CDONTS组件应用1075.3.1任务1显示Web服务器的磁盘信息1175.3.2任务2实现文件的复制与删除1185.3.3任务3创建一个文本文件并查看其属性1185.3.4任务4打开文本文件,向文本文件写入内容1195.3.5任务5打开文本文件,读文本文件内容1205.3.6任务6综合例题1(编写文件计

214、数器) 1225.3.7任务7综合例题2(文件的图形计数器)1232502515.45.4拓展训练(创建基于文件拓展训练(创建基于文件组件的文件查询系统)组件的文件查询系统) 习题习题252第第6 6章章 网站数据库的访问网站数据库的访问6.1知识引入129 6.2web数据库访问技术1296.3网站数据库访问的应用158习题1702536.16.1知识引入知识引入2546.1.1任务1实训准备1296.1.2任务2运行示例程序1296.2Web6.2Web数据库访问技术数据库访问技术 6.2.1Web数据库访问技术1316.2.2Connection连接对象1416.2.3Recordset

215、记录集对象1456.2.4Command命令对象1526.2.5Field对象和Fields数据集合1546.2.6Properties数据集合和Property对象1556.2.7Errors数据集合和Error对象1562556.2.1Web6.2.1Web数据库访问技术数据库访问技术随着Internet/Intranet技术的飞速发展,Web成了新的商家必争之地,各家厂商都希望通过Internet/Intranet技术与最终用户建立直接的联系,如在Web上向用户推销产品、方便用户在网上查询自己喜欢的商品并提供网上订购服务等。于是基于Web方式的数据库技术应运而生。但是在传统的HTML页面

216、中,访问数据库一般是通过公用网关接口(CGI)来实现的,这种方式不仅开发困难,而且在出现大量并发请求时会显著地降低服务器的运行效率,而采用ASP技术实现数据库访问就能较好地解决这个问题。微软的ASP技术是一种运行于服务器端的脚本编写模型,它使开发者可以使用几乎所有的脚本语言(VBScript、JavaScript或Perl等)编写脚本,这些脚本可以执行应用程序逻辑,并能够调用ActiveX组件执行特殊任务,如数据库查询、文件输入/输出等。它将IDC的简单性和ISAPI的灵活性综合在一起。自从MicrosoftIIS3.0(InternetInformationServer3.0)出现以来,微软

217、提出并一直致力于发展ASP技术。至今,ASP技术得到了进一步的发展,在IIS4.0中提供了ASP脚本调试工具、事务处理、新的ActiveX组件、RDS等新特性。25611 1ASPASPASP访问数据库的方式访问数据库的方式访问数据库的方式在ASP脚本中可以通过3种方式访问数据库:传统的IDC(InternetDatabaseConnector)方式,ADO(ActiveXDataObjects)方式以及RDS(RemoteDataService)方式。从概念上来讲,这3种访问方式对数据库的访问是由InternetInformationServer来完成的。各自特点如下。(1)Internet

218、数据库接口(IDC)IDC是一个传统的数据库查询工具,用来定义和执行数据库查询的SQL命令,并向浏览器返回一个指定数据格式的页面。使用IDC访问数据库最大的特点是简单,几乎不需要编程就能实现对数据库的访问。但是IDC使用起来不灵活。257(2)ActiveX数据对象(ADO)ADO是ASP技术的核心之一,它集中体现了ASP技术丰富而灵活的数据库访问功能。ADO建立了基于Web方式访问数据库的脚本编写模型,它不仅支持任何大型数据库的核心功能,而且支持许多数据库所专有的特性。ADO使用本机数据源,通过ODBC访问数据库。这些数据库可以是关系型数据库、文本型数据库、层次型数据库或者任何支持ODBC的

219、数据库。ADO的主要优点是易用、高速、占用内存和磁盘空间少,非常适合作为服务器端的数据库访问技术。相对于访问数据库的CGI程序而言,它是多线程的,在出现大量并发请求时,也同样可以保持服务器的运行效率,并且通过连接池(ConnectionPool)技术以及对数据库连接资源的完全控制,提供与远程数据库的高效连接与访问,同时它还支持事务处理(Transaction),以开发高效率、高可靠性的数据库应用程序。258(3)远程数据服务(RDS)ADO不支持数据远程操作(DataRemoting),在ASP中原来的AdvancedDataConnector(ADC)发展出了RDS,提供访问远程数据库的功能

220、。它不仅能执行查询并返回数据库查询结果,而且这种结果是“动态的”,服务器上的数据库与客户端看到的数据保持“活的连接关系”。即把服务器端的数据搬到客户端,在客户端修改数据后,调用一个数据库更新命令,就可以将客户端对数据的修改写回数据库,就像使用本地数据库一样。在以上3种方式中,微软推荐的与现在常采用的都是通过ADO的方式访问数据库,因此接下来,本书就以ADO的方式讲解如何访问数据库。2592 2ADOADO访问数据库访问数据库现在有两种在有两种连接数据接数据库的方法。一方面,可以用的方法。一方面,可以用ODBC产生一个生一个连接,接,这种种连接与任何有接与任何有ODBC驱动器器的数据的数据库(基

221、本上是市(基本上是市场上所有的数据上所有的数据库)兼容;另)兼容;另一方面,可以用原始一方面,可以用原始OLE DB提供商提供商产生一个生一个连接。在接。在使用使用时尽可能用原始的尽可能用原始的OLE DB驱动程序,因程序,因为它提供它提供了了对数据数据库更有效的更有效的访问。称。称这种方式种方式为DSN-less。 下面列出了各种常用数据下面列出了各种常用数据库OLE DB(即(即DSN-less)方式的)方式的访问数据数据库的的语句;利用句;利用Set关关键字建立字建立一个名一个名为adoconn的一个属于的一个属于ADO中中Connection的的对象,象,然后根据各数据然后根据各数据库

222、的的驱动程序打开要程序打开要访问的数据的数据库。260(1)Access数据数据库的的DSN-less连接方法接方法Set adocon=Server.CreateObject(ADODB.Connection)adoconn.OpenDriver=Microsoft Access Driver(*.mdb);DBQ=&Server.MapPath(数据数据库所在路径所在路径)(2)Access OLE DB连接方法接方法Set adocon=Server.CreateObject(ADODB.Connection)adocon.OpenProvider=Microsoft.Jet.OLEDB

223、.4.0;&Data Source=&Server.MapPath (数据数据库所在路径所在路径)261(3)SQLserver连接方法Setadocon=Server.CreateObject(ADODB.RecordSet)adocon.OpenDriver=SQLServer;Server=(Local);UID=*;PWD=*;&database=数据库名;(4)SQLserverOLEDB连接方法Setadocon=Server.CreateObject(ADODB.Connection)adocon.Openprovider=SQLOLEDB.1;DataSource=RITANT

224、4;&_userID=*;Password=*;&_initalCatalog=数据库名262(5)Oracle连接方法Setadocon=Server.CreateObject(ADODB.Connection)adocon.OpenDriver=Microsoftodbcfororacle;_server=oraclesever.world;uid=admin;pwd=pass;(6)OracleOLEDB连接方法Setadocon=Server.CreateObject(ADODB.Connection)adocon.OpenProvider=OraOLEDB.Oracle;dataso

225、urce=dbname;_userid=admin;password=pass;(7)dBase连接方法Setadocon=Server.CreateObject(ADODB.Connection)adocon.OpenDriver=Microsoftdbasedriver(*.dbf);driverid=277;dbq=-;263(8)MySQL连接方法Setadocon=Server.CreateObject(ADODB.Connection)adocon.OpenDriver=mysql;database=yourdatabase;uid=username;pwd=yourpasswor

226、d;option=16386;(9)VisualFoxpro连接方法Setadocon=Server.CreateObject(ADODB.Connection)adocon.OpenDriver=MicrosoftVisualFoxprodriver;sourcetype=DBC;_sourceDB=*.dbc;Exclusive=No;(10)MStext连接方法Setadocon=Server.CreateObject(ADODB.Connection)adocon.OpenDriver=Microsofttextdriver(*.txt;*.csv);dbq=-;&_extension

227、s=asc,csv,tab,txt;PersistSecurityInfo=false;264(11)MStextOLEDB连接方法Setadocon=Server.CreateObject(ADODB.Connection)adocon.OpenProvider=Microsof.jet.oledb.4.0;datasource=your_path;&_ExtendedPropertiestext;FMT=Delimited26533 3用用用ODBCODBCODBC方式连接数据源(方式连接数据源(方式连接数据源(DSNDSNDSN访问数据库)访问数据库)访问数据库)通过ODBC访问数据库的

228、操作步骤,通常包括以下几个内容:(1)配置ODBC(以Access数据库为例)进入“控制面板”,选择“管理工具”,鼠标双击“数据源ODBC”,进入如图6-5所示对话框。266图6-5 “ODBC数据源”对话框267选择“系统DSN”选项卡,单击【添加】按钮,打开“创建数据源”对话框,如图6-6所示:选择数据库的驱动程序MicrosoftAccessDriver(*.mdb),然后单击【完成】按钮,进入如图6-7所示的对话框。268图6-6 “创建数据源”对话框 图6-7 “选择数据库”对话框输入“数据源名”(用户自行输入的),单击【选择】按钮选择数据库所在的路径,这时候右上角原本为灰色的【确定

229、】按钮也变为黑色(可使用)。如果不设置数据库的口令单击它就可以了,否则进入如图6-8所示“设置高级选项”对话框。在这个对话框中,输入访问数据库所需要的登录名称和密码。至此,ODBC数据库设置完毕,以后在网页中访问的话,用下面介绍的连接代码就可以了。269图6-8 设置“设置高级选项”对话框 (2 2)连接代码)连接代码Access 数据数据库270SQL Sserver数据数据库271(3 3)配置)配置SQLServerSQLServer数据库文件数据库文件DSNDSN注意:如果数据注意:如果数据库驻留在留在远程服程服务器上,器上,请与服与服务器管理器管理员联系,系,获取取附加的配置信息。附

230、加的配置信息。在在“创建新数据源建新数据源”对话框中,从列表框中框中,从列表框中选择“SQL Server”,然后,然后单击【下一步下一步】按按钮;键入入DSN文件的名称,然后文件的名称,然后单击【下一步下一步】按按钮。单击【完成完成】按按钮创建数据源。建数据源。键入运行入运行SQL服服务程序的服程序的服务器的名称、登器的名称、登录 ID 和密和密码。在在“创建建SQL Server的新数据源的新数据源”对话框中,在框中,在“服服务器器”列表框中列表框中键入包含入包含SQL Server 数据数据库的服的服务器的名称,然后器的名称,然后单击【下一步下一步】按按钮。选择验证登登录ID的方式。如果

231、要的方式。如果要选择SQL服服务器器验证,请输入一入一个登个登录ID和密和密码,然后,然后单击【下一步下一步】按按钮。272在“创建SQLServer的新数据源”对话框中,设置默认数据库、存储过程设置的驱动程序和ANSI标识,然后单击【下一步】按钮。(要获取详细信息,请单击【帮助】按钮。)在对话框(同样名为“创建SQLServer的新数据源”)中,选择一种字符转换方法,然后单击【下一步】按钮。(详细信息,请单击【帮助】按钮。)在下一个对话框(同样名为“创建SQLServer的新数据源”)中,选择登录设置。注意典型情况下,只能使用日志来调试数据库访问问题。在“ODBCMicrosoftSQLSe

232、rver安装程序”对话框中,单击“测试数据源”。如果DSN正确创建,“测试结果”对话框将指出测试成功完成。2734 4SQLSQL语言简介语言简介SQL是“StructuredQueryLanguage”结构式查询语言的缩写,网页对数据库的记录进行添加、删除等操作,就要发出相应的命令,这些命令语句就用SQL语言来编写。SQL语言在关系数据库中是通用的,因为SQL是数据库语言的标准。关系数据库,是用于对存放在计算机数据库中的数据进行组织、管理和检索的一种工具;是一种特定类型的数据库。而控制这种数据库的计算机程序就是常说的DBMS数据库管理系统。譬如:SQLServer、Oracle、Sybase

233、、DB2等。当用户想要检索数据库中的数据时,就通过SQL语言发出请求,接着DBMS对该SQL请求进行处理并检索所要求的数据,最后将其返回给用户,此过程被称做数据库查询,这也就是数据库查询语言这一名称的由来。SQL语言通常分成4类:查询语句(SELECT)、操作语句(INSERT、UPDATE、DELETE)、结构定义语句(CREATE、ALTER、DROP)和控制语句(COMMIT、ROLLBACK)。274数据库的结构定义语句数据库的结构定义语句Create语句用于创建一个新的数据表:语法格式为:CREATETABLE表名(字段1数据类型NOTNULL,字段2数据类型NOTNULL,字段3数

234、据类型NOTNULL)功能如下。275Alter语句用于更改数据库表结构语法格式为:1)ALTERTHBLE数据库表ADDCOLUMN字段名数据类型更改表结构,增加一个字段列并指定数据类型。2)ALTERTABLE数据库表ADDPRTMAPYKEY(字段名)更改表结构,设置某一个字段为主键。3)ALTERTABLE数据库表DROPPRIMARYKEY(字段名)更改表结构,结合DROP语句,删除字段主键的定义。276Drop语句用于将表或索引及其所包含的所有数据从数据库中删除掉语法格式为:DROP数据库表277数据库记录的动态操作语句数据库记录的动态操作语句数据库记录的动态操作,就是能够改变数据

235、库内容的操作语句,包括添加(insert)、修改(update)、删除(delete)3种模式,以下分别介绍他们的语法。Insert语句如下。语法格式为:INSERTINTO数据库表名(列1,列2)VALUES(值1,值2)说明:字段列名在括号中以逗号隔开,字段值之间同样以逗号隔开,同时,最重要的是字段名和字段值的顺序是相同的,而且若是字符串型则以单引号隔开。Insert语句建立的一个与表字段结构相一致的数据行,用取自VALUES子句的数据来填充它,然后将该新行加入表中,表中的行是不排序的,因此不存在将该行插入到表的头或尾或两行之间的这个概念。278Update语句如下。语法格式为:UPDAT

236、E数据库表SET列1=值1,列2=值2.WHERE查询条件说明:用于更新数据表中选定行的一列或多列的值。要更新的数据表在语句中定义,Set子句则指定要更新哪些字段及其值;Update语句总是包含Where语句,而且Update语句比较危险,所以使用时必须明确指定需要更新的行。279Delete语句如下。语法格式为:DELETEFROM数据表WHERE条件说明:由于它过于简单,所造成的后果也是严重的,虽然其中的Where子句是任选的,但它几乎总是存在的,若将Where子句从Delete语句中省略掉,则数据表的所有行都将被删除。280查询语句SelectSQL语言中最主要、最核心的部分就是它的查询

237、功能。查询语言用来对已经存在于数据库中的数据按照特定的组合、条件表达式或次序进行检索。查询是SQL语言的核心,其关键词是Select。Select语句是SQL中功能最强也是最为复杂的语句,这也是商务网站中应用的最多的SQL语句,例如在网页上看到的商品显示或某个查询结果显示的页面都是通过Select编写的。SQL中的Select查询语句的完整语法格式如下。SELECT字段FROM源数据表WHERE查询条件GROUPBY分组表达式HAVING搜索条件ORDERBY排序表达式升序|降序其中加粗的字是关键字,“和”间的内容可以省略。281SQL查询语句包括6个子句,其中Select和From子句是必须

238、的,其他子句可以任选,每个子句的功能如下。Select子句给出所有要求显示的数据字段名,若有多个数据项,用“,”隔开。当要显示一个数据表的所有数据时,可以使用通配符“”。按照从左到右的顺序,每个选择数据项产生一个字段的查询结果,每个选择项可能是以下几种情况之一。a字段:标识FROM子句指定表中的数据字段。如果字段名作为选择项,则SQL直接从数据库表中的每行取出该列的值,再将其放在查询结果的相应行中。b常数:指定在查询结果的每行中都放上该值。cSQL表达式:说明必须将要放入查询结果中的值按表达式的规定进行计算。282From子句列出包含所要查询数据的表,它由关键字From后跟一组用逗号分开的表名

239、组成。每个表名都代表一个包括该查询要检索数据的表。这些表称为此SQL语句的表源,因为查询结果都源于它们。Where子句告诉SQL只查询指定的字段中的数据,用搜索条件描述。GroupBy子句指定汇总查询,即不是对每行产生一个查询结果,而是将相似的行进行分组,再对每组产生一个汇总结果。Having子句告诉SQL只产生有GroupBy得到的某些组的结果,和Where子句一样,所需要的组也用一个搜索条件指定。OrderBy子句将查询结果按一列或多列中的数据排序。如果省略此子句,则查询结果将是无序的。283特殊的查询语句有:(1)消除重复行DISTINCT格式如下:SELECTALL|DISTINCT字

240、段名FROM表名WHERE条件表达式(2)连接查询在数据库应用中,经常要涉及从两个或更多的表中查询数据,这就需要使用连接查询。其格式如下:SELECT字段FROM表名WHERE表1.字段JOIN_OPERATOR表2.字段284上述的连接操作符(JOIN_OPERATOR)可以是:=、=、=、!=、!、!xxx说明:GROUPBY:以column1为一组计算column2的平均值必须和AVG、SUM等整合性查询的关键字一起使用。HAVING:必须和GROUPBY一起使用作为整合性的限制。2925 5ADOADOADO组件主要提供了以下7个对象和4个集合,通过在页面上调用这些对象和集合执行相应的

241、数据库操作。7个对象的几个主要功能如下:Connection对象负责用于创建ASP脚本和指定数据库的一个连接。网页操作数据库的前提就是程序首先要做一个数据库连接,然后才能有下一步的动作。Command对象负责对数据库提供请求,也就是传递指定的SQL命令。Parameters对象负责传递Command对象所需要的SQL命令参数。RecordSet对象负责浏览与操作从数据库取得的数据,它可以表示来自数据库表或command命令执行结果的记录集合。Field表示指定RecordSet对象的数据字段。每个Field对象对应于Recordset中的一列,可以使用Field对象的Value属性设置或返回当

242、前记录的数据。Property表示ADO的各项对象属性值,也就是每个ADO对象都会有一个描述或控制对象行的属性。Error负责记录连接过程所发生的错误信息,任何涉及ADO对象的操作都会生成一个或多个提供者错误。每个错误出现时,一个或多个Error对象将被放到Connection对象集合中。293ADO的4个数据集合的几个主要功能如下。Fields数据集合:Recordset对象包括Field对象组成的Fields集合。每个Field对象对应Recordset集合中的一列,通过调用集合的Refresh方法打开的Recordset对象来填充Fields集合。Properties数据集合:某些ADO

243、对象(如Connection对象、Command对象、Recordset对象,Field对象等)包含由Property对象组成的Property集合,每个Property对象与指定给提供者的ADO对象的特性相对应。Parameters数据集合:包含了Command对象的所有Parameter对象。Command对象具有由Parameter对象组成的Parameters集合。使用Command对象的Parameters集合上的Refresh方法,可以获取有关Command对象中指定的存储过程或参数化查询的数据库的参数信息。Errors数据集合:包含响应失败时产生的所有Error对象。Errors

244、集合中的Error对象集合描述响应单个语句时产生的所有错误,列举Errors集合中指定错误可使错误处理程序更精确地确定出产生错误的原因及错误来源,并执行适当还原步骤。294根据上述描述,可把ADO模型中各对象的关系用图6-9表示。每个Connection、Command、Recordset和Field对象都有Properties集合。如图6-10所示。295图6-9 ADO对象模型中各对象的关系图6-10 ADO模型的集合6.2.2Connection6.2.2Connection连接对象连接对象 Connection对象负责与数据库实际的连接动作,是实现网页与数据库连接的关键。其他的对象都必

245、须依赖于Connection对象的连接才能发挥其特有的功能。Connection对象代表与数据源进行的唯一会话。如果是客户端/服务器数据库系统,该对象可以等价于服务器的实际网络连接。使用ASPServer对象的CreateObject方法来创建Connection对象。296语法格式如下:Set连接对象名=Server.CreateObject(ADODB.Connection)1Connection对象的方法(1)Open方法:负责创建与数据源的连接语法格式如下:Connection.OpenConnectionString,UserID,Password,Options参数说明如表6-1所

246、示。参数说明ConnectionString包含用于建立连接数据源的信息,该参数是由分号分隔的一系列argument=value语句UserID包含建立连接时所使用的用户名Password包含建立连接时所使用的密码Options决定该方法是在连接建立之后(异步)还是连接建立之前(同步)返回297注意:如果在ConnectionString参数中包括了用户名和密码信息,而同时UserlD及Password参数也存在,那么UserID和password参数将覆盖ConnectionString中指定的相应信息。对打开的Connection操作结束后,可使用Close方法释放所有关联的系统资源。关闭

247、对象并非将它从内存中删除;可以更改它的属性设置并在以后使用Open方法再次打开它。要将对象完全从内存中删除,可将对象变量设置为Nothing。在创建连接时,由于数据库的不同,Connection参数的设置也有所不同:对于在“ODBC数据源控制面板”中设置过的数据源,该参数设置比较简单,可以使用“DSN=数据源名称”的格式。298(2)Execute方法:执行指定的查询、SQL语句、存储过程或特定提供者的文本等内容语法格式如下。对于非按行返回的命令字符串:Connection.ExecuteCommandText,RecordsAffected,Options对于按行返回的命令字符串:Setre

248、cordset=connection.Execute(CommandText,RecordsAffected,Options)该方法返回一个Recordset对象。参数CommandText是字符串类型,包含要执行的SQL语句、表名、存储过程或特定提供者的文本;RecordsAffected是长整型变量类型,是提供者向数据库服务器要求其返回每次操作所得到的记录数目;Options参数表示对数据库请求的类型,其参数取值如表6-2所示。299参数取值说明AdCmdTex表示提供者应按命令的文本定义计算CommandTextAdCmdTable表示ADO生成SQL查询以便从CommandText命名

249、的表中返回所有行AdCmdTablcDirect表示提供者应从CommandText命名的表中返回所有行AdCmdTable表示提供者应按表名计算CommandTextAdCmdStoreProc表示提供者应按存储过程计算CommandTextAdCmdUnknow表示CommandText参数中的命令类型未知AdAsyncExecute表示命令应该异步执行AdAsyncFetch表示在CacheSize属性指定的初始数量之后的剩余行用异步提取300表6-2 Execute方法Options参数取值Execute方法可以执行标准的SQL语句命令,如Select(查询提取数据)、Insert(插

250、入数据)、Delete(删除数据)、Update(更新数据),Create Table(创建数据表)、Drop Table(删除数据表)等操作。(3)Close方法:关闭Connection对象或Recordset对象以便释放关联的系统资源语法格式如下:语法格式如下:Connection.Close(4)BeginTrans,CommitTrans和RollbackTrans方法这3个方法都和Connection对象的事务管理有关。如果希望以独立单元保存或取消对源数据所做的一系列更改,则可以使用这些Connection对象的方法。例如在货币转账时,必须从账户中减去某个数额并将其对等数额添加到另

251、一个账户。无论其中的哪个更新失败,都将导致账户收支不平衡。在打开的事务中进行这些更改可确保只能选择进行全部更改或不作任何更改。301其中,BeginTrans表示开始新事物;CommitTrans表示保存任何更改并结束当前事物,它也可能启动新事物;RollbackTrans表示取消当前事物中所作的任何更改并结束事物,它也可能启动新事物。语法格式如下:level=Connection.BeginTrans()Connection.BeginTransConnection.CommitTransConnection.ROllbackTrans注意:并非所有提供者都支持事务。需验证提供者定义的属性“

252、TransactionDDL”是否出现在Connection对象的Properties集合中,如果存在则表示提供者支持事务。如果提供者不支持事务,调用其中的某个方法将返回错误。302一旦调用了BeginTrans方法,在调用CommitTrans或RollbackTrans结束事务之前,提供者将不再立即提交所作的任何更改。对于支持嵌套事务的提供者来说,调用已打开事务中的BeginTrans方法将开始新的嵌套事务。返回值level将指示嵌套层次:返回值为“1”,表示已打开顶层事务(即事务不被另一个事务所嵌套),返回值为“2”,表示已打开第二层事务(嵌套在顶层事务中的事务),依此类推。调用Comm

253、itTrans或RollbackTrans只影响最新打开的事务;在处理任何更高层事务之前必须关闭当前事务。调用CommitTrans方法后,将保存连接上打开的事务中所做的更改并结束事务。调用RollbackTrans方法还原打开事务中所做的更改并结束事务。在未打开事务时调用其中任何一种方法都将引发错误。3032 2ConnectionConnection对象的属性对象的属性(1)ConnectionTimeout属性与CommandTimeout属性ConnectionTimeout属性是设置Connection对象的Open方法与数据库连接时的最长等待时间,默认值为15s。如果设为0,则系统

254、会一直等到连接成功为止。CommandTimeout属性是设置Connection对象的Execute方法运行时等待的最长时间,默认值为30s。如果设为0,则系统会一直等到运行结束为止。语法格式如下:Connection.ConnectionTimeout=secondsConnection.CommandTimeout=seconds304(2)ConnectionString属性ConnectionString属性是用来设置Connection对象的数据库连接信息:Provider参数,DataSource参数、UserID参数、Password参数及FileName参数等。其中Provi

255、der参数表示与数据库连接默认的Provider名称;DataSource参数表示ODBC中数据源的名称(DSN);UserID参数和Password参数表示连接数据库的用户账号及其密码;FileName参数表示指定文件名称。(3)Provider属性用来取得或设置Connection对象的提供者(内定数据库管理程序的名称),默认值为MSDASQL(MicrosoftOLEDBProviderforODBC),它负责管理所有以ODBC连接的数据库。语法格式如下:Connection.Provider=ProviderName305(4)Mode属性:设置修改数据库的权限,取值如下(见表6-3)

256、。语法格式如下:Connectlon.Mode=ModeValue306取值说明AdModeUnknown默认值。表明权限尚未设置或无法确定AdModeRead表明权限为只读AdModeWrite表明权限为只写AdModeReadWrite表明权限为读写AdModeShareDenyRead防止其他用户使用读权限打开连接AdModeShareDenyWrite防止其他用户使用写权限打开连接AdModeShareExclusive防止其他用户打开连接AdModeShareDenyNone防止其他用户使用任何权限打开连接307表6-3 Mode连接方式的取值及说明(5)其他属性DefaultDat

257、abase:用来设置Connection对象默认数据库名称。Attributes:用来设置Connection对象运行事务的控制方法,如adXactCommitRetaining与adXactAbortRetaining等值。CursorLocation:用来设置指针处理的位置,如adUseClient、adUserServer、adUseclientBatch等值。IsoLationLevel:用来设置Connection对象运行事务的时机。State:用来取得Connection对象的状态,包括adStateClosed和adStateOpen两个值。Version:可以取得ADO版本信息

258、。语法格式如下:Connection.DefaultDatabase=DataBaseameConnection.Attributes=AttributesValueConnection.CursorLocation=CursorLocationValueConnection.IsolationLevel=IsolationLevelValueConnection.State=StateValueString=Connection.Version3086.2.3Recordset6.2.3Recordset记录集对象记录集对象Recordset对象表示的是来自基本表或命令执行结果的记录全集,任

259、何时候,Recordset对象所指的当前记录均为集合内的单个记录。也就是说,该对象负责浏览和操作从数据库中取出的数据,该对象就像一个二维数组,数组的每一列表示数据库中的一个数据列,而同时每个数据列包含多个字段,每个数据字段就表示一个Field对象。创建记录集的方法主要有两种:第一种,先建立连接对象,再创建记录集对象。第二种,在非显式建立连接对象的情况下,用Server对象的CreatObject方法建立并打开记录集对象。3091 1RecordsetRecordset对象方法对象方法(1)Open方法使用Recordset对象的Open方法可打开代表基本表、查询结果或者以前保存的Records

260、et中记录的游标(指向数据库数据的位置,即指针),也就是说可以与数据库建立连接。语法格式如下:Recordset.Open数据名称或SQL指令,Connection对象,CursorType类型,锁定类型,选项参数说明:其中CursorType用来确定服务器打开Recordset时应该使用的游标类型,如表6-4所示。310参数取值常数说明AdLockReadOnly0表示(默认值)只读不能改变数据AdLockPessimistic1表示保守式锁定(逐个)提供者完成确保成功编辑记录所需的工作,通常通过在编辑时立即锁定数据源的记录AdLockOptimistic2表示开放式锁定(逐个)数据库使用开

261、放式锁定,只在调用Update方法时才锁定记录AdLockBatchOptimistic3表示开放式批更新用于批更新模式(与立即更新模式相对)311表6-4 Cursortype属性取值说明参数Options用于指示服务器如何计算Source参数。取值情况如表6-5所示。参数取值常数说明AdCmdUnknown-1指示Source参数中的命令类型为未知AdCmdText1指示服务器应该将Source作为命令的文本定义来计算AdCmdTable2指示ADO生成SQL查询以便从在Source中命名的表中返回所有行AdCmdStoreProc3指示服务器应该将Source视为存储过程312表6-5

262、Options取值意义(2)Close方法语法格式如下:Recordset.Close作用:Recordset对象的Close方法用来关闭所指定的Recordset对象。(3)MoveFirst、MoveLast、MoveNext、MovePrevious、Move方法语法格式如下:Recordset.MoveFirstRecordset.MoveLastRecordset.MoveNextRecordsst.MovePreviousRecordset.MoveNumRecOrds,Start含义:这些方法都是用来移动指针的,通过使用这些方法可以很方便的移动到所要的位置。313其中MoveFi

263、rst是移动指针到Recordset对象的第一条数据;MoveLast是移到最后一条数据;MoveNext是移动指针到下一条数据;MovePrevious是移到上一条数据;More是可以将指针移到指定位置。注:后3种方法,都要求Recordset对象的Open方法的CursorType参数不能为adOpenRorwardOnly,否则将移动失败。参数NumRecords表示指针移动的数目:为正数表示往下移动,为负数表示往上移动;314参数参数start表示指针移动的基准点,取值如表示指针移动的基准点,取值如表表6-6所示。所示。 参数取值说明AdBookmarkCurrent或0默认值。表示从

264、当前记录开始AdBookmarkFirst或1表示从首记录开始AdBookmarkLast或2表示从尾记录开始315表6-6 参数start的取值说明(4)Update、CancelUpdate、CancelBatch、UpdateBatch方法语法格式如下:Recordset.UpdateRecordset.CancelUpdateRecordset.CancelBatchRecordset.UpdateBatchAffectrecords含义:这些方法是用来更新或取消更新的。其中Update方法是允许更新数据库的数据动作;CancelUpdate方法是允许放弃数据更新的动作;UpdateB

265、atch方法是进行批次模式的更新数据动作;CancelBatch方法是允许取消批次模式的更新数据动作。参数Affectrecords表示进行批次模式数据更新的条件,取值如表6-7所示。316参数取值说明AdAffectCurrent或1表示只写入当前记录的挂起更改AdAffectGroup或2表示写入满足当前Filter属性设置的记录所发生的挂起更改。必须将Filter属性设置为某个有效的预定义常量才能使用该选项AdAffectAll或3表示写入Recordset对象中所有记录的挂起更改,包括由于当前Filter属性设置而隐藏的任何记录,此为默认值317注:CancelUpdate和Cance

266、lBatch方法在使用时,要分别放在Update和UpdateBatch之后。(5)AddNew、Delete方法语法格式如下:Recordset.AddNewRecordset.Delete含义:AddNew方法允许增加数据到数据库中,Delete方法允许从数据库中删除指定的数据。(6)NextRecordset方法语法格式如下:Setrecordset2=recordset1.NextRecordsetRecordsAffected该方法允许清除当前的Recordset对象并通过提前执行命令序列返回下一个记录集,通常应用于MultipleRecordset。说明:参数recordset2返

267、回Recordset对象,在语法模型中,recordsetl和recordset2可以使用相同的Recordset对象,或者可以使用不同的对象。参数RecordsAffected为长整型变量,是提供者向数据库服务器要求其返回每次操作所得到的记录数目。318(7)Requery方法语法格式如下:recordset.RequeryOptions通过重新发出原始命令并再次检索数据,可使用Requery方法刷新来自数据源的Recordset对象的全部内容,调用该方法等于相继调用Close和Open方法。Options用于指示影响该操作选项的位屏蔽参数。(8)Clone方法语法格式如下:setNewRe

268、cordset=Recordset.clonelockType该方法可以创建出多个Recordset对象副本,这些完全相同的Recordset对象是共享数据服务器的内部快照数据,也就是说内容相同。这对于希望在给定的记录组中保留多个当前记录十分有用。参数LockType用于指定原始Recordset的锁定类型或只读Recordset。取值如表6-8所示。319参数取值说明AdLockUnspecified默认值。表示使用与原始类型相同的锁定类型创建副本AdLockReadOnly表示副本创建为只读320 注:Close方法的使用与初始定义相同,但定义创建和打开新Recordset对象要有效得多,

269、新创建副本的当前记录将设置为首记录。一旦在原始Recordset上执行了Requery,副本将不再与原始Recordset同步。如果要关闭的话,则必须分别关闭。(9)GetRows方法语法格式如下:Array=recordset.GetRows(Rows,Start,Fields)该方法可以取得多条记录。使用GetRows方法可将记录从Recordset复制到二维数组中,第一个下标标识字段,第二个则标识记录号。当GetRows方法返回数据时,数组变量将自动调整到正确大小。说明:参数Rows用于指定要检索的记录数。默认值为-1,即recordset对象内的所有数据。参数start表示计算得到的在

270、GetRows操作开始处的记录的书签,Start参数的取值如表6-9所示。321Start取值说明AdBookmarkCurrent表示从当前记录开始AdBookmarkFirst表示从首记录开始AdBookmarkLast表示从尾记录开始322 参数Fields代表单个子段名,顺序位置、字段名数组或顺序位置号,ADO仅返回这些字段中的数据。 注:调用GetRows后,下一个未读取的记录成为当前记录,或者如果没有更多的记录,则EOF属性设置为True。(10)其他方法其他方法,如Resync用来设置与数据库服务器同步的更新模式,supports方法可以用来判别对象支持的功能。语法格式如下:re

271、cordset.ResyncAffectRecordsBooleanvalue=Recordset.Supports(CursorOptions)Resync方法的参数AffectRecords表示进行数据更新的条件;Supports方法的参数CursorOptions表示可支持的功能。3232Recordset对象属性Recordset.PageSize=LongIntRecordset.BookmarkRecordset.Filter=FilterVariantRecordset.MaxRecords=LongIntRecordset.CacheSize=LongInt(1)ActiveC

272、onnection属性语法格式如下:Recordset.ActiveConnectiOn=ActiveConnectionValue与Command对象的ActiveConnection属性相同。(2)Source属性语法格式如下:Recordset.Source=SourceSource属性可以是个Command对象名称,一段SQL语句,一个指定的数据表等。324(3)CursorLocation、Bookmark属性语法格式如下:Recordset.CursorLocation=CursorLocationTypeCursorLocation属性是用来设置指针处理的位置,与Connecti

273、on对象的CursorLocation属性相同。Bookmark属性可以记录当前数据指针位置,要保存当前记录的书签,请将Bookmark属性的值赋给一个变量。(4)CursorType属性语法格式如下:Recordset.CursorType=CursorTypeValueCursorType属性可指在Recordset对象中使用的游标类型,其取值情况如表6-10所示。325取值常数说明AdOpenForwardonly0表示仅向前游标,默认值。除了只能在记录中向前滚动外,与静态游标相同。当只需要在记录集中单向移动时,使用它可提高性能AdOpenKeyset1表示键集游标。尽管从记录集不能访问

274、其他用户删除的记录,但除无法查看其他用户添加的记录外,键集游标与动态游标相似,仍然可以看见其他用户更改的数据AdOpenDynamil2表示动态游标。可看到其他人新增的数据记录为AdOpenStatic3表示静态游标。可以用来查找数据或生成报告的记录集合的静态副本。另外,对其他用户所作的添加、更改或删除不可见326(5)LockType属性语法格式如下:Recordset.LockType=LockTypeValueLockType属性可指定打开Recordset对象时服务器应该使用的锁定类型,读取该属性返回在打开的Recordset对象上正在使用的锁定类型。其取值情况如表6-11所示。327

275、取值常数说明AdLockReadOnly0默认值。表示只读,无法更改数据AdLockPessimistic1保守式记录锁定(逐条)。服务器执行必要的操作确保成功编辑记录,通常采用编辑时立即锁定数据源记录的方式AdLockOptimistic2开放式记录锁定(逐条)。服务器使用开放式锁定,只在调用Update方法时锁定记录AdLockBatchOptimistic3表示开放式批更新。用于与立即更新模式相反的批更新模式328表6-11 LockType属性说明(6)RecordCount、MaxRecords、CacheSize属性语法格式如下:Longlnt=Recordset.RecordCo

276、untLongInt=Recordset.MaxRecordsLonglnt=Recordset.CacheSizeRecordCount属性可确定Recordset对象中记录的数目。当ADO无法确定记录数时,或者提供者或游标类型不支持RecordCount,则该属性返回-1。MaxRecords属性可以用来设置每次从数据库取得数据的最大数目,如果为0,表示返回所有的数据。CacheSize属性是用来设定每次客户端从服务器取得数据量的大小,设定值必须大于0,默认值为1。329(7)BOF、EOF属性语法格式如下:Boolean=Recordset.BOFBoolean=Recordset.EO

277、FBOF属性可指示当前记录位置是否位于Recordset对象的第一个记录之前。EOF可指示记录位置是否位于Recordset对象的最后一个记录之后。注:如果当前记录位于第一个记录之前,BOF属性将返回True(-1),如果当前记录为第一个记录或位于其后则返回False(0)。如果当前记录位于Recordset对象的最后一个记录之后,EOF属性将返回True,而当前记录为Recordset对象的最后一个记录或位于其前,则返回False。如果BOF或EOF属性为True,则没有当前记录。330(8)PageSize、PageCount、AbsolutePage、AbsolutePosition属性

278、语法格式如下:LongInt=Recordset.PageSize设置Recordset对象内每一页的记录条数;Longlnt=Recordset.PageCount设置Recordset对象的页数;Longlnt=Recordset.AbsolutePage用来取得当前数据游标在Recordset对象中的绝对页数;LongInt=Recordset.AbsoluLePosition取得当前数据游标在Recordset对象记录的位置。对于AbsolutePage属性和AbsolutePosition属性,返回值一般为介于1到RecordCount属性值之间的整数,AbsolutePage属性和

279、AbsolutePosition属性的特殊取值如表6-12所示。331取值常数说明AdPosUnknown-1为空,当前位置未知,或者提供者不支持AbsolutePage属性AdPosBOF-2当前记录指针位于BOF,即BOF属性为TrueAdPosEOF-3当前记录指针位于EOF,即EOF属性为True332表6-12 特殊取值说明(9)EditMode属性语法格式如下:Int=Recordset.EditModeEditMode属性用于指示当前记录的编辑状态,取值情况如表6-13所示。属性常数说明AdEditNone0指示当前没有编辑操作AdEditProgress1AdEditAdd或2

280、AdEditDelete3指示AddNew方法已被调用,且复制缓冲区中的当前记录是尚未保存到数据库的新记录时,指示当前记录已被删除333(10)Filter属性语法格式如下:FilterVariant=Recordset.FilterFilter属性用来控制Recordset对象的数据显示方式,即指定筛选条件。Filter属性的取值如表6-14所示。Filter属性取值常数说明AdFilterNone0删除当前筛选条件并恢复查看的所有记录AdFilterPendingRecords1只许查看已更改且尚未发送到服务器的记录。只能应用于批更新模式AdFilterAffectedRecords2只允

281、许查看上一次Delete、Resync、UpdateBatch或CancelBatch调用所影响的结果记录的调用结果AdFilterFetchedRecords3允许查看当前缓冲区中的记录,即上一次从数据库中检索AdFilterConflictingRecords4允许查看在上一次批更新中失败的记录334(11)State、Status属性语法格式如下:Recordset.State=StateValueRecordset.Status=StatusValueState属性是用来取得Recordset对象的状态。Status属性用来表示当前记录的处理状态。使用Status属性查看在批更新中被修

282、改的记录有哪些更改被挂起。也可使用Status属性查看大量操作时失败记录的状态。注:Connection对象的State属性是取得Connection对象的状态。3353Recordset对象数据集合Recordset对象的数据集合包括Field数据集合、Properties数据集合。由于Fields数据集合中包括Recordset对象的所有Field数据字段对象;Properties数据集合包含Recordset对象的所有属性。因此,数据集合将在后面介绍。3366.2.4Command6.2.4Command命令对象命令对象1Command对象属性(1)ConnectiveConnectio

283、n属性语法格式如下:Command.ActiveConnection=ActiveConnectionValueCommand对象可以通过ActiveConnection属性来连接Connection对象。ActiveConnection属性可以是一个Connection对象名称或是一个包含“数据库连接信息(ConnectionString)”的字符串参数。(2)CommandText属性语法格式如下:Command.CommandText=CommandTextValue该属性是表示程序所要对数据库下达的命令。通常,该属性为SQL语句,但也可以是提供者识别的任何其他类型的命令语句(如存储的过

284、程调用)。SQL语句必须是提供者查询处理程序支持的特定语法或版本。337(3)CommandType属性语法格式如下:Command.CommandType=ConmandTypeValue或CommandTypeValue=Command.CommandType该属性可指示Command对象的类型,可以设置或读写Command对象类型。CommandType属性取值情况如表6-15所示。338属性值常数说明AdCmdText1指定数据查询信息的类型为SQL语句AdCmdTable2指定数据查询信息的类型为数据表名称AdCmdTableDirect将CommandText作为其列全部返回的表格

285、的名称进行计算AdCmdStoreProc4指定数据查询信息的类型为子程序名(即存储过程)AdCmdUnknown8默认值。CommandText属性中的命令类型未知AdCmdFile将CommandText作为持久Recordset文件名进行计算AdExecuteNoRecords指示CommandText为不返回行的命令或存储过程(例如插入数据的命令)。如果检索任意行,则将丢弃这些行且并不返回。它总是与adCmdText或adStoreProc进行组合339表6-15 CommandType属性取值说明(4)CommandTimeout属性语法格式如下:Command.CommandTim

286、eOut=Seconds设置Command对象的Execute方法运行时的最长等待时间,单位是s,默认值为30s。与Connectoin对象的ConnectionTimeout属性意义相同。(5)State属性语法格式如下:Command.State=StateValue取得Command对象的状态。包括asStateClose、adStateOpen。与Connection对象的State属性意义相同。(6)Prepared属性语法格式如下:Command.Prepared=Boolean或Boolean=Command.Prepared指示执行前是否保存命令的编译版本。使用Prepared

287、属性,可使服务器在首次执行Command对象前保存CommandText属性中指定的已准备好(已编译)的查询版本。该属性会降低命令首次执行的速度,但服务器对命令进行编译后,在后继的命令执行中服务器可使用已编译好的命令版本,这样可以提高执行性能。3402Command对象方法(1)CreateParameter方法语法格式如下:Setparameter=command.CreateParameter(Name,Type,Direction,Size,Value)创建新的Parameter对象。使用CreateParameter方法指定名称、类型、方向、大小和值,创建新的Parameter对象,在

288、参数中传送的所有值都将写入相应的Parameter属性。参数说明如下。Name:代表Parameter对象名称。Type:是长整型值,用于指定Parameter对象数据类型。Size:是长整型值,用于指定参数值最大长度(以字符或字节数为单位)。Value:是变体型,用于指定Parameter对象的值。Direction:是长整型值,用于指示Parameter所标明的是输入参数、输出参数还是既是输出又是输入的参数。Dircetion参数取值为:AdParamUnknown或0时,指示参数方向未知;AdParamInput或1时,指示输入参数,此为默认值;AdParamOutput或2时,指示输出

289、参数;AdParamInputOutput或3时,指示输入输出参数;AdParamReturnValue或4时,指示返回值。341(2)Execute方法语法格式如下:对于按行返回的command。Setrecordset=Command.Execute(RecordAffected,Parameters,Options)对于非按行返回的Command。Command.ExecuteRecordAffected,Parameters,OptionsExecute参数说明如表6-16所示。342参数说明RecordsAffected为长整型变量,记录数据库提供者要求其返回操作所影响的记录数目。该

290、参数仅应用于操作查询或存储过程RecordsAffected不返回由查询或存储过程所要返回的记录数目Parameters为变体型数组,是用SQL语句传送的参数值。(用该参数传送输出参数将不返回正确值)Options为长整型值,指示提供者如何计算Command对象的CommandText属性,类型与Connection对象的Executc方法的Options的类型相似3436.2.5Field6.2.5Field对象和对象和FieldsFields数据集合数据集合1Fields数据集合Fields数据集合与其他数据集合一样,有属于自己的方法与属性,有时候也称为Field数据集合对象。Fields

291、数据集合提供的方法和属性包括Count属性、Refresh方法、Item方法。Count属性用来取得Fields数据集合中所包含的Field对象的数目;Refresh方法就是记录的刷新,可以重新取得Fields数据集合中所包含的Field对象;Item方法就是可以利用Field对象的索引值(Index)得到某一个Field对象,这个索引值通常是介于0到Count属性值-1之间。语法格式如下:SetFields=Recordset.FieldLongInt=Fields.countFields.RefreshSetField=Fields.Item(Index)或SetField=Fields(

292、Index)3442Field对象属性(1)Name属性:表示对象属性的名称。语法格式如下:string=Field.Name(2)Value属性:表示对象属性的值。语法格式如下:Variant=Field.Value(3)Type属性:表示对象属性的数据类型。语法格式如下:DataType=Field.Type(4)Attribute属性:表示对象的特性。语法格式如下:LongInt=Filed.Attri345(5)NumericScale属性:表示数据字段允许存储的数字个数。语法格式如下:Byte=Field.NumericScale(6)Precision、ActualSize和Def

293、inedSize属性:表示数据字段在数据库中所定义的长度。语法格式如下:Byte=Field.PrecisionLong=Field.ActualSize3Field对象的方法Field对象的方法包括AppendChunk、GetChunk等。AppendChunk和GetChunk方法是用来专门处理text、image等数据类型的,其中AppendChunk方法是负责将数据写到数据库中,GetChunk方法是将数据从数据库中取出。语法格式如下:Field.AppendChunkdataVariant=field.GetChunk(size)3466.2.6Properties6.2.6Pro

294、perties数据集合和数据集合和PropertyProperty对象对象Property对象代表ADO对象的动态特征,动态属性由基本的数据提供者定义,并出现在相应ADO对象(如Connection对象、Command对象、Recordset对象、Field对象)的Properties集合中。语法格式如下:Setproperties=ADO对象.Properties1Properties数据集合Properties集合是包含特定对象实例的所有Property对象,有时候也称为Properties数据集合对象。包括Count属性、Refresh方法、Item方法等。Count属性用来取得Prop

295、erties集合中包含的Property对象个数;Refresh方法用来重新取得Properties数据集合中所有的Property对象个数;Item方法用来取得Properties集合中的Property对象。语法格式如下:LongInt=Properties.countProperties.RefreshSetProperty=Properties.Item(Index)或SetProperty=Properties(Index)3472Property对象(1)Name属性:表示对象属性的名称。语法格式如下:String=Property.Name(2)Value属性:表示对象的属性值。

296、语法格式如下:Variant=Property.Value(3)Type属性:表示对象属性的数据类型。语法格式如下:DataType=Property.type注:其中,对Parameter对象,Type属性是读写;对其他ADO对象,Type属性是只读。348348(4)Attributes属性语法格式如下:LongInt=Property.AttributesAttributes属性表示对象的特性,其取值情况如表6-17所示。349Attributes取值说明AdArray表示与其他类型一起加入逻辑OR以指示该数据是哪种类型的安全数组(DBTYPEARRAY)AdBigInt表示8字节带符号

297、的整数(DBTYPE_I8)AdBinary表示二进制值(OBTYPE_BYTES)AdBoolean表示布尔型值(DBTYPE_BOOL)AdbyRef表示与其他类型一起加入逻辑OR以指示该数据是其他类型数据的指针(DBTYPE_BYREF)AdBSTR表示以空结尾的字符串(Unicode)(DBTYPE_BSTR)AdChar表示字符串值(DBTYPE_STR)AdCurrency表示货币值(DBTYPE_CY)。货币数字的小数点位置固定,小数点右侧有四位数字。该值保存为8字节范围为10000的带符号整型值AdDate表示日期值(DBTYPE_DATE)。日期按双精度型数值来保存,数字全部

298、表示从1899年12月30开始的日期数。小数部分是一天当中的片段时间AdDBDate表示日期值(yyyymmdd)(DBTYPE_DBDATE)AdDBTime表示时间值(hhmmss)(DBTYPE_DBTIME)AdDBTimeStamp表示时间戳(yyyymmddhhmmss加10亿分之一的小数)(DBTYPE_DBTIMESTAM)350表6-17 Attributes属性取值说明6.2.7Errors6.2.7Errors数据集合和数据集合和ErrorError对象对象1Error数据集合Errors数据集合,可以取得系统运行时发生的错误或警告信息。任何涉及ADO对象的操作都会生成一

299、个或多个提供者错误。每个错误出现时,一个或多个Error对象将被放到Connection对象的Errors集合中。当另一个ADO对象操作产生错误时,Errors集合将被清空,并在其中放入新的Error对象集。如果是通过直接建立Connection对象来使用,可以直接通过Connection对象的Errors数据集合取得Error对象。语法格式如下:setErr=Connection.Errors如果是通过建立Recordset对象或Command对象,再通过ActiveConnection属性来使用Connection对象的,则必须通过Recordset对象或Command对象的ActiveC

300、onnection属性来取得Error对象。351语法格式如下:SetErr=Recordset.ActiveConnection.ErrorsSetErr=Command.ActiveConnection.ErrorsErrors数据集合,也称Error数据集合对象,包含在响应涉及提供者的单个失败时产生的所有Error对象。(1)Count属性:取得Errors数据集合中所包含的Error对象个数语法格式如下:LongInt=Errors.Count(2)Clear方法:用来清除Errors数据集合中的Error对象语法格式如下:Errors.clear(3)Item方法:可以用来取得Err

301、ors数据集合中的Error对象语法格式如下:SetErr=Errors.Item(Index)或SetErr=Errors(Index)3522Error对象Error对象负责记录存储一个系统运行时发生的错误和警告。(1)Description属性用来记录错误或警告发生的原因或描述语法格式如下:String=Error.Description(2)Number属性表示所发生的错误或警告代码,在ADO常数声明文件adovbs.inc中有常用的常数,可以用来参考语法格式如下:LongInt=Error.Number(3)Source属性用来记录造成系统发生错误或警告的来源语法格式如下:Strin

302、g=Error.Source(4)NativeError属性语法格式如下:LongInt=Error.NativeError353(5)SQLState属性表示最后一次的SQL命令运行状态语法格式如下:String=Error.SQLState(6)HelpContext属性表示错误或警告的解决方法说明和主题语法格式如下:String=Error.HelpContext(7)HelpFile属性表示错误或警告的解决方法的说明文件和主题语法格式如下:String=Error.HelpFile354习题习题一、思考题(1)ADO包括哪些主要对象,各对象的主要功能是什么?(2)简述使用ASP操作数据库并返回查询结果的操作过程。二、操作题仿照本章数据库记录浏览的设计实例,实现数据库记录的模糊搜索。355

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号