#echo

#echo 指令指示 Web 服务器显示服务器变量的值。必须使用 HTML 注释分隔符将指令括起来。

默认情况下,此指令仅可用于 HTML 网页,无法用于 ASP 网页。对于 ASP 网页,可以通过 Request.ServerVariables 集合来访问服务器变量。

语法

<!-- #echo var = VariableName -->

参数

VariableName

指定希望插入其值的变量名。变量可以是下列各项之一:

变量 含义
ALL_HTTP 此表说明尚未解析成其他某个变量的所有 HTTP 头。这些变量的形式为 HTTP_头字段名。这些 HTTP 头包含一个空结束字符串及由回车换行符分隔的单独的头。
AUTH_TYPE 包含所使用的身份验证的类型。例如,如果使用基本身份验证,则字符串为“Basic”;而对于集成身份验证,则为“integrated Windows authentication”。其他身份验证方案拥有其他字符串。由于可以向 Web 服务器添加各种身份验证类型,所以要列出所有可能的字符串是不现实的。如果字符串为空,表示没有使用身份验证。
AUTH_PASSWORD 在客户端身份验证对话框中输入的值。只有使用基本身份验证时,此变量才有效。
AUTH_USER 在客户端身份验证对话框中输入的值。
CONTENT_LENGTH 脚本可以期望从客户端接收到的字节数。
CONTENT_TYPE 在 POST 请求正文中提供的信息内容类型。
DOCUMENT_NAME 当前文件名。
DOCUMENT_URI 当前文档的虚拟路径。
DATE_GMT 以格林威治标准时间 (GMT) 表示的当前日期。
DATE_LOCAL 以本地时区表示的当前日期。
GATEWAY_INTERFACE Web 服务器所使用的 CGI 规范的版本。以 CGI/版本号 格式返回版本号。
HTTP_ACCEPT 特殊 HTTP 头。以逗号 (,) 连接和分隔的 accept 字段的值。例如,如果下列行是 HTTP 头的一部分:

accept:*/*; q=0.1
accept:text/html
accept:image/jpeg

HTTP_ACCEPT 变量的值将是:

*/*; q=0.1, text/html, image/jpeg

LAST_MODIFIED 上次修改当前文档的日期。
PATH_INFO 附加路径信息,由客户端指定。由脚本名称之后、查询字符串之前的 URL 后缀部分组成(如果有)。
PATH_TRANSLATED PATH_INFO 的值,但具有扩展至目录规范的虚拟路径。
QUERY_STRING 在引用此脚本的 URL 中,跟随在问号 (?) 之后的信息。
QUERY_STRING_UNESCAPED 查询字符串的“非转义”版本;即不是 URL 编码的另一版本。
REMOTE_ADDR 发送请求的客户端或客户端代理(例如,网关或防火墙)的 IP 地址。
REMOTE_HOST 发送请求的客户端或客户端代理(例如,网关或防火墙)的主机名。IIS 2.0 和 3.0 为此参数返回一个 IP 地址。
REMOTE_USER 包含通过服务器身份验证的客户端的用户名。如果应用程序启用了“匿名访问”,则返回空字符串。
REQUEST_METHOD HTTP 请求方法。
SCRIPT_NAME 正在执行的脚本程序的名称。
SERVER_NAME 服务器的主机名或 IP 地址,应出现在自引用 URL 中。
SERVER_PORT 接收请求的 TCP/IP 端口。
SERVER_PORT_SECURE 值为 0 或 1 的一个字符串。如果正在安全端口上处理请求,则其为 1。否则将为 0。
SERVER_PROTOCOL 与此请求相关的信息检索协议的名称和版本。通常为 HTTP/1.0。以“名称/版本”格式返回此协议。
SERVER_SOFTWARE 应答请求的 Web 服务器的名称和版本。以“名称/版本”格式返回服务器信息。
URL 给定 URL 的基本部分,不包括参数值。当 Web 服务器从头中解析 URL 时,将确定此值。
 

要点   包含此指令的文件必须使用已映射到 SSI 解释程序的扩展名。否则,Web 服务器将不处理此指令。默认情况下,文件扩展名 .stm、.shtm 和 .shtml 将映射到 SSI 解释程序 (ssinc.dll)。

使用 #echo 指令的 STM 网页既可以自运行,也可以通过 Response.Redirect 从 ASP 网页调用它来运行。用 Server.Transfer、Server.Execute 或 #include 从 ASP 网页中调用 STM 网页是行不通的,因为这样会迫使 STM 网页通过 asp.dll 而不是通过 ssinc.dll 进行解释。

如果安装了 Internet 信息服务管理单元,则可以修改默认扩展名映射并添加新映射,请参阅设置应用程序映射。由于不能将一个文件扩展名映射到多个可执行文件,所以不能在 ASP 文件中使用此指令。ASP 文件已映射到 asp.dll,并且必须保持此状态。

示例

下列示例使用 #echo 指令将 URL 插入 FORM 语句的 ACTION 值中。

--- Echo.asp ---

<FORM NAME="RunEcho" METHOD="POST" ACTION="Echo.asp">
<INPUT TYPE="SUBMIT" VALUE="Run the #echo Directive" NAME="RunEcho">
</FORM>
<%
If Len(Request.Form("RunEcho")) Then
  Response.Redirect("Echo.stm?Echo.asp")
End If
%>

--- Echo.stm ---

<H3>Inside Echo.stm</H3>
AUTH_TYPE is <!-- #echo var="AUTH_TYPE"--><BR>
<FORM NAME="Return" METHOD="POST" ACTION="<!-- #echo var="QUERY_STRING"-->">
<INPUT TYPE="SUBMIT" VALUE="Return to Previous Page" NAME="Return">
</FORM>

© 1997-2001 Microsoft Corporation. 保留所有权利。