欢迎,请 登录 注册


《asp动态网页制作技术》教学教案经典教程


来源:CEAC 2011/12/1
http://www.kaoaa.com

第1章  ASP制作初步


 
1.了解静态HTML网页技术
2.知道动态网页的特点
3.熟悉动态网页技术
4.掌握IIS的安装过程及步骤
5.熟练掌握IIS的配置
6.了解ASP开发工具
 
1.熟悉动态网页技术
2.熟练掌握IIS的配置
 
 
 
 
 
 
 
 
 
 
 
 
 

1-1动态网页开发技术

 

1-1-1静态HTML网页技术

所谓“静态”是指网页内容固定不变,当用户浏览器通过互联网的HTTP(Hyper Text Transport Protocol超文本传输协议)向WEB服务器发出请求时,服务器仅仅是将原先已设计好的HTML文档直接传送给用户浏览器。
静态网页的页面内容使用的是标准的HTML代码,它可以包含文本、静态图片、动画图片、声音和影视剪辑等资料,页面中有可以“动”的成分,但若要更新网页的内容,就必须通过修改HTML文档来实现。采用HTML语言编写。“静态”网站的致命弱点就是难以维护。

1-1-2动态HTML网页技术

动态页面应具有以下特点:
①具有交互性,即网页会根据用户的要求和选择而动态改变和做出不同的响应。
②能够自动更新,即无须手动更新HTML文档,能够自动生成新的页面。
③因时因人而变,即当不同的时间、不同的人访问同一网址时会产生不同的页面。

1.DHTML技术

DHTML即Dynamic HTML,称为动态HTML技术,是在客户端浏览器执行的脚本。当网页从WEB服务器下载后无须再经过服务器的处理,而在浏览器中直接动态地更新网页的内容、排版样式、更新动画。DHTML是通过多种技术的综合发展而实现的,这些技术包括JavaScript、VBScript、DOM(Document Object Model)文件目标模块、CSS(Cascading Style Sheets)样式表、数据绑定等。

2.数据库访问技术

(1)CGI(Common Gateway Interface)通用网关接口
当用户在浏览器端提出HTTP请求后,WEB服务器端将执行表单所指定的CGI可执行程序,CGI程序分析表单中所输入的资料,存取WEB数据库,将查询执行的结果以HTML格式返回给浏览器。
(2)服务器API(Application Programming Interface)应用程序接口
服务器API以DLL(Dynamic Link Libraries)动态链接库的形式,使用驻留在Web服务器上的本机代码,实现CGI的全部功能。IDC是ISAPI的一个具体实现,是利用ODBC(Open Database Connectivity)获得数据库访问的一个动态链接库(httpodbc.dll)。
只需掌握HTML和SQL的基本知识并编写为数不多的代码,就能基于IDC开发出具有交互能力的数据库应用程序,让浏览者在浏览器界面中得以查询、输入、更新、和删除WEB服务器上的数据资料。与ODBC类似,JDBC(Java Database Connectivity)是Java语言的标准SQL数据库访问接口,是一种可以执行SQL语句Java API,它是由Java语言编写的类和界面组成。
(3)ADO数据库访问技术
ADO(ActiveX Data Objects)第一次出现是作为Microsoft公司ASP(Active Server Pages)技术的一部分,ASP利用ADO建立提供具有访问数据库能力的Web页面。
ODBC的最大缺陷是只能访问基于SQL(Structured Query Language)结构化查询语言的数据库,而不能访问保存在文档、电子表格、工程文件、Lotus Domino/Notes或Microsoft Exchange中的大量非SQL数据。OLE DB是面向底层的系统级编程接口,而ADO则封装了OLE DB中最常用的部分特征,提供了一种面向对象的、与语言无关的应用程序编程接口。

3.动态网页开发技术

(1)Perl
Perl(Practical Extraction and Reporting Language)实用摘要和报告语言是取代CGI编程而产生的一种用脚本语言来创建网页的技术。它是一种直译式语言,只要通过Prel直译器(interpreter),程序代码不需要经过编译(compile)、连接(link)的过程就可以执行。
(2)PHP
PHP是建立在UNIX或Linux的系统上一种新式语言。
(3)ASP
ASP(Active Server Pages)是微软公司推出的一种可以动态产生网页内容的技术,它可以在HTML代码中内嵌一些描述语言(Scripting Language)片段,一般常用的描述语言是VBScript、Jscript和ActiveX组件等,只要WEB服务器安装了编译程序引擎,服务器便可以逐行解释执行描述语言,产生标准的HTML代码返回客户端浏览器。
ASP必须与微软IIS(Internet Information Server)、ActiveX紧密整合在一起,且执行环境限于Microsoft Windows,缺乏跨平台特性;另外,每当客户端请求ASP网页时,服务器端必须重新编译一次,执行效率上略显不足。
(4)JSP
JSP(Java Server Pages)是具有跨平台特点的动态网页开发技术,与ASP一样,可以直接在HTML中内嵌JSP程序代码,使程序开发容易、方便。
(5)ASP.NET
ASP.NET是建立在微软.NET开发环境之上的一种将各种WEB元素结合在一起的服务器技术,是一个统一的WEB开发平台,它提供了生成一个完整的WEB应用程序所必需的各种服务。ASP.NET是一个已编译的开发环境,可以使用任何与.NET兼容的语言,包括Visual Basic.NET、C#和JScript.NET等,来创建WEB应用程序。
 
 
 

1-2IIS运行平台的建立

 
ASP 内含于Microsoft Internet Information Server之中,因此运行ASP需要服务器端安装Microsoft IIS。IIS是允许在公共的Intranet和Internet上发布信息的WEB服务器,它通过使用超文本传输协议HTTP传输信息。

1.IIS的安装

从开始菜单的控制面板中启动“添加/删除程序”,插入操作系统安装光盘,选择“添加/删除Windows组件”,默认选中“Internet信息服务(IIS)”,如图1-4所示,即可按照提示进行安装。

图1-4  安装IIS5.0的选择界面
安装成功后,通过桌面“我的电脑”右键快捷菜单选择“管理”,展开“服务和应用程序”,选择“Internet信息服务”即可进入IIS管理界面,如图1-5所示。

图1-5  IIS5.0的管理界面

2.IIS的配置

(1)配置站点主目录
在图1-5中,选择“默认Web站点”,右键菜单选择“属性”,可进入默认Web站点属性设置界面,选择“主目录”选项卡。在选项卡中可以设置Web站点的路径,指向站点所在的目录。系统默认站点为系统盘下的Inetpub\wwwroot目录,你可以通过“浏览”按钮将网站指向本地的任何路径,通常指向Web站点所在目录,这里使用C:\ASPWEB。
(2)配置默认打开文档
默认打开的文件通过Web站点属性窗口的“文档”选项卡来设置。可以通过添加、删除、先后顺序调整来设置默认打开的文档。ASP文件的扩展名为.asp,纯HTML文件的扩展名为.html或.htm。
(3)配置站点标识
选择Web站点选项卡,可以设置Web站点的标识。Web站点的“IP地址”指定站点绑定的IP,一旦绑定IP地址,则可以使用该IP地址在局域网中访问该站点。系统默认127.0.0.1作为本机IP,支持按照IP访问本机Web站点,即http://127.0.0.1/能够访问已经启动的本机Web站点。启动本机Web站点还可以使用默认本机计算机名称localhost,即使用http://localhost/来访问。Web站点的“TCP端口”指定服务类型,“80”为默认的Web服务端口号。
(4)创建虚拟目录
虚拟目录是采用别名的方式创建与子站点真实目录的对应关系。

 
范例1-1:以别名“order”建立指向c:/product目录下的站点,则可以使用http://localhost/ order/来访问虚拟目录。
 
 
 
 
 

操作步骤:在已有站点(默认Web站点)上通过右键菜单新建虚拟目录,接着通过提示向导完成操作。
在访问权限设定时,默认的访问权限为设置“读取”和“运行脚本”;若代码中有ISAPI或CGI需求,应选中“执行”;若允许用户在该目录中写入(如上传文件),则选中“写入”。开放“写入”权是危险的,因为用户可以上传可执行文件,并通过浏览器远程执行该文件,进入Web主机,导致严重的安全问题。

1-3ASP开发工具

ASP程序中可以包含纯文本、HTML标记以及脚本命令,创建ASP文件非常容易。如果要在HTML文件中添加脚本,只需将该文件的扩展名 .htm 或 .html 替换为 .asp,就可以在 .asp 文件中添加脚本命令了。
使用任何的文本编辑器都可以创建 .asp 文件,如Windows 的记事本即可进行ASP的编辑设计。使用那些带有 ASP 增强支持功能的网页编辑器将更能提高ASP开发效率,如 Microsoft Visual InterDev、FrontPage,Macromedia公司的Dreamweaver等。
 
 
 

第2章  HTML网页制作的基本知识


 
1.了解HTML的概念
2.识记HTML标记
3.掌握HTML文档的结构
4.运用常用的HTML标记
 
1.识记HTML标记
2.会运用常用的HTML标记
 
 
 
 
 
 
 
 
 
 
 

2-1常用的HTML标记及使用技巧

 
HTML(Hyper Text Marked Language),即超文本标记语言,是一种用来制作超文本文档的简单标记语言。HTML文档用于描述网页文档结构和网页间链接的信息,是普通的文本文档(ASCII),不含任何与平台和程序相关的信息,它们可以被任何文本编辑器读取,能独立于各种操作系统平台(如UNIX、Windows等)。
HTML语言使用描述性标记符——标签(Tag)来指明文档的不同内容。标签是区分文本各个组成部分的分界符,用来把HTML文档划分成不同的逻辑部分(或结构),如段落、标题和表格等。标签描述了文档的结构,它向浏览器提供文档的格式化信息,以传送文档的外观特征,使浏览器能够按标签描述的结构显示相关内容。
 

2-2基本标记

1.<html></html>标记对

<html>标记用于Html文档的最前边,用来标识Html文档的开始;</html>标记放在Html文档的最后边,用来标识Html文档的结束。<html></html>两个标记必须成对使用。

2.<head></head>标记对

<head>和</head>构成Html文档的开头部分,在此标志对之间可以使用描述文档相关信息的标志(对),如<title></title>、<script></script>、<meta>等,这些内容不会在浏览器的窗口内显示出来。<head></head>两个标记必须成对使用。

3.<body></body>标记对

<body></body>是html文档的主体部分,在此标记对之间可使用<p></p>、<h1></h1>、<br>、<hr>等大量的标记(对),它们所定义的文本、水平线、图像网页元素等将会在浏览器的窗口内显示出来。<body></body>两个标记必须成对使用。
<body>标志可以设置其属性,见表2-1所示。
表2-1  <body>标志的基本属性
属性 用途 示例
bgcolor 设置背景颜色 <body bgcolor="red"> 网页背景为红色
text 设置文本颜色 <body text="#00ff00"> 网页中文本为绿色
link 设置链接颜色 <body link="blue"> 包含链接文本为蓝色
vlink 设置已使用的链接的颜色 <body vlink="#ff0000"> 点击链接后为红色
alink 设置正在被击中的链接的颜色 <body alink="yellow"> 正被点击时为黄色
标记的属性可以组合使用,如<body bgcolor="red" text="#00ff00">。"#00ff00"是用六个十六进制数表示的RGB颜色(绿色)。同时还可以用html语言所规定的常量名来表示颜色,如Black、White等。

4.<title></title>标记对

<title></title>之间的内容定义了网页的标题,内容显示在网页的标题栏内。<title></title>标记对只能放在<head></head>标记对之间。

 
范例2-1编写一个背景颜色为红色,文字为蓝色的html文档, 如图2-1所示。
 
 
 
 


图2-1 HTML基本标记应用的显示界面
代码2-1 基本标记的应用
<html>
<head>
<title>本页标题</title>
</head>
<body bgcolor="red" text="blue">
<p>红色背景、蓝色文本</p>
</body>
</html>
 
 

2-3格式标记

1.标题<Hn></Hn>

一般文章都有标题、副标题、章和节等结构,HTML中也提供了相应的标题标签<Hn>,其中n为标题的等级。HTML共提供了六个等级的标题,n越小,标题字号就越大。

 
范例2-2编写一个六个等级标题的html文档, 如图2-2所示。

图2-2  各级标题的显示界面   
代码2-2 基本标记的应用
<HTML>
<HEAD>
<TITLE>标题字大小的变化</TITLE>
</HEAD>
<BODY>
<H1>这是标题字H1</H1>
<H2>这是标题字H2</H2>
<H3>这是标题字H3</H3>
<H4>这是标题字H4</H4>
<H5>这是标题字H5</H5>
<H6>这是标题字H6</H6>
</BODY>
</HTML>

2.段落<p></p>与换行<br>

(1)<p></p>
<p></p>标记对用来创建一个段落,在此标记对之间加入的文本将按照段落的格式显示。
语法:<p align="对齐方式">……</p>
其中align取值为Left(左对齐)、Center(居中)或Right(右对齐)。
(2)<br>
<br>是一个单标记(没有结束标记),用来创建一个软回车换行,强制在<br>的位置实现换行,但不分段落;换行后行间距小。

3.编号清单<OL>与项目清单<UL>


范例2-3编写一个项目编号或符号应用的html文档, 如图2-3所示。
 
<ol></ol>标记对用来创建一个标有项目编号的列表;<ul></ul>标记对用来创建一个带项目符号的列表;<li></li>标记对用来创建列表项,只能在<ol></ol>或<ul></ul>标记对之间使用。
 

图2-3  项目编号或符号的应用
代码2-3 项目编号或符号的使用
<HTML>
<HEAD>
  <TITLE>项目编号或符号的使用</TITLE>
</HEAD>
<BODY>
  <H2>编号清单之选择</H2>
  <OL TYPE=a START=5>
    <LI>想要选用大写的英文字母,可使用TYPE=A</LI>
    <LI>想要选用小写的英文字母,可使用TYPE=a</LI>
    <LI>想要选用大写的罗马数字,可使用TYPE=I</LI>
    <LI>想要选用小写的罗马数字,可使用TYPE=i</LI>
    <LI>START 是用来控制依顺序的字母</LI>
    <LI>例如在大写的英文字母中排列在第五个字母的是 "E"</LI>
    <LI>因此本清单开始于E的编号</LI>
  </OL>
  <H2>项目清单之选择</H2>
  <UL>
    <LI TYPE=square>想要选用实心方块,可使用TYPE=SQUARE</LI>
    <LI TYPE=circle>想要选用空心圆点,可使用TYPE=CIRCLE</LI>
    <LI TYPE=disc>想要选用圆点,可使用TYPE=DISC</LI>
  </UL>
</BODY>
</HTML>

4.字体<font></font>

文字的字体设置使用<font></font>标记对。
语法:<font size=字号 face=字体 color=颜色>……</font>
其中SIZE属性的有效值范围为1-7,其中缺省值为3;颜色值可用“#”作为前缀的六个十六进制数表示,每两位分别表示RGB的值;也可以使用颜色英文名称;属性值可以是本机上的任一字体类型,只有对方的电脑中装有相同的字体才可以在他的浏览器中出现你预先设计的风格。
 

 
范例2-4编写一个文字的字体、字号和颜色设置的html文档, 如图2-4所示。
 
 
 
 
 


图2-4  文字的字体、字号和颜色效果
代码2-4 字体与字号、颜色的控制
<HTML>
<HEAD>
  <TITLE>字体设置</TITLE>
</HEAD>
<BODY>
  <H3>字体与字号、颜色的控制</H3>
  <FONT face="宋体" SIZE=1>1宋体</FONT>
  <FONT face="楷体_GB2312" SIZE=2>2楷体小号</FONT>
  <FONT face="黑体" SIZE=3>3黑体</FONT>
  <FONT COLOR="#0000FF" SIZE=4>4蓝中号</FONT>
  <FONT COLOR="red" SIZE=5>5红色</FONT>
  <FONT COLOR="darkgreen" SIZE=6>6深绿色</FONT>
  <FONT COLOR="#FF00FF" face="仿宋_GB2312" SIZE=7>7大号</FONT><br>
  <FONT SIZE=3>若不设定,浏览器默认为3号字、宋体、黑色。</FONT>
</BODY>
</HTML>
 

2-4图像标志

1.<img></img>

<img>标记将其src属性赋值为图像文件的路径和文件名,通过路径将图像文件嵌入到HTML文档中。<img>标记还有alt、align、border、width和height属性。

2.水平线<hr>

<hr>标记是在Html文档中加入一条水平线,它具有size、color、width和noshade属性。

 
范例2-5编写一个插入图像与水平线的的html文档, 如图2-5所示。
 
 
 
 
 


图2-5  插入图像与水平线的效果
代码2-5 图像与水平线的应用
<HTML>
<HEAD>
  <TITLE>图像与水平线</TITLE>
</HEAD>
<BODY>
  <HR SIZE="5">
  <H2>插入图像与水平线</H2>
  <HR NOSHADE SIZE=1>
  <HR SIZE="12" WIDTH="150" ALIGN="left">
  <IMG SRC="../图片素材/logo.jpg">
  <HR SIZE="5" WIDTH="75%" ALIGN="left">
</BODY>
</HTML>

2-5链接标记

1.文字或图像链接<a href="链接网页地址"></a>

href的值可以是URL形式,即网址或相对路径。此外,<a href=""></a>还具有target属性,此属性用来指明链接文件浏览的位置。target的值等于“_blank”或“_self”。例如:<a href="http://www.sohu.com/" target="_blank">搜狐网站</a>

2.邮件发送<a href="mailto: mailAddress"></a>

href的值也可以是mailto:形式,即发送E-Mail形式。语法为<a href="mailto: EmailAddress">我的电子信箱</a>。

3.锚点链接<a href="文件名#锚点名"></a>

定义锚点标记格式:<a name="锚点名"></a> ,其功能是用来在Html文档中创建一个锚点记号。链接锚点标记格式:<a href="#锚点名"></a>,其功能是将链接指向定义的锚点,从而实现页面显示定位。<a name="文件名#锚点名"></a>可链接到其他文件中的锚点。
 

 
范例2-6编写一个链接定位的html文档, 如图2-6所示。
 
 
 
 
 


图2-6  链接设定显示界面
代码2-6 链接的应用
<HTML>
<HEAD>
  <TITLE>链接的应用</TITLE>
</HEAD>
<BODY>
  <A HREF="../图片素材/logo.jpg"><IMG SRC="../图片素材/logo.jpg" width=60 height=60 border=0></A>点击图片链接文件<br>
  <A HREF="http://www.sohu.com"><H2>点击文字链接网页</H2></A>
  <A HREF="mailto:abc@126.com"><H2>点击文字链接发送邮件</H2></A>
  <UL>
    <LI><A HREF="#aaa">锚点链接1</A></LI>
    <LI><A HREF="abc.htm#bbb">锚点链接2</A></LI>
  </UL>
  <br><br><br><br><br><br><br><br><br><br><br>
  <A name="aaa">锚点1</A>
</BODY>
</HTML>
 

2-6表格的基本结构

<table>...</table>定义表格;<caption>...</caption>定义表格的标题;<tr>...</tr>定义表行;<th>...</th>定义表头;<td>...</td>定义单元格。

 
范例2-7编写一个旅游日程的html文档, 如图2-7所示。
 
 
 
 
 


图2-7  表格基本结构显示界面
代码2-7 表格的基本结构
<HTML>
<HEAD>
  <TITLE>表格的应用</TITLE>
</HEAD>
<BODY>
  <table border=1 width=450>
  <caption align=top>旅游日程</caption>
    <tr><th>日期</th><td>9-11</td><td>11-13</td><td>13-14</td></tr>
  <tr><th>旅游地点</th><td>青岛</td><td>黄山</td><td>杭州</td></tr>
  </table>
</BODY>
</HTML>
 

2-7表单标记

1.表单标记<form></form>

<form></form>标记对用来创建一个表单,即定义表单的开始和结束位置,在标志对之间的一切都属于表单的内容。<form>标志具有name、action、method和target属性。action的值是处理程序的路径和文件名,如<form action="select.asp">,当用户提交表单时,服务器将执行select.asp程序。method属性用来定义处理程序从表单中获得信息的方式,可取值为GET和POST的其中一个。GET方式是处理程序从QueryString(URL字符串)中获取数据,数据量一般限制在1KB以下。POST方式则是当前的Html文档把数据传送给处理程序,传送的数据量要比使用GET方式的大的多。target属性用来指定目标窗口或目标框架。

2.<input type="">

<input type="">标志用来定义一个用户输入区,用户可在其中输入信息。常用的输入元件类型见表2-3所示。
表2-3  input标记的type属性
type属性取值 输入区域类型 输入区域示例
<input type="TEXT"
size="" maxlength="">
单行的文本输入区域,size与maxlength属性用来定义此种输入区域显示的尺寸大小与输入的最大字符数  
<input type="SUBMIT"> 将表单内容提交给服务器的按钮  
<input type="RESET"> 将表单内容全部清除,重新填写的按钮  
<input type="CHECKBOX" checked> 一个复选框,checked属性用来设置该复选框缺省时是否被选中  
<input type="HIDDEN"> 隐藏区域,用户不能在其中输入,用来预设某些要传送的信息
<input type="PASSWARD"> 输入密码的区域,当用户输入密码时,区域内将会显示"*"号  
<input type="RADIO"> 单选按钮类型,checked属性用来设置该单选框缺省时是否被选中  

3.<select></select><option>

<select></select>标记对用来创建一个下拉列表框或可以多选的列表框。<select>具有multiple、name和size属性。multiple属性不用赋值,直接加入即可,此属性使下拉列表框变成多选列表框;name是此列表框的名字;size属性用来设置列表的高度,缺省时值为1,若没有设置(加入)multiple属性,显示的将是一个弹出式的列表框。
<option>标志用来指定列表框中的一个选项,它放在<select></select>标志对之间。此标志具有selected和value属性,selected用来指定默认的选项,value属性用来给该<option>选项赋值,这个值能被传送到服务器,服务器通过调用<select>标记的名字和选中的<option>的value属性来获得选择结果。使用方法见表2-4所示。
表2-4  <select><option>标记的使用方法
Html代码 浏览器显示的结果
<select name="gx1" size="1">
<option value="zhxy" selected>张学友
<option value="gfch">郭富城
</select>
 
<select name="gx2" multiple size="4">
<option value="zhmy">张曼玉
<option value="wf" selected>王菲
<option value="tzh">田震
<option value="ny">那英
</select>
 

4.<textarea></textarea>

<textarea></textarea>用来创建一个可以输入多行的文本框,此标志对用于<form></form>标志对之间。<textarea>具有name、cols和rows属性。cols和rows属性分别用来设置文本框的列数和行数,这里列与行是以字符数为单位的。使用方法见表2-6。
表2-6  <textarea>标记的使用方法
Html代码 浏览器显示的结果
<form action="suggestion.asp" method="post">
<p>您的意见对我很重要:
<textarea name="yj" clos="20" rows="5">
请将意见输入此区域
</textarea>
</form>
 
 

2-8框架标记

1.<frameset></frameset>

<frameset></frameset>标记对放在框架的主文档的<body></body>标记对的外边,也可以嵌在其他框架文档中,并且可以嵌套使用。此标记对用来定义主文档中使用的框架数量和框架排列方式,它具有rows和cols属性,这两个属性至少选择一个。

2.<frame>

<frame>标记放在<frameset></frameset>之间,用来定义某一个具体的框架的内容。<frame>标记具有src和name属性,这两个属性都是必须赋值的。<frame>标记还有scrolling和noresize属性,scrolling用来指定是否显示滚动轴,取值 “yes”(显示)、“no”(不显示)或“auto”(若需要则会自动显示,不需要则自动不显示)。noresize属性直接加入标记中即可使用,不需赋值,它用来禁止用户调整一个框架的大小。

3.<noframes></noframes>

<noframes></noframes>标记对也是放在<frameset></frameset>标记对之间,用来定义在那些不支持框架的浏览器中显示文本或图像信息。

 
范例2-8编写一个框架应用的html文档, 如图2-8所示。
 
 
 
 
 
 


图2-8  框架基本结构显示界面
代码2-8 框架的文档代码
<!—主文档-->
<html>
<head>
<title>框架标记的综合示例</title>
</head>
<frameset cols="25%,*">
<frame src="menu.htm" scrolling="no" name="Left">
<frame src="page1.htm" scrolling="auto" name="Main">
<noframes>
<body>
<p>对不起,您的浏览器不支持“框架”!</p>
</body>
</noframes>
</frameset>
</html>
 
<!—menu.htm文档-->
<html>
<head>
<title>目录</title>
</head>
<body>
<p><font color="#FF0000">目录</font></p>
<p><a href="page1.htm" target="Main">链接到第一页</a></p>
<p><a href="page2.htm" target="Main">链接到第二页</a></p>
</body>
</html>
 
<!—page1.htm文档-->
<html>
<head>
<title>第一页</title>
</head>
<body>
<p align="center"><font color="#8000FF">这是第一页!</font></p>
</body>
</html>
 
<!—page2.htm文档-->
<html>
<head>
<title>第二页</title>
</head>
<body>
<p align="center"><font color="#FF0080">这是第二页!</font></p>
</body>
</html>
 

第3章  初识VBScript程序


 
1.理解VBScript数据类型
2.掌握VBScript变量的命名及其声明和作用域
3.了解VBScript常数的定义方法及VBScript常数类型
4.识记各种运算符
5.掌握条件语句的格式及其应用
6.掌握循环语句的格式及其应用
 
1.理解VBScript数据类型
2.掌握各种条件语句的应用
3.掌握各种循环语句的应用
 
 
 
 
 
 
 
 
 
 
 
 
 

3-1数据类型、变量、常数、运算符

3-1-1VBScript数据类型

1.基本数据类型

VBScript 只有一种数据类型,称为 Variant。Variant 是 VBScript 中唯一的数据类型,所以它也是 VBScript 中所有函数的返回值的数据类型。Variant 用于数字上下文中时作为数字处理,用于字符串上下文中时作为字符串处理。

2.Variant 子类型

除简单数字或字符串以外,Variant 可以进一步区分数值信息的特定含义。表3-1描述了 Variant 包含的数据子类型。
表3-1   Variant数据子类型的含义
子类型 描           述
Empty 未初始化的 Variant。对于数值变量,值为 0;对于字符串变量,值为零长度字符串 ("")。
Null 不包含任何有效数据的 Variant。
Boolean 包含 True 或 False。
Byte 包含 0 到 255 之间的整数。
Integer 包含 -32,768 到 32,767 之间的整数。
Currency -922,337,203,685,477.5808 到 922,337,203,685,477.5807。
Long 包含 -2,147,483,648 到 2,147,483,647 之间的整数。
Single 包含单精度浮点数,负数范围从 -3.402823E38 到 -1.401298E-45,正数范围从 1.401298E-45 到 3.402823E38。
Double 包含双精度浮点数,负数范围从 -1.79769313486232E308 到 -4.94065645841247E-324,正数范围从 4.94065645841247E-324 到 1.79769313486232E308。
Date (Time) 包含表示日期的数字,日期范围从公元 100 年 1 月 1 日到公元 9999 年 12 月 31 日。
String 包含变长字符串,最大长度可为 20 亿个字符。
Object 包含对象。
Error 包含错误号。

3-1-2VBScript变量

变量用一个指定的名字在内存中存储所定义的值,变量的值在使用中可以改变。

1.变量的命名

VBScript变量命名必须遵循 VBScript 的标准命名规则。变量命名必须遵循:
①第一个字符必须是字母。
②不能包含嵌入的句点。
③长度不能超过 255 个字符。
④在被声明的作用域内必须唯一。
在 VBScript 代码中使用表3-2所示的变量命名约定。
表3-2   VBScript变量命名的基本约定
子类型 前缀 示例 子类型 前缀 示例
Boolean bln blnFound Integer int intQuantity
Byte byt bytRasterData Long lng lngDistance
Date (Time) dtm dtmStart Object obj objCurrent
Double dbl dblTolerance Single sng sngAverage
Error err errOrderNum String str strFirstName

2.变量声明和变量作用域

声明变量的一种方式是使用 Dim 语句、Public 语句和 Private 语句在脚本中显式声明变量。
变量作用域表示变量的有效范围。VBScript变量作用域分两种:过程级和脚本(Script)级。Dim是一个默认的声明方式,可以声明声明脚本(Script)级变量,也可以声明过程级变量。Public语句声明的变量是全局(脚本级)变量,可用于全部脚本中的所有过程。Private 语句声明私有(过程级)变量,仅在声明此变量的过程或类中可见。
例如:
 Dim Price                      ' 声明单个脚本级变量
 Dim Top, Bottom, Left            ' 声明多个变量时,使用逗号分隔变量
Sub MySub()        ' 声明一个 sub 过程块
    Dim A            ' 定义过程级变量
    A = "My variable"  ' 过程级变量赋值
    Debug.Print A    ' 过程级代码
End Sub             ' 过程块的结束语句。
 

3-1-3VBScript常数

常数有一定名称,在程序执行过程中其值保持不变。可以使用 Const 语句在 VBScript 中创建用户自定义常数,例如:Const A = "MyString"
VBScript 定义了许多固有常数。表3-3为 VBScript 中提供的常数类型,以及对每种类型的简短描述。
表3-3  VBScript 中提供的常数类型
常数类型 功能描述
颜色常数 定义了脚本中可以使用的 8 种基本颜色。
日期与时间常数 定义了被各种日期与时间函数使用的日期与时间常数。
日期格式常数 定义了用于规定日期和时间格式的常数。
杂类常数 定义了比较难以归类的常数。
MsgBox 常数 定义了在 MsgBox 函数中使用的常数,用来描述按钮的可见与否、标签、行为和返回值。
字符串常数 定义在字符串操作中可以使用的各种不可打印字符。
三态常数 定义了被规定数字格式的函数使用的常数。
VarType 常数 定义了各种 Variant 子类型。
字符串常数见表3-4所示。
表3-4  字符串常数
常数 描述
vbCr Chr(13) 回车符。
vbCrLf Chr(13) & Chr(10) 回车符与换行符。
vbFormFeed Chr(12) 换页符;在 Microsoft Windows 中不适用。
vbLf Chr(10) 换行符。
vbNewLine Chr(13) & Chr(10) 或 Chr(10) 平台指定的新行字符;适用于任何平台。
vbNullChar Chr(0) 值为 0 的字符。
vbNullString 值为 0 的字符串 与零长度字符串 ("") 不同;用于调用外部过程。
vbTab Chr(9) 水平附签。
vbVerticalTab Chr(11) 垂直附签;在 Microsoft Windows 中不适用。

3-1-4运算符

VBScript 有一套完整的运算符,包括算术运算符比较运算符连接运算符逻辑运算符。基本运算符见表3-5所示。
表3-5  VBScript运算符及其优先级列表
算术运算符 比较运算符 逻辑运算符
描述 符号 描述 符号 描述 符号
求幂 ^ 等于 = 逻辑非 Not
负号 - 不等于 <>  逻辑与 And
* 小于 逻辑或 Or
/ 大于 逻辑异或 Xor
整除 \ 小于等于 <= 逻辑等价 Eqv
求余 Mod 大于等于 >= 逻辑隐含 Imp
+ 对象引用比较 Is    
-        
字符串连接 &        
当表达式包含多种运算符时,首先计算算术运算符,然后计算比较运算符,最后计算逻辑运算符。所有比较运算符的优先级相同,即按照从左到右的顺序计算比较运算符。字符串连接 (&) 运算符不是算术运算符,但是在优先级顺序中,它排在所有算术运算符之后和所有比较运算符之前。
 

3-2条件语句

3-2-1if…then…end if语句

If...Then…end if语句的基本语法如下:
If  condition  Then
   Statements1
Else
   Statements2
End If
其中condition是数值或表达式,通常其运算结果是布尔值True或False。Statements1是当condition为True时执行的程序代码;Statements2是当condition为False时执行的程序代码。

 
范例3-1根据代码3-1,分析浏览器显示的内容。
 
 
 
 
 

代码3-1 if条件语句的基本应用(3-1.asp)
<html>
<head>
<title>条件语句的使用</title>
</head>
<body>
<%
  Dim zhy_name
  zhy_name="计算机"
  if zhy_name = "计算机" then
    response.write "你所学的是计算机专业。"
  else
    response.write "你所学的不是是计算机专业。"
  end if
%>
</body>
</html>

图3-1  简单条件语句使用效果图
代码3-1包含了VBScript代码,需要在服务器端执行,因此使用了<% VBScript代码 %>的表达方式。另外,还可以用另一种语法形式:
<Script Language= "VBScript" Runat=server>
VBScript代码
</Script>

3-2-2if…then…elseif…else…end if语句

IF条件语句可以实现多条件组合判断,执行相应的脚本代码,基本语法如下:
If condition Then
[statements]
[ElseIf condition-n Then
[elseifstatements]] . . .
[Else
[elsestatements] ]
End If

3-2-3select case语句

Select case语句的基本语法如下:
Select Case 变量
    Case 条件1
        语句组1
    Case 条件2
        语句组2
     ……
    Case Else
        语句组n
End Select

 
范例3-2根据代码3-2,分析浏览器显示的内容。
 
 
 
 
 

代码3-2 SelectCase条件语句的基本应用(3-2.asp)
<html>
<head>
<title>条件语句的使用</title>
</head>
<body>
<%
  Dim zhy_name
  zhy_name="机电"
 Select Case zhy_name
    Case "计算机"
        response.write "你所学的是计算机应用专业。"
    Case "软件"
        response.write "你所学的是软件技术专业。"
    Case "多媒体"
        response.write "你所学的是多媒体应用技术专业。"
    Case Else
        response.write "你所学的是非计算机类专业。"
End Select
%>
</body>
</html>
 

图3-2  Select条件语句使用效果图

3-3循环语句

循环用于重复执行一组语句。在 VBScript 中可使用下列循环语句:
Do...Loop: 当(或直到)条件为 True 时循环。
While...Wend: 当条件为 True 时循环。
For...Next: 指定循环次数,使用计数器重复运行语句。
For Each...Next: 对于集合中的每项或数组中的每个元素,重复执行一组语句。

3-3-1使用 Do 循环

1.Do While ...Loop语句

Do While ...Loop语句的基本语法如下:
Do While 条件
语句组
Loop
语句的执行过程:在进入循环之前检查条件,在循环完一次之后再次检查条件,当条件为True时执行语句块。

 
范例3-3编写一个当月之前的销售填写表单的ASP文档,如图3-3所示。
 
 
 
 
 


图3-3  Do while…… loop循环语句的应用效果图
代码3-3 Do while…… loop循环语句的基本应用(3-3.asp)
<html>
<head>
  <title>DoLoop的应用</title>
</head>
<body bgcolor="#FFFFFF">
  <p>下载本页,填写每月的销售额:</P>
  <%
    counter = 1
    thismonth = month(now())
    Do while counter <thismonth + 1
      response.write " " & counter & " 月份 : "
      response.write "___________" & "<br><br>"
      If counter >13 then
        exit do
      end if
      counter = counter+1
    Loop
  %>
  <hr>
</body>
</html>

2.Do Until...Loop 语句

Do While ...Loop语句的基本语法如下:
Do While 条件
语句组
Loop
语句的执行过程:在进入循环之前检查条件,在循环完一次之后再次检查条件,当条件为Flase时执行语句块。

3-3-2使用 While...Wend

While...Wend语法形式如下:
While condition
Statements
Wend

3-3-3使用 For...Next

For...Next 语句用于指定次数的循环。在循环中使用计数器变量,该变量的值随每一次循环增加或减少。For...Next基本语法为:
For counter = start To end [Step stepsize]
     MyProc
Next
说明:counter为循环计数器变量,start为计数起始值,end为计数终止值。关键字 Step 用于指定计数器变量每次增加或减少的值,stepsize为步长值,默认为1。Step stepsize可选。

 
范例3-4编写一个利用for…next循环执行1+2+3++100运算的ASP文档,如图3-3所示。
 
 
 
 
 


图3-4  For…Next循环语句运行结果
代码3-5 ForNext循环语句的基本应用(3-5.asp)
<html>
<head>
  <title>ForNext的应用</title>
</head>
<body bgcolor="#FFFFFF">
  <%
     Dim j, total
     For j = 1 To 100 Step 1
         total = total + j
     Next
     response.write "总和为 " & total & "。"
  %>
</body>
</html>
 

3-3-4使用 For Each...Next

For Each...Next基本语法为:
For Each 计数变量 in 集合变量
    语句
Next
说明:适用范围——不知道集合中元素的数目。

 
范例3-5编写一个利用For Each...Next循环将Dictionary 对象的内容分别放置在多个文本框中的ASP文档,如图3-5所示。
 
 
 
 
 


图3-5  ForEach循环语句运行结果
代码3-6 ForEach循环语句的基本应用(3-6.asp)
<HTML>
 <HEAD>
 <TITLE>窗体与元素</TITLE>
 <SCRIPT LANGUAGE="VBScript">
 <!--
 Sub cmdChange_OnClick()
    Dim d                   '创建一个变量
    Set d = CreateObject("Scripting.Dictionary")
    d.Add "0", "Athens"     '添加键和项目
    d.Add "1", "Belgrade"
    d.Add "2", "Cairo"
    d.Add "3", "BeiJing"
 
    Dim TheForm
    Set TheForm = Document.frmForm
    For Each I in d
        TheForm.Elements(I).Value = d.Item(I)
    Next
 End Sub
 -->
 </SCRIPT>
 </HEAD>
 <BODY>
   <CENTER>
   <FORM NAME="frmForm" action="#" method="post">
     <Input Type = "Text" Name="0"><p>
     <Input Type = "Text" Name="1"><p>
     <Input Type = "Text" Name="2"><p>
     <Input Type = "Text" Name="3"><p>
     <Input Type = "Button"  NAME="cmdChange"  VALUE="单击此处"><p>
   </FORM>
   </CENTER>
 </BODY>
 </HTML>
 

第4章  VB Script程序与网页制作


 
1.理解数组的概念
2.掌握数组的创建及数组元素的赋值
3.掌握过程与自定义函数的创建及应用
4.理解过程的数据进出
5.识记VBScript内部函数
6.理解类的应用
 
1.掌握数组的创建及数组元素的赋值
2.掌握过程与自定义函数的创建及应用
3.理解类的应用
 
 
 
 
 
 
 
 
 
 
 
 
 
 

4-1数  组

VBScript数组需要定义数组名,数组中的每一个数据称为一个数组元素,每个数组元素对应一个下标,下标从0开始,数组元素的个数(由数组的length属性来查看)总是比最大下标大1。数组元素可以通过“数组名(下标)”的方式来引用。

4-1-1创建数组

将多个相关值赋给一个变量,即创建包含一系列值的变量,称为数组变量。数组可以使用Dim、Public、Private来声明,得到数组变量,如dim A (n)。多维数组形成一个包含更多元素的数组变量,如dim A (m,n)声明了一个二维数组变量。在声明一个数组时,可以不设置数组元素个数n,这种方式声明的数组称为动态数组。声明动态数组后,可在使用 ReDim 语句来定义该数组的维数和元素。

4-1-2数组元素赋值

VBScript中在声明数组变量后,可以随时为数组元素赋值,也可以随时改变数组元素的值。数组变量初始化时,数值型数组变量的各元素初始化为 0,字符串型数组变量的各元素初始化为零长度字符串 ("")。我们一般使用循环语句为数组变量元素进行赋值。

 
范例3-5编写一个给数组变量赋值的ASP文档,如图4-1所示。
 
 
 
 
 
 
 


图4-1  数组元素赋值结果界面
代码4-1 用循环语句给数组元素赋值
<HTML>
 <HEAD>
 <TITLE>数组元素赋值</TITLE>
 <SCRIPT LANGUAGE="VBScript">
 <!--
 Sub cmdChange_OnClick()
    Dim d(10)                   '创建一个数组变量
    Dim string
    For I=0 To 10
      d(I) = I
      string = string & "d("&I&")="&d(I)& vbCrLf
    Next
    Msgbox string
End Sub
 -->
 </SCRIPT>
 </HEAD>
 <BODY>
   <FORM NAME="frmForm" action="#" method="post">
     <Input Type = "Button"  NAME="cmdChange"  VALUE="单击此处">
   </FORM>
</BODY>
 </HTML>
注意:如果VBScript脚本在服务器端执行,则Msgbox函数不能使用,在客户端看不到结果。

4-2过程与自定义函数

在 VBScript 中,过程被分为两类:Sub 过程和 Function 过程。

4-2-1Sub 过程

Sub 过程是包含在 Sub 和 End Sub 语句之间的一组 VBScript 语句,执行操作但不返回值。Call关键字可以调用过程。
例如:代码4-2
代码4-2  SUB过程的定义和调用
<SCRIPT LANGUAGE="VBScript">
     Call MySub ( "Hello World" )
     Sub MySub(text)
       MsgBox text
     End Sub
</SCRIPT>

4-2-2Function 过程

Function 过程是包含在 Function 和 End Function 语句之间的一组 VBScript 语句。Function 过程可以返回值。Function 过程通过函数名返回一个值,这个值是在该过程的VBScript语句中赋给函数名的。Function 返回值的数据类型总是 Variant。
例如:代码4-3
代码4-3  Function过程的定义和调用
<SCRIPT LANGUAGE="VBScript">
 Call ConvertTemp()
 Sub ConvertTemp()
     temp = InputBox("请输入华氏温度。", 1)
     MsgBox "温度为 " & Celsius(temp) & " 摄氏度。"
 End Sub
 
 Function Celsius(fDegrees)
     Celsius = (fDegrees - 32) * 5 / 9
 End Function
</SCRIPT>

4-2-3过程的数据进出

给过程传递数据的途径是使用参数。参数被作为要传递给过程的数据的占位符。参数名可以是任何有效的变量名。使用 Sub 语句或 Function 语句创建过程时,过程名之后必须紧跟括号。括号中包含所有参数,参数间用逗号分隔。
注意:Function 过程可以返回值;Sub 过程不返回值。

4-3VBScript内部函数

4-3-1数学函数

VBScript提供的系统固有数学函数见表4-1所示。
表4-1  VBScript固有数学函数
函数名称 语法表示 功能描述
Abs 函数 Abs(number) 返回数字的绝对值。number 参数可以是任意有效的数值表达式。
Sqr 函数 Sqr (number) 返回数值的平方根。number 参数可以是任意有效的大于或等于零的数值表达式。
Exp 函数 Exp(number) 返回 e(自然对数的底)的幂次方。常数 e 的值约为 2.718282。
如果 number 参数超过709.782712893,则出现错误。
Rnd 函数 Rnd[(number)] Rnd 函数返回一个小于 1 但大于或等于 0 的值。一般取number为大于零的数,产生序列中的下一个随机数。
Fix 函数 Fix(number) 返回数字的整数部分。如果 number 参数为负数时, Fix 函数返回大于或等于 number 参数的第一个负整数。例如Fix 函数将 -8.4 转换为 -8。
Int 函数 Int(number) 返回数字的整数部分。如果 number 参数为负数时,Int 函数返回小于或等于 number 的第一个负整数。例如,Int 将 -8.4 转换为 -9。
Log 函数 Log(number) 返回数值的自然对数。number 参数是任意大于 0 的有效数值表达式。
Sgn 函数 Sgn(number) 返回表示数字符号的整数。如果 number 大于零则返回1;等于零返回0;小于零则返回-1。
Sin 函数 Sin(number) 返回某个角的正弦值。number 参数可以是任何将某个角表示为弧度的有效数值表达式。将角度乘以 /180 即可转换为弧度。
Cos 函数 Cos (number) 返回某个角的余弦值。
Tan 函数 Tan (number) 返回某个角的正切值。
Atn 函数 Atn (number) 返回数值的反正切值。Atn 函数计算直角三角形两个边的比值 (number) 并返回对应角的弧度值。

4-3-2字符串函数

VBScript提供的字符串处理函数见表4-2所示。
表4-2  VBScript字符串处理函数
函数名称 语法表示 功能描述
Lcase函数 Lcase(string) 将一字符类型变量的字符全部变换为小写字符。
Ucase函数 Ucase(string) 将一字符类型变量的字符全部变换成大写字符。
len函数 len(string) 返回字符串长度或者变量的字节长度。
left函数 left(string,length) 截取字符串string中的前length个字符。
right函数 right(string,length) 截取字符串string中的后length个字符。
mid函数 mid(string,start [,length]) 从字符串中自第start个开始截取length个字符,若length未提供,则截取start之后的子串。
InStr函数 InStr(string1,string2) 返回字符串string2在string1中第一次出现的位置。若不存在,则返回0。
ltrim函数 ltrim(string) 去掉字符串前的空格。
rtrim函数 rtrim(string) 去掉字符串后的空格。
trim函数 trim(string) 同时删掉字符串前、后的空格。
replace函数 replace(string,a,b) 在字符串string中查找子串a,并替代为指定的字符串b。
strreverse函数 strreverse(string) 返回与原字符串排列逆向的字符串。

4-3-3日期/时间函数

VBScript提供的日期/时间处理函数见表4-3所示。
表4-3  VBScript日期/时间处理函数
函数名称 语法表示 功能描述
now函数 now() 返回系统(server端)的当前时间和日期。
Date函数 Date() 返回系统(server端)的当前日期。
time函数 time() 返回系统(server端)的当前时间值。
year函数 year(date) 返回日期表达式date所在的年份。
Month函数 Month(date) 根据日期变量date,返回一个整数,对应月份数。
Monthname函数 Monthname(date[,true]) 根据日期变量date,返回月份英文单词;使用True,则返回英文简写,如Apr。
weekday函数 weekday(date) 根据日期变量date,返回一个整数,对应星期几。
weekdayname函数 weekdayname(date) 根据日期变量date,返回字符串,对应星期几。
day函数 day(date) 返回一个整数值,对应于某月的日期数值。
minute函数 minute(time) 返回一个 0 到 59 之间的整数,代表分钟值。
second函数 second(time) 返回一个 0 到 59 之间的整数,代表一分钟内的秒值。
datediff函数 datediff(timeinterval,
date1,date2)
计算某两个指定日期之间所隔的时间数。timeinterval是表示时间单位的字符串,yyyy—年;q—季度;n—月;y—一年的日数;d—日;w—一周的日数;ww—周;h—小时;m—分钟;s—秒。
dateadd函数 dateadd(timeinterval,
number,date)
返回已加上所指定时间后的时间。Timeinterval同datediff函数,number为时间差,date为初始日期。

4-3-4数据类型转换函数

VBScript提供的数据子类型转换函数见表4-4所示。
表4-4  VBScript常用数据类型转换函数
函数名称 语法表示 功能描述
CBool函数 CBool(expression) 返回表达式,此表达式已转换为 Boolean 子类型的 Variant。
Cstr 函数 Cstr(expression) 将一表达式/其它类型的变量转换成字符类型(string)。
CDate函数 CDate(date) 返回表达式,此表达式已被转换为 Date 子类型的 Variant。
Cint 函数 Cint(expression) 将一表达式/其它类型的变量转换成整数类型(int)。
CSng函数 CSng(expression) 返回表达式,该表达式已被转换为 Single 子类型的 Variant。
formatcurrency 函数 Formatcurrency
(expression)
返回已被格式化为货币值的表达式(使用系统控制面板中定义的货币符号)。
FormatDateTime函数 FormatDateTime(Date[, NamedFormat]) 返回已被格式化为日期或时间的表达式。NamedFormat设定日期时间格式:0—短日期长时间;1—长日期;2—短日期;3—长时间;4—短时间(hh:mm)

4-3-5判断函数

VBScript提供的判断函数见表4-5所示。
表4-5  VBScript常用判断函数
函数名称 语法表示 功能描述
IsArray函数 IsArray(varname) 返回 Boolean 值指明某变量varname是否为数组。
IsDate函数 IsDate(expression) 返回 Boolean 值指明某表达式是否可以转换为日期。
IsEmpty函数 IsEmpty(expression) 返回 Boolean 值指明变量是否已初始化。若为Null返回False。
IsNull函数 IsNull(expression) 返回 Boolean 值,指明表达式是否不包含任何有效数据。
IsNumeric函数 IsNumeric(expression) 返回 Boolean 值指明表达式的值是否为数字。
IsObject函数 IsObject(expression) 返回 Boolean 值指明表达式是否为对象。
 

4-4类(Class)的应用

类由属性和方法构成,声明一个类的名称,以及组成该类的变量、属性和方法的定义。定义类之后,可以使用类的属性和方法。

4-4-1定义类的基本语法

定义类的基本语法如下:
Class Name
Statements
End Class
定义类之后,应用这个类需要创建类的实例,可以用new运算符。例如:
set newdate = new dateclass

4-4-2属性和方法的定义

在 Class 块中,成员通过相应的声明语句被声明为 Private(私有成员,只能在类内部调用) 或 Public(公有成员,可以在类内外部调用) 。没有使用 Private 或 Public 明确声明的被默认为 Public。

 
范例3-6:分析代码4-1,体会类的属性和方法的定义方法。
 
 
 
 
 

代码4-4  类的定义
<script language=vbscript runat=server>
Class myClass
'声明(声明就是定义)myClass类的类内部(私有的[Private])变量
Private strAuthor    '作者
Private strVersion   '版本
Private strExample   '例子说明
 
'---------------定义类的事件---------------------
'----Class_Initialize()是类的初始化事件,只要一开始使用该类,首先会触发该部分的执行。
Private Sub Class_Initialize()
strAuthor = "作者"
strVersion = "1.0"
Response.Write "<br>myClass开始了<br>"
End Sub
'----Class_Terminate()是类的结束事件,只要一退出该类,就会触发该事件。
Private Sub Class_Terminate()
Response.Write "<br>myClass结束了<br>"
End Sub
 
'---------------用户自己定义的方法-----------------
'//----该方法返回一个版本信息
Public Sub Information()
Response.Write "<br>Coding By <a href='mailto:admin@sina.com'>ZuoZhe</a>.<br>"
End Sub
 
'----------------定义类的输出属性-----------------
'//----定类的属性,该属性是让用户从外部初始化strExapmle变量
Public Property Let setExapmle(ByVal strVar)
strExapmle = strVar
End Property
'//----定义类的属性,该属性是返回一个版本号
Public Property Get Exapmle
Exapmle = strExapmle
End Property
'//----定义类的属性,该属性是返回一个版本号
Public Property Get Version
Version = strVersion
End Property
'//----定义类的属性,该属性是返回该类的作者号
Public Property Get Author
Author = strAuthor
End Property
End Class
</script>
 
<%
'------------这里是使用该类的例子----------------------
Dim oneNewClass
Set oneNewClass = New myClass
Response.Write "作者:" & oneNewClass.Author & "<br>"
Response.Write "版本:" & oneNewClass.Version & "<br>"
oneNewClass.setExapmle = "这是一个简单类的例子"
Response.Write "用户自定义:" & oneNewClass.Exapmle & "<br>"
oneNewClass.Information
Set oneNewClass = Nothing  
%>
代码4-4执行的效果图如图4-2所示。

图4-2  类定义的调用结果显示界面
 

第5章  ASP3.0对象


 
1.理解VBScript数据类型
2.掌握VBScript变量的命名及其声明和作用域
3.了解VBScript常数的定义方法及VBScript常数类型
4.识记各种运算符
5.掌握条件语句的格式及其应用
6.掌握循环语句的格式及其应用
 
1.理解VBScript数据类型
2.掌握各种条件语句的应用
3.掌握各种循环语句的应用
 
 
 
 
 
 
 
 
 
 
 
 
 

5-1Request对象

5-1-1读取表单数据

Request.Form基本语法为:
Request.Form (element) [(index)|.Count]
其中:
  • element 指定集合要检索的表单元素的名称。
  • index 可选参数,使用该参数可以访问某参数(如复选框)中多个值中的一个。它可以是 1 到 Request.Form(parameter).Count 之间的任意整数。
  • Count 集合中元素的个数

 
范例5-1:编写一个调查兴趣爱好的网页,并将输入的数据显示出来,如图5-1、图5-2所示。
 
 
 
 
 

  
           图5-1  表单提交画面                         图5-2  表单提交后数据收集结果
代码分别如下:
 
 
代码5-1  HTML表单页
<html>
<body>
<form method="POST" action="CH5-2.asp">
<p> 请填写你的爱好:</p>
<p>
<input type="text" name="hobby" size="20"><br>
<input type="checkbox" name="hobby" value="足球 "> 足球
<input type="checkbox"  name="hobby" value="乒乓球 "> 乒乓球 </p>
<p><input type="submit" value="发送 " name="B1">
<input type="reset" value="重填 " name="B2"></p>
</form>
</body>
</html>
 
代码5-2  读取表单数据页面(CH5-2.ASP)
<html>
<body>
你填写的爱好是: <%=Request.Form("hobby")%><HR>
用FORM集合数组提取:<BR>
<% For i=1 to Request.Form("hobby").count
     Response.Write Request.Form("hobby")(i) & "<BR>"
   Next%>
<HR>用FORM集合循环提取:<BR>
<% For Each i In Request.Form("hobby")
     Response.Write i & "<BR>"
   Next%>
</body>
</html>
注意:<%= 变量 %>产生在浏览器上的输出,这种表示方法与使用response.write的作用基本相同。

5-1-2读取QueryString信息

FORM表单数据传递如果使用GET方法,应该使用Request.QueryString方法来读取传递的信息。Request.QueryString基本语法如下:
Request.QueryString(variable)[(index)|.Count]

 
范例5-2:将代码5-1中method修改为"GET",并将表单发送与接收合并到一个文件中,使用Request.QueryString获取数据,得到代码5-3,操作效果如图5-3所示。
 
 
 
 
 
 

代码5-3  读取QueryString数据页面(CH5-3.ASP)
<html>
<head><title>querystring数据传递</title></head>
<body>
<%if request.querystring("hobby")="" then%>
<form method="GET" action="CH5-3.asp">
<p> 请填写你的爱好:</p>
<p>
<input type="text" name="hobby" size="20"><br>
<input type="checkbox" name="hobby" value="足球 "> 足球
<input type="checkbox"  name="hobby" value="乒乓球 "> 乒乓球 </p>
<p><input type="submit" value="发送 " name="B1">
<input type="reset" value="重填 " name="B2"></p>
</form>
<%else%>
你填写的爱好是: <%=Request.querystring("hobby")%><HR>
用FORM集合数组提取:<BR>
<%
   For i=1 to Request.querystring("hobby").count
     Response.Write Request.querystring("hobby")(i) & "<BR>"
   Next
%>
<HR>用FORM集合循环提取:<BR>
<%
   For Each i In Request.querystring("hobby")
     Response.Write i & "<BR>"
   Next
%>
<%end if%>
</body>
</html>

图5-3  QueryString数据收集界面

5-1-3利用Cookies存储和传递数据

Request.Cookies基本语法如下:
Request.Cookies(cookie)[(key)|.attribute]
其中:cookie 指定要检索其值的 cookie名;Key为可选参数,用于从 cookie 字典中检索子关键字的值(cookie相当于数组,关键字相当于索引值);要确定某个 cookie 是不是 cookie 字典(即cookie 是否有关键字),可使用Request.Cookies("myCookie").HasKeys来分析,如果由关键字,则返回TRUE。attribute 指定 cookie 自身的有关信息。

 
范例5-3: Cookie信息交换程序代码(CH5-4.ASP
 
 
 
 
 
 

代码5-4  Cookie信息交换程序代码(CH5-4.ASP)
<%
nickname=request.form("nick")
if nickname<>"" then
response.cookies("nick")=nickname     '用 response 对象将班级名写入 Cookie 之中
response.write " 欢迎进入 "&request.cookies("nick")&" 班级世界!"
response.end
end if
%>
<html>
<head>
<title>cookie信息交换</title>
</head>
<body>
<form method="POST" action="CH5-4.asp">
<p>输入班级名称:<input type="text" name="nick" size="20"></p>
<p><input type="submit" value=" 发送 " name="B1">
<input type="reset" value=" 重填 " name="B2"></p>
</form>
</body>
</html> 

5-1-4获取ServerVariables 信息

Request对象的ServerVariables方法的语法为:
Request.ServerVariables ( 服务器环境变量 )

 
范例5-3代码5-5通过遍历ServerVariables集合,显示出所有的服务器环境变量。
 
 
 
 
 
 

代码5-5  服务器环境变量显示代码(CH5-5.ASP)
<html>
<head>
<title>cookie信息交换</title>
</head>
<body>
<TABLE>
<TR><TD><B>Server Variable</B></TD><TD><B>Value</B></TD></TR>
<% For Each name In Request.ServerVariables %>
<TR><TD> <%= name %> </TD><TD> <%= Request.ServerVariables(name) %> </TD></TR>
<% Next %>
</TABLE>
</body>
</html> 
 

5-2Response对象

5-2-1设置Cookies信息

Response.Cookies的基本语法为:
Response.Cookies(Cookie)[(Key)|.attribute]
功能:Response.Cookies将数据存储在客户机中。
attribute参数可以是下列之一:
  • Domain(只写)——若被指定,则cookie将被发送到对该域的请求中去。
  • Expires(只写)——指定cookie的过期日期。如果需要在会话结束后将cookie存储在客户机硬盘上,必须设置该日期。若此项属性未设置,或设置日期未超过当前日期,则在任务结束后cookie将到期,相关内容被自动删除。
  • HasKeys(只读)——查看cookie是否包含关键字。
  • Path(只写)——若被指定,则cookie将只发送到对该路径的请求中。如果未设置该属性,则使用默认路径。
  • Secure(只写)——指定Cookie是否安全。

5-2-2缓冲区设置

Response.Buffer用来设置服务器是否经过缓存后将输出送给客户端。若Response.Buffer = True,则要等服务器处理完网页内容后集中将HTML结果输出给浏览器;否则将边处理边输出。

5-2-3清除浏览器内容

当Response.Buffer设置为True时,Response.Clear方法将清除暂存在缓冲区中的页面内容,但不影响标题中的内容。

5-2-4停止输出方法

通过Response.End方法,强迫Web服务器停止执行该页更多的脚本,并发送当前结果,文件中剩余的内容将不被处理。如果Response.Buffer设置为True,则调用Response.end后将缓冲输出已经处理过的网页。Response.End经常与条件语句一起使用,实现当满足某条件时,停止执行,强迫服务器停止执行后续脚本。

 
范例5-3代码5-6停止输出方法的应用举例。
 
 
 
 

代码5-6  停止输出方法的应用举例(CH5-6.ASP)
<% table=request("table") %>
 
<p><font color="#008000" size="4"><center><b><%=table%>记录筛选</b></font><br>
 
<%
set rs=conn.execute("select top 0 * from "&table)
If lcase(rs.fields(0).name)<>"id" THEN
Response.write  "<center><font color=red>"&table&"表首字段不是ID字段,不能使用当前功能!
</font><br><a href='javascript:history.back(1)'>返回</a><br><br><br><br>"
Response.end
end if
'…………
%>

5-2-5网页转向方法

网页转向又称重定向,即通过使用Response.Redirect URL将客户端的浏览器重新定向到一个新的Internet地址,Url为新网页的Internet地址,可以包含QUERY_STRING变量。

 
范例5-4代码5-7网页转向的应用举例。
 
 
 
 
 
 

代码5-7  网页转向的部分代码(CH5-7.ASP)
<%  
  Response.Cookies ("xue_nian")=Request.Form ("xue_nian")
  Response.Cookies ("xue_qi")=Request.Form ("xue_qi")
  Response.Cookies ("rwlx")=Request.Form ("rwlx")
  Response.Cookies ("tiaojian")=Request.Form ("tiaojian")
 
  if Request.Form("submit")="生成任务" then
   Response.Redirect "creatrecord.asp"
  end if
  
  if Request.Form ("submit")="修改任课教师" then
    Response.Redirect "changeteacher.asp"
  end if
 
  if Request.Form ("submit")="编辑记录" then
     Response.Redirect "edit_02.asp?table=W_教学任务"&Request.Form ("rwlx")&"课表"
  end if
 
  if Request("submit")="打印任务"  then
    Response.Redirect  "dayin.asp"
  end if   
  %>
 

5-2-6显示输出方法

Response.Write Variant可以向浏览器发送字符串。

 
范例5-5输出HTML代码(CH5-8.asp),执行结果如图5-4所示。
 
 
 
 
 
 

代码5-8  输出HTML代码(CH5-8.asp)
<html>
<head>
<title>输出HTML代码</title>
<%
sub WriteSuccessMsg(SuccessMsg)
dim strSuccess
strSuccess=strSuccess & "<html><head><title>成功信息</title><meta http-equiv='Content-Type' content='text/html; charset=gb2312'>" & vbcrlf
strSuccess=strSuccess & "</head><body><br>" & vbcrlf
strSuccess=strSuccess & "<table cellpadding=2 cellspacing=1 border=1 width=400 class='border' align=center>" & vbcrlf
strSuccess=strSuccess & "<tr align='center' bgcolor=lightblue><td height='22'><strong>恭喜你!</strong></td></tr>" & vbcrlf
strSuccess=strSuccess & "  <tr><td height='100' valign='top'><br>" & SuccessMsg &"</td></tr>" & vbcrlf
strSuccess=strSuccess & "  <tr align='center' bgcolor=lightblue><td><a href='javascript:history.go(-1)'>&lt;&lt; 返回上一页</a></td></tr>" & vbcrlf
strSuccess=strSuccess & "</table>" & vbcrlf
strSuccess=strSuccess & "</body></html>" & vbcrlf
response.write strSuccess
end sub
%>
</head>
<body>
<%
dim Msg
Msg = " <font size=2>Response.Write 输出成功,弹出定制窗口。</font>"
Call WriteSuccessMsg (Msg)
%>
</body>
</html>

5-4 输出HTML代码结果显示
 

阅读:4089次