基础语法
ASP 脚本由 <% 和 %> 包围。这样向浏览器输出内容:
<html> <body> <% response.write("Hello World!") %> </body> </html>
ASP 中的默认语言是 VBScript。如需使用其他脚本语言,请在 ASP 页面顶端插入一段语言声明:
<%@ language="javascript" %> <html> <body> <% .... %>
表单和用户输入
Request.QueryString 用户收集 method="get" 的表单中的值。从表单通过 GET 发送的信息对所有人都可见(将显示在浏览器的地址栏中),对所发送的数据量也有限制。
Request.Form 用于收集 method="post" 的表单中的值。从表单通过 POST 发送的信息对其他人是不可见,对所发送的数据量没有限制。
ASP Cookies
cookie 常用语识别用户。cookie 是服务器嵌到用户计算机上的小文件。每当相同的计算机通过浏览器请求摸个页面时,也会发送 cookie。
Response.Cookies 命令用于创建 cookie:
<% Response.Cookies("firstname")="Alex" Response.Cookies("firstname").Expires="May 10,2012" %>
注释:Response.Cookies 命令必须位于 <html> 标签之前!
"Request.Cookies" 命令用于取回 cookie 值:
<% fname=Request.Cookies("firstname") response.write("Firstname=" & fname) %>
引用文件
通过 #include 指令,在服务器执行前,您能够把一个 ASP 文件的内容插入另一个 ASP 文件中。#include 指令用于创建函数、页头、页脚,或多个页面上重复使用的元素。
语法:
<!--#include virtual="somefile.inc"-->
或者
<!--#include file ="somefile.inc"-->
请使用关键词 virtual 来指示以虚拟目录开始的路径。如果名为 "header.inc" 的文件位于名为 /html 的虚拟目录中,那么下面的代码会插入 "header.inc" 的内容:
<!-- #include virtual ="/html/header.inc" -->
请使用关键词 file 来指示相对路径。相对路径以包含该引用文件的目录开头。如果您的文件位于 html 目录中,而文件 "header.inc" 位于 html\headers 中,下面的代码将在您的文件中插入 "header.inc" 的内容:
<!-- #include file ="headers\header.inc" -->
请使用关键词 file 与语法 (..\) 来引用更高层级目录中的文件。
Global.asa
Global.asa 文件是可选文件,可包含能够由 ASP 应用程序中的每个页面访问的对象声明、变量以及方法。
注释:Global.asa 文件必须存放在 ASP 应用程序的根目录中,而且每个应用程序只能有一个 Global.asa 文件。
Global.asa 文件只能包含以下内容:
- Application 事件
- Session 事件
- <object> 声明
- TypeLibrary 声明
- #include 指令
Application 和 Session 事件
在 Global.asa 中,您可以告诉 application 和 session 对象当 application/session 开始时做什么,当 application/session 结束时做什么。完成该任务的代码位于事件处理程序中。
注释:在 Global.asa 文件中插入代码时,我们并不使用 <% 和 %>,我们需要在 HTML <script> 标签内部放置子程序:
<script language="vbscript" runat="server"> sub Application_OnStart ‘ some code end sub sub Application_OnEnd ‘ some code end sub sub Session_OnStart ‘ some code end sub sub Session_OnEnd ‘ some code end sub </script>
<object> 声明
通过使用 <object> 标签,也可以在 Global.asa 中创建带有 session 或 application 作用域的对象。
注释:<object> 标签应该位于 <script> 标签之外!
语法:
<object runat="server" scope="scope" id="id" {progid="progID"|classid="classID"}> ....... </object>
TypeLibrary 声明
TypeLibrary 是与 COM 对象对应的 DLL 文件的内容容器。通过在 Global.asa 文件中包含对 TypeLibrary 的调用,就能够访问 COM 对象的常量,同时 ASP 代码也能够更好地报告错误。如果您的 Web 应用程序依赖已在类型库中声明了数据类型的 COM 对象,您可以在 Global.asa 中声明该类型库。
语法:
<!-- METADATA TYPE="TypeLib" file="filename" uuid="typelibraryuuid" version="versionnumber" lcid="localeid" -->
Session 对象
Session 对象用于存储有关用户 session 的信息,或者更改其设置。Session 对象中存储的变量存有关于单个用户的信息,并且能够由一个应用程序中的所有页面进行访问。
集合
- Contents - 包含所有通过脚本命令追加到 session 的条目
- StaticObjects - 包含了所有使用 HTML 的 <object> 标签追加到 session 的对象
- Contents.Remove(item/index) - 从 Contents 集合删除一个项目
- Contents.RemoveAll() - 从 Contents 集合删除全部项目
属性
- CodePage - 规定显示动态内容时使用的字符集
- LCID - 设置用于显示动态内容的区域标识符
- SessionID - 返回 session id
- Timeout - 设置或返回 session 的超时时间
方法
- Abandon - 撤销 session 对象中的所有对象。
Application 对象
在一起工作以完成某项任务的一组 ASP 文件被称为一个应用程序。ASP 中的 Application 对象用于将这些文件捆绑在一起。所有用户捆绑一个 Application 对象。Application 对象应该存有被应用程序中的许多页面使用的信息(例如数据库连接信息)。
集合
- Contents - 包含所有通过脚本命令追加到应用程序中的项目
- StaticObjects - 包含所有使用 HTML 的 <object> 标签追加到应用程序中的对象
- Contents.Remove - 从 Contents 集合中删除一个项目
- Contents.RemoveAll - 从 Contents 集合中删除所有的项目
方法
- Lock - 防止用户修改 Application 对象中的变量
- Unlock - 允许用户修改 Application 对象中的变量
Response 对象
Response 对象用于从服务器将输出发送给用户。
集合
Cookies(name) - 设置 cookie 的值。假如不存在,就创建 cookie ,然后设置指定的值。
属性
- Buffer - 规定是否缓冲输出。当输出设置缓存时,服务器会阻止向浏览器的响应,直到所有的服务器脚本均被处理,或者直到脚本调用了 Flush 或 End 方法。如果要设置此属性,它应当位于 .asp 文件中的 <html> 标签之前。
- CacheControl - 设置代理服务器是否可以缓存由 ASP 产生的输出。如果设置为 Public,则代理服务器会缓存页面。
- Charset(charset_name) - 将字符集的名称追加到 Response 对象中的 content-type 报头。
- ContentType - 设置 Response 对象的 HTTP 内容类型。(比如 "text/html", "image/gif", "image/jpeg", "text/plain")。默认是 "text/html"
- Expires - 设置页面在失效前的浏览器缓存时间(分钟)
- ExpiresAbsolute - 设置浏览器上页面缓存失效的日期和时间
- IsClientConnected - 指示客户端是否已从服务器断开
- Pics(pics_label) - 向 response 报头的 PICS 标志追加值
- Status - 规定由服务器返回的状态行的值
方法
- AddHeader(name, value) - 向 HTTP 响应添加新的 HTTP 报头和值
- AppendToLog string - 向服务器记录项目(server log entry)的末端添加字符串
- BinaryWrite(data_to_write) - 在没有任何字符转换的情况下直接向输出写数据
- Clear - 清除已缓冲的输出。使用该方法来处理错误。如果 Response.Buffer 未设置为 true,该方法将产生 run-time 错误
- End - 停止处理脚本,并返回当前的结果
- Flush - 立即发送已缓存的输出。如果 Response.Buffer 未设置为 true,该方法将产生 run-time 错误
- Redirect(url) - 把用户重定向到另一个 URL
- Write(data_to_write) - 向用户写文本
Request 对象
当浏览器从服务器请求页面时,就被称为 request。request 对象用于获取来自用户的信息。
集合
- ClientCertificate - 包含了在客户证书中存储的字段值
- Cookies(name) - 包含 cookie 值
- Form(element_name) - 包含表单值。该表单必须使用 post 方法
- QueryString(variable_name) - 包含查询字符串中的变量值
- ServerVariables(server_variable) - 包含服务器变量值
属性
- TotalBytes - 返回在请求正文中客户端所发送的字节总数
方法
- BinaryRead - 取回作为 post 请求的一部分而从客户端送往服务器的数据
Server 对象
Server 对象用于访问服务器上的属性和方法。
属性
ScriptTimeout - 设置或返回一段脚本在终止前所能运行多长时间。
方法
- CreateObject(type_of_object) - 创建对象的实例
- Execute(path) - 从 ASP 文件内部执行另一个 ASP 文件。在被调用的 ASP 文件执行完毕后,控制权返回原先的 ASP 文件
- GetLastError() - 返回描述所发生错误的 ASPError 对象
- HTMLEncode(string) - 对字符串应用 HTML 编码
- MapPath(path) - 把相对或虚拟路径映射为物理路径
- Transfer(path) - 把所有状态信息发送到另一个文件,以备处理。在传送之后,程序的控制权不会返回原先的 ASP 文件
- URLEncode(string) - 对字符串应用 URL 编码规则