近几天正好有时间静下心来搞下技术研究,便打算好好学习学习asp。
到网上到处找asp教程,大多都是你转我,我 转你,谬误不少。有些连我这个asp的外行都能一眼看出。
最后我 发现windows自带的教程都很不错。看来我们还是没有好好挖掘这个资源啊。
安好IIS后,默认网站都有这样一个虚拟目录,IISHelp
打开http://127.0.0.1/iishelp/iis/misc/default.asp
就是microsoft开发的帮助文档。
以下是我的选抄部分。
第 1 课:编写 ASP 网页
学习 ASP 的最佳方法是先研究示例,然后更改感兴趣的整数值、字符串以及语句,并在浏览器中观察发生的变化。
在本课程中,您将执行下列任务:
示例 1 使用 HTML 和 VBScript 创建、保存和运行 ASP 网页。
示例 2、 3 和 4 使用内置函数和条件脚本语句在 ASP 网页中添加功能和逻辑。
VBScript 是用于 ASP 网页的默认脚本语言,但其分隔符与 JScript 相同。使用尖括号作为 HTML 标记的分隔符(如在任何 .htm 网页中一样),如下所示:
使用百分号和尖括号作为脚本代码的分隔符,如下所示:
可以将多条脚本语句放在一对脚本分隔符中,如下例所示:
此代码将在浏览器中显示下列文字:
Hello World!
Hello World!
下面是使用 JScript 实现上述功能的示例:
创建 ASP 网页时,可以使用一个类似于记事本的文本编辑器编写代码,并以 .asp 而非 .htm 作为扩展名保存。.asp 文件扩展名告知 IIS 在将网页发送到客户端之前要通过 ASP 引擎。(注意:在记事本的“另存为”对话框中,当“保存类型”选择为“文本文档 (*.txt)”时,记事本会自动将 .txt 追加到文件名后。为防止这种情况发生,请将“保存类型”选择为“所有文件”,并在“文件名”字段中键入完整的文件名“MyFile.asp”,然后单击“保存”按钮。)
示例 1
本示例用于显示欢迎词、日期和当前时间。要运行本示例,请将下列代码复制并粘贴到一个空文件中,并将其保存在 x:\Inetpub\Wwwroot\Tutorial 目录中,文件名为“Example1.asp”。在浏览器地址栏中键入 http://localhost/Tutorial/Example1.asp 查看此示例。
示例 1
欢迎访问我的主页
下午好!"
Else
Response.Write "上午好!"
End If
%>
今天是 ,时间
在浏览器中,您将看到类似于下面的结果(取决于执行此练习的日期和时间):
欢迎访问我的主页
下午好! 今天是 20##-10-20,时间 7:29:50 PM
注意:站点服务器按下列顺序处理 Example1.asp:
[b][/b]告知 ASP 引擎使用 VBScript 引擎解析脚本代码。
ASP 引擎忽略 HTML 代码块。
ASP 引擎执行 [b][/b] 块中的代码,并用占位符替换这些块。将 Response.Write 字符串和 [i][/i] 字符串的结果保存到服务器的内存中。
在网页离开 ASP 引擎之前,将 Response.Write 字符串和 [i][/i] 字符串的结果插入到 HTML 代码中的相应占位符处。
完整的网页以一个 HTML 代码文件形式离开 ASP 引擎。然后,服务器将此网页发送到客户端。
示例 2
此示例在 ASP 网页中加进一个 For...Next 循环以添加一些动态逻辑。For...Next 循环是可使用的六个条件语句之一。另外五个条件语句是:Do...Loop、For Each...Next、If...Then...Else...End If、Select..Case...End Select 和 While...Wend。您可以在
Windows Script Technologies
的 VBScript 部分找到这些语句的描述。
请将下列代码复制并粘贴到文本编辑器中,并保存为“Example2.asp”。在浏览器地址栏中键入 http://localhost/Tutorial/Example2.asp ;查看此示例。
此示例的处理过程与 Example1.asp 相同。
示例 2
>
棒极了!
在浏览器中,您应该看到类似于下面的结果:
请购买我的产品!
请购买我的产品!
请购买我的产品!
请购买我的产品!
请购买我的产品!
棒极了!
下面是使用 JScript 编写的示例 2:
示例 2
>
棒极了!
示例 3
随着企业意识到必须在世界范围内推销其产品,多语种网站每天都在层出不穷。因此,设置日期、时间和货币的格式,使之与用户所在区域相匹配对开拓市场大有裨益。
在示例 3 中,使用一个预定义函数在 ASP 网页上显示日期和货币。对于不同的区域,可以使用 GetLocale、SetLocale、FormatCurrency 和 FormatDateTime 函数,为不同的区域设置日期和货币的格式。MSDN 的 Locale ID Chart 中列出了区域标识字符串。(本示例不包括更改“代码页”以实现在欧洲语言操作系统上显示非欧洲语言字符。详细信息,请参阅 IIS 文档中的“代码页”主题。)
注意:在 VBScript 中有 90 多个预定义函数,
Windows Script Technologies
中对这些函数进行了详细定义。要查看此文档,请选择“VBScript”,选择“Documentation”,选择“Language Reference”,再选择“Functions”。
将下列代码复制并粘贴到文本编辑器中,并保存在 x:\Inetpub\Wwwroot\Tutorial 目录中,文件名为“Example3.asp”。在浏览器地址栏中键入 http://localhost/Tutorial/Example3.asp 查看此示例。
示例 3
感谢您购买我们的产品。请打印此网页以作为记录。
设置为法语格式:
"
Response.Write FormatDateTime(Date, 1) & "
"
Response.Write FormatCurrency(totalBill) & "
"
SetLocale("de")
Response.Write"设置为德语格式:
"
Response.Write FormatDateTime(Date, 1) & "
"
Response.Write FormatCurrency(totalBill) & "
"
SetLocale("en-au")
Response.Write"设置为英语格式 - 澳大利亚:
"
Response.Write FormatDateTime(Date, 1)& "
"
Response.Write FormatCurrency(totalBill) & "
"
'还原为原来的区域设置
SetLocale(saveLocale)
%>
在浏览器中,您应看到下列结果:
感谢您购买我们的产品。请打印此网页以作为记录。 设置为法语格式:
vendredi 20 octobre 20##
85,50 F
设置为德语格式:
Freitag, 20. Oktober 20##
85,50 DM
设置为英语格式 - 澳大利亚:
Friday, 20 October 20##
$85.50
示例 4
在 ASP 脚本中,字符串操作函数是最常使用的函数。最强大的字符串函数使用正则表达式。因为正则表达式较难掌握,示例 4 显示了如何使用字符串表达式和正则表达式替换字符串中的字符。
Windows Script Technologies
中对正则表达式进行了定义。要查看此文档,请选择“VBScript”,选择“Documentation”,再选择“Regular Expressions Guide”。
将下列代码复制并粘贴到文本编辑器中,并将其保存在 x:\Inetpub\Wwwroot\Tutorial 目录中,文件名为“Example4.asp”。在浏览器地址栏中键入 http://localhost/Tutorial/Example4.asp ;查看此示例。
示例 4
更改客户的街道地址
在浏览器中,您应看到下列结果:
更改客户的街道地址 在 strString 中找到 strSearchFor
在 strString 中找到 reSearchFor.Pattern
原字符串:
Jane Doe
100 Orange Road
Orangeville, WA
98100
800.555.1212
替换了 strSearchFor 后的字符串:
Jane Doe
200 Bluebell Court
Blueville, WA
98200
800.555.1212
替换了 reSearchFor 后的字符串:
Jane Doe
200 Bluebell Court
Blueville, WA
98200
800.555.1212
第 2 课:使用表单提交信息
Intranet 和 Internet 服务器应用程序的一个常见用途就是在网页中实现一个表单,接受用户输入。ASP 在 Request 对象中包含下列两个集合:QueryString 集合和 Form 集合,实现了表单信息的处理。
在本课程中,您将创建一个 HTML 网页,使用一个 HTML 表单接受用户输入,并将用户输入返回站点服务器的同一网页。站点服务器随后显示用户输入。在本单元的最后,您将利用这些有关表单的知识,使用 ASP 脚本建立一个意见簿应用程序。要完成此课程,您应当执行下列任务:
示例 1 在表单中显示一组按钮。
示例 2 在表单中显示文本框,从表单接受用户输入,随后在网页上显示用户输入。
示例 1:按钮
表单可以包含多种不同类型的元素帮助用户输入数据。在本示例中,将创建五个称为按钮的输入表单元素。此外,还有多种类型的按钮,包括 RADIO 按钮、SUBMIT 按钮、RESET 按钮、CHECKBOX 按钮和 TEXT 按钮。
用户在表单中输入信息之后,需要将信息发送到 Web 应用程序。用户单击网页中的“提交”按钮之后,表单数据将从客户端发送到在表单标记 ACTION 元素中列出的网页。此网页不必与调用网页相同。本示例中,在 ACTION 元素中列出的网页与调用网页相同,不需要再调用其他网页。
在本示例中,METHOD="POST" 用于将数据从站点客户端浏览器发送到站点服务器。当您在表单中使用 METHOD="POST" 时,用户数据最终保存在 Request 对象的 Form 集合中。
将下列代码复制并粘贴到文本编辑器中,并保存在 x:\Inetpub\Wwwroot\Tutorial 目录中,文件名为“Button.asp”。在浏览器地址栏中键入 http://localhost/Tutorial/Button.asp 查看此示例。
按钮表单
计算机编程经验:
少于 1 年。
1-5 年。
多于 5 年。
(尚未输入。)"
Else
Response.Write "您的最终选择是 " & strChoice & ""
End If
%>
在浏览器中,您应看到下列结果:
计算机编程经验:
少于 1 年。
1-5 年。
多于 5 年。
(尚未输入。)
示例 2:输入表单元素
在本示例中,将创建三个称为文本字段的输入表单元素和两个称为复选框的输入表单元素。复选框与选项按钮不同,可以进行多选。此示例仍需使用默认的“提交”按钮将数据发送回服务器。
在本示例中,METHOD=GET 用于将数据从站点客户端浏览器发送到站点服务器。在表单中使用 METHOD=GET 时,用户数据最终保存在 Request 对象的 QueryString 集合中。
单击“提交”按钮之后,查看地址栏,您将看到 QueryString 元素显示在 URL 的尾部。
将下列代码复制并粘贴到文本编辑器中,将其保存在 x:\Inetpub\Wwwroot\Tutorial 目录中,文件名为“Text.asp”。在浏览器的地址栏中键入 http://localhost/Tutorial/Text.asp 查看此示例。
文本和复选框表单
要获取我们的产品信息,请填写此表单:
姓名(必需)
公司
电子邮件(必需)
要了解的信息:
软件
硬件
(尚未输入必需的信息。)"
Else
Response.Write "您是 "& strName &"。"
If Not ("" = strCompany) Then
Response.Write "
来自 " & strCompany &"。"
End If
Response.Write "
您的电子邮件地址是 " & strEmail &"。"
If Not ("" = strInfo) Then
Response.Write "
您希望了解" & strInfo & "方面的信息。"
End If
End If
%>
在浏览器中,您应看到下列结果:
要获取我们的产品信息,请填写此表单:
姓名(必需)
公司
电子邮件地址(必需)
要了解的信息:
软件
硬件
(尚未输入必需的信息。)
第 3 课:创建使用数据库的意见簿
本课程要求在系统中已安装了 Microsoft Access,且示例不支持在 64 位平台上运行,除非 Access 是为 64 位平台开发的版本。
在第 3 课中,将开发一个意见簿应用程序。此意见簿允许访问网站的用户留下信息,例如姓名、电子邮件地址和评论等。在本课程中,您将在创建一个 Access 数据库后执行下列任务:
示例 1 创建一个 ASP 网页,仅使用 ADO Connection 对象连接到数据库。
示例 2 创建一个 ASP 网页,同时使用 Connection 对象和 Command 对象连接到数据库。
示例 3 创建一个 ASP 网页,在浏览器中从数据库显示意见簿的信息。
创建 Access 数据库
创建一个名为“GuestBook.mdb”的 Access 数据库,并将其保存在 x:\Inetpub\Wwwroot\Tutorial 中。在“GuestBook”数据库中创建一个表。使用 Access 中的“使用设计器创建表”选项添加下列字段和属性:
字段名称
数据类型
字段常规属性
FID
自动编号
字段大小=长整型,
新值=递增,
索引=有(无重复)
FTB1
文本
字段大小=255,
必填字段=否,
允许空字符串=是,
索引=无
FTB2
文本
字段大小=255,
必填字段=否,
允许空字符串=是,
索引=无
FTB3
文本
字段大小=255,
必填字段=否,
允许空字符串=是,
索引=无
FTB4
文本
字段大小=255,
必填字段=否,
允许空字符串=是,
索引=无
FMB1
备注
必填字段=否,
允许空字符串=是
创建一个 ASP 网页,将数据添加到 Access 数据库
现在已经创建了数据库,可以建立一个 ASP 网页,使用 Microsoft ActiveX® Data Objects (ADO) 连接到数据库,并读取传入数据。ADO 是一个具有方法和属性的对象的集合,可以操作几乎所有类型数据库中的数据。(如果要经常使用数据库,您应购买一本 ADO 程序员参考手册。在下列示例中,仅说明了最基础的 ADO 代码,却足以对数据库进行打开、读取、写入操作)。
后面的两个示例具有相同的结果。然而,第一个示例只使用了 Connection 对象,而第二个示例则将部分工作交给 Command 对象完成,其功能更为强大。对比两个示例可以看到这些对象是如何连接在一起的。在熟悉了这些对象之后,可以使用 ADO 程序员参考手册练习更多的方法和属性。
要查看 ASP 网页中的 ADO 错误,可以在将数据库重命名、在连接字符串中输入拼写错误或将数据库设置为只读后,再浏览此网页。
示例 1:仅使用 ADO Connection 对象
将下列代码复制并粘贴到文本编辑器中,将其保存在 x:\Inetpub\Wwwroot\Tutorial 目录中,文件名为“GuestBook1.asp”。在浏览器地址栏中键入 http://localhost/Tutorial/GuestBook1.asp ;查看此示例。
仅使用 Connection 对象的意见簿
仅使用 Connection 对象的意见簿
发件人:
电子邮件地址:
抄送:
主题:
消息:
在浏览器中,您应看到下列结果:
仅使用 Connection 对象的意见簿
发件人:
电子邮件地址:
抄送:
主题:
消息:
示例 2:同时使用 Connection 对象和 Command 对象
将下列代码复制并粘贴到文本编辑器中,保存在 x:\Inetpub\Wwwroot\Tutorial 目录中,文件名为“GuestBook2.asp”。在浏览器地址栏中键入 http://localhost/Tutorial/GuestBook2.asp ;查看示例。
使用 Connection 对象和 Command 对象的意见簿
使用 Connection 对象和 Command 对象的意见簿
发件人:
电子邮件地址:
抄送:
主题:
消息:
在浏览器中,您应看到与 GuestBook1.asp 相似的内容,如下所示:
使用 Connection 对象和 Command 对象的意见簿
发件人:
电子邮件地址:
抄送:
主题:
消息:
示例 3:在浏览器中显示数据库
将信息输入数据库后,可以使用包含另一脚本的网页来查看和编辑这些数据。除定义查询的方法以外,ADO 代码并没有太多的更改。
在上面两个示例中,使用 INSERT INTO 查询向数据库添加记录。在本示例中,将使用 SELECT 查询从数据库中选择记录,并将记录显示在浏览器中。还会使用 DELETE 查询从数据库中删除记录。在本示例中,唯一没有使用的查询是 UPDATE 查询,其语法与 INSERT INTO 查询相同。UPDATE 查询允许您更改数据库中的字段。
将下列代码复制并粘贴到文本编辑器中,将文件保存在 x:\Inetpub\Wwwroot\Tutorial 目录,文件名为“ViewGB.asp”。在浏览器地址栏中键入 http://localhost/Tutorial/ViewGB.asp
查看此示例。
查看意见簿
查看意见簿
按列排序:
ID 编号
名称
电子邮件
抄送
主题
备注
名称包括:
">
电子邮件地址包括:
">
抄送包括:
">
主题包括:
">
备注包括:
">
数据库中没有相应记录。"
Else
Response.Write "记录 " & iDelete & " 已被删除。"
End If
Else
'使用 Recordset 对象的一些方法和属性输出
'字段名称。
Response.Write ""
'对于当前行的每一列...
For i = 1 to (objRS.Fields.Count - 1)
' 输出字段名。
Response.Write "" & objRS(i).Name & ""
Next
Response.Write "删除"
Response.Write ""
'使用 Recordset 对象的其他方法和属性输出字段数据。
'如果明白了某一模式的用法,
'您可以寻找其他的模式进行尝试。
'如果还没有达到记录集的尾部...
While Not objRS.EOF
Response.Write ""
'对于当前行中的每一列...
For i = 1 to (objRS.Fields.Count - 1)
' 输出字段中的数据。
Response.Write "" & objRS(i) & ""
Next
'添加一个按钮,接受 ID 号码来删除一条记录。
%>">"
'移到下一行
objRS.MoveNext
Wend
End If 'objRS.EOF
%>
在浏览器中,您应看到下列结果:
查看意见簿
按列排序:
ID 编号 名称 电子邮件 抄送 主题 备注
名称包括:
电子邮件地址包括:
抄送包括:
主题包括:
备注包括:
数据库中没有相应记录。
这一讲我没有试验成功,也不知道出错出在哪里。有愿意交流的联系我qq251609217
第 4 课:显示 Excel 电子表格
本课程要求在系统中已安装了 Microsoft Excel,且示例不支持在 64 位平台上运行,除非 Excel 是为 64 位平台开发的版本。
本课程演示如何在网页中显示一个 Microsoft Excel 电子表格。如同在以前课程中那样,将使用 ADO。然而,在本课程中,您将连接到 Excel 电子表格,而不是 Access 数据库。
准备将在 Active Server Page 中显示的 Excel 电子表格
使用 Excel 98 或 Excel 2000,创建一个电子表格,并将其保存在 x:\Inetpub\Wwwroot\Tutorial 中,文件名为 ASPTOC.xls。创建电子表格时不要包括任何特殊的格式或列标签。
用随机数据填充一些字段。将单元格的第一行作为列名称。
选中要在网页中显示的电子表格的行和列(在某一单元格中单击,然后沿对角线拖动鼠标选中一组单元格)。
在“插入”菜单上,选择“名称”,然后单击“定义”。所有工作簿的名称和单元格区域都在此对话框中定义。
确保选中的单元格区域正确显示在底部。为您的工作簿键入名称“MYBOOK”,然后选择“添加”。无论何时改变 MYBOOK 时,请确保在“定义名称”窗口底部的“引用位置”文本框中显示了正确的单元格区域。仅仅在新选中一组单元格后选择 MYBOOK,不会更新单元格区域。
在名称显示在工作簿列表后,单击“确定”按钮。保存电子表格。
关闭 Excel,去除对文件的锁定,以便 ASP 网页可以对其进行访问。
在第 3 课的示例中,将在连接字符串中指定提供程序的名称,以映射到特定的 ADO DLL。在本示例中,将使用一个驱动程序名称,使 ASP 使用此驱动程序的默认提供程序。
将下列代码复制并粘贴到文本编辑器中,将文件保存在 x:\Inetpub\Wwwroot\Tutorial 目录中,文件名为“ViewExcel.asp”。在浏览器地址栏中键入 http://localhost/Tutorial/ViewExcel.asp 查看此示例。
在网页中显示 Excel 电子表格
在网页中显示 Excel 电子表格
使用 GetString 方法将 Excel 数据取入一个字符串"
Response.Write ""
Response.Write objRS.GetString (, , "", "", NBSPACE)
Response.Write ""
'移动到第一条记录。
objRS.MoveFirst
'使用 ViewGB.asp 方法打印表中的单元格和行。
Response.Write "使用 MoveNext 方法获取 Excel 数据 "
'使用相应方法和属性打印输出 Recordset 对象的
'字段名称和属性
Response.Write ""
'对于当前行中的每一列...
For i = 0 to (objRS.Fields.Count - 1)
' 输出字段名称。
Response.Write "" & objRS(i).Name & ""
Next
'如果还没有到达记录集的尾部...
While Not objRS.EOF
Response.Write ""
'对于当前行中的每一列...
For i = 0 to (objRS.Fields.Count - 1)
' 输出字段中的数据。
%>"
'关闭连接。
objConn.Close
%>
在浏览器中,您应看到下列结果:
在网页中显示 Excel 电子表格
使用 GetString 方法将 Excel 数据取入一个字符串
A2
B2
C2
A3
B3
C3
使用 MoveNext 方法获取 Excel 数据
A1
B1
C1
A2
B2
C2
A3
B3
C3