邪恶八进制信息安全团队技术讨论组's Archiver

勇敢的风 2007-11-20 14:17

[原创]《风的asp系列教程》(第一章 第二节)

文章作者:勇敢的风 [E.S.T 顾问团]
信息来源:邪恶八进制信息安全团队([url]www.eviloctal.com[/url])
第二节 VBScript简介(VBScript在ASP中的应用)
  在上一节中已经附上Windows脚本手册,其中主要包含VBScript,JScript和FSO,有关VBScript中的资料这里不在重复,本节将教你如何快速上手VBScript。

一、脚本手册中的示例
  脚本手册中的示例都是以HTML文件中的Script代码块,下面介绍应到到ASP的方法。
  1.1 VBScript在ASP中的应用
    在ASP中用<%&#39;代码内容%>来标注ASP代码
    VBScript手册中的示例用<SCRIPT LANGUAGE="VBScript">&#39;代码内容</SCRIPT>来标注VBScript代码
    我们只需要将<SCRIPT LANGUAGE="VBScript">&#39;代码内容</SCRIPT>替换为<%&#39;代码内容%>即可在ASP中应用VBScript
  1.2 VBScript手册示例应用到ASP中的注意事项
    Msgbox 在ASP中无法使用
    创建对象CreateObject方法要使用Server.CreateObject
    document.write要改为Response.write
二、VBScript在ASP中的用法
  VBScript中没有提供可以让浏览者与服务端相交互的功能,然而ASP提供的对象可以,所以我们要编写完整的可交互的asp页面时就要用ASP对象和VBScript混排的方法。
  例如:For Next语句介绍页面提供的代码

    For I = 1 To 10
       For J = 1 To 10
        For K = 1 To 10
        . . .
        Next
       Next
    Next

  中间有一行【...】
  这里我们就要插入ASP对象代码的地方,比如输出,计算等等
    直接输出输出可以用 response.write i & j & k
    计算后输出可以用 response.write i * j * k
    如果显示出来是堆在一起的数字,那么我们还要再插入html代码,比如:response.write i * j * k & "<br>"
   
  上面简单的举了一个ASP对象代码+html代码+VBScript代码混用的方法,其中的连接符【&】可以在VBScript的手册中的运算符找到说明

三、IIS中的默认脚本
  有关iis的安装与使用方法本教程不做详细解释,仅在用到时会简单提到。
  在iis中,每个站点或者虚拟目录都有自身的默认值,选择站点或者虚拟目录的属性并打开配置窗口,我们可以找到有关默认脚本的设置选项。iis将VBScript作为默认的ASP执行脚本。这时我们在编写asp页面的时候就不需要重新注明ASP的脚本是VBScript还是JScript了。
  我们在设定了默认脚本的同时如果要使用其他脚本有没有其他的方法吗?当然有,比如我们设定了默认脚本为VBScript,如果要想使用JScript作为某个页面的默认脚本我们可以在页首加入<%@LANGUAGE = "JScript"%>
  上面的方法介绍的仅仅是一个页面使用同一个脚本语言,如果我想要在同一个页面使用两种脚本语言呢?这个也有,请参阅:[url=https://forum.eviloctal.com/read-htm-tid-10730-keyword-.html]在asp中同时使用VBS和JS [/url]

  通过【VBScript在ASP中的用法】中的示例我们可以看出,当某个脚本作为ASP的默认脚本时,该脚本的所有用法(包括变量,函数,运算符,语句等等)均可以使用在ASP中


PS:用好ASP实际上可以说是用好VBScript(当然也可以是JScript),毕竟ASP内置对象的用法少的可怜。但是要想要做个优秀的ASP代码苦工所需要学习的还有很多其他方面的东西,比如数据库。
本节结束本应附上ADO手册,但手头没有,我随后补上。

b0r3d 2007-11-21 00:51

准确的说msgbox函数无法在服务端使用
ado手册我帮你找来了.
晕,没权限上传..

冰的原点 2007-11-25 21:09

[code]
<script language="vbscript">
    For I = 1 To 10
       For J = 1 To 10
        For K = 1 To 10
        response.write i * j * k & "<br>"
        Next
       Next
    Next
<script>
[/code]
风大哥,保存为1.asp时运行出错哦!这里不应该是response,用document.write却可以!

解释下?? [s:269]

还有,风大哥,你的教程很不错哦!支持中!

勇敢的风 2007-11-26 11:40

2楼,看1.1
【我们只需要将<SCRIPT LANGUAGE="VBScript">&#39;代码内容</SCRIPT>替换为<%&#39;代码内容%>即可在ASP中应用VBScript】

我们在写网页程序的时候应该分清那些是服务器端的代码,那些是客户端代码

客户端代码(例子1):
<SCRIPT LANGUAGE="VBScript">
&#39;代码内容
</SCRIPT>
服务端代码(例子2):
<SCRIPT LANGUAGE="VBScript" Runat="Server">
&#39;代码内容
</SCRIPT>
服务端代码(例子3):
<%
&#39;代码内容
%>
例子1和例子2的区别就是Runat="Server"
例子1中代码要符合所使用的脚本vbscript和dhtml标准
例子2和3中要符合所使用的脚本vbscript和asp标准

冰的原点 2007-11-26 19:56

感谢楼上的讲解,不过这里我还有问题!首先说下我是用的netbox ,而用楼上例子3的代码,可以成功访问,而用例子2的代码,却不行。老是显示response 缺少对像! [s:269]

难道问题出在netbox上/?? [s:270]

勇敢的风 2007-11-27 16:54

netbox不支持runat="server"

bink 2007-11-27 21:07

不建议使用 Netbox 来学习Asp .

页: [1]
© 1999-2008 EvilOctal Security Team