SSI的命令和变量
在JBoss 5.1中配置SSI中讲到了如何在JBoss 5.1下配置SSI,SSI的实现原理主要是在静态页面中写入可以通过注释来调用的命令使得静态页面具有动态效果,SSI自身也定义了一些常用的变量,需要注意的是SSI是大小写敏感的。
SSI命令:
config:指定返回给客户端的错误信息,日期时间格式和文件大小格式。
<!--#config errmsg="自定义错误信息"-->:自定义的SSI执行错误信息。
<!--#config sizefmt="bytes"-->:定义文件大小的显示格式,默认为bytes,可改为千字节方式(abbrev)。
<!--#config datefmt="%Z %Y %m %H %M %d %a"-->:自定义日期的显示格式。
include:把其他文件插入到当前文档中,被包含的文件必须到有扩展名。
<!--include file="header.html" -->:file文件名是一个相对路径,被包含的文件只能位于同级或者下级目录中。
<!--include virtual="/includes/header.html" -->:virtual文件名表示的是Web站点虚拟目录的完整路径。
echo:将变量插入到文档中。
<!--#echo var="DOCUMENT_NAME" -->:输出当前文档的名称(更多变量请参考下面)。
exec:将cgi或者外部程序的输出写入到页面中,这个指令很方便使用,但是存在安全风险。
<!--#exec cgi=""-->:将cgi的输出写入到页面中。
<!--#exec cmd=""-->:将外部程序的输出写入到页面中
fsize:文件的大小,输出的格式由sizefmt定义,必须在sizefmt后使用。
<!--#fsize file="head.html"-->:显示head.html的大小。
flastmod:文件的最后修改时间,时间的输出格式由datefmt定义,必须在datefmt后使用。
<!--#flastmod file="head.html"-->:显示head.html的最新更新时间。
以下命令属于XSSI命令(Extended SSI)
printenv:显示当前存在WEB服务器环境中所有的环境变量。
<!--#printenv-->
set:给变量赋值。
<!--#set var="变量名" value="变量值"-->
if...elif...else...endif:执行if,else if else判断。
<!--#if expr="$变量名="变量值""-->
<!--#elif expr="$变量名="变量值""-->
SSI内置的变量(蓝色表示JBoss 5.1下<!--#printenv-->输出变量,其他变量是否支持还有待验证):
AUTH_TYPE ——针对用户的认证授权方式: BASIC , FORM , etc. 和 Tomcat 内的认证方式同步
CONTENT_LENGTH ——从服务器表单传过来的数据长度,字符数目或者数据的字节数
CONTENT_TYPE ——服务器访问呢数据的 MIME 类型,比如“ text/html ”
DATE_GMT ——目前的时间格式方式使用 GMT
DATE_LOCAL ——目前的时间格式方式设置成为本地时间格式
DOCUMENT_NAME ——当前上下文环境的文件地址
DOCUMENT_URI ——虚拟路径定义的文件地址
GATEWAY_INTERFACE —— CGI 的版本定义:“ CGI/1.1 ”
HTTP_ACCEPT ——一个客户端可以接受的 MIME 类型列表
HTTP_ACCEPT_ENCODING ——客户端可以接受的压缩文件类型的列表
HTTP_ACCEPT_LANGUAGE ——客户端可以支持的语言列表
HTTP_CONNECTION ——管理客户端的连接:是“ Close ”还是“ Keep-Alive ”
HTTP_HOST ——客户端请求的站点地址
HTTP_REFERER ——客户端请求之前所在的 URL 地址
HTTP_USER_AGENT ——客户使用的浏览器端的请求结果
LAST_MODIFIED ——当前页面上一次访问和修改的时间
PATH_INFO ——访问此 Servlet 的路径信息
PATH_TRANSLATED —— PATH_INFO 提供的 translated 版本
QUERY_STRING ——在 URL 地址 ? 之后的请求参数列表
QUERY_STRING_UNESCAPED ——没有经过编码过的请求参数
REMOTE_ADDR ——用户请求客户端 IP 地址
REMOTE_HOST ——用户发送请求的主机名
REMOTE_PORT ——用户发送请求的端口号
REMOTE_USER ——认证授权需要的发送请求的用户名
REQUEST_METHOD ——请求使用方法: GET 或者 POST
REQUEST_URI ——客户端原来访问请求的 Web 页面的 URI 地址
SCRIPT_FILENAME ——在服务器上当前页面的地址
SCRIPT_NAME ——当前页面的名称
SERVER_ADDR ——服务器所在的 IP 地址
SERVER_NAME ——服务器的主机名或者 IP 地址
SERVER_PORT ——服务器接受请求的端口号
SERVER_PROTOCOL ——服务器处理请求的协议:“ HTTP/1.1 ”
SERVER_SOFTWARE ——服务器响应客户端请求的名称和版本号
SSI中日期格式的定义:
%a 一周七天的缩写形式 Thu
%A 一周七天 Thursday
%b 月的缩写形式 Apr
%B 月 April
%d 一个月内的第几天 13
%D mm/dd/yy日期格式 04/13/00
%H 小时(24小时制,从00到23) 01
%I 小时(12小时制,从00到11) 01
%j 一年内的第几天,从01到365 104
%m 一年内的第几个月,从01到12 04
%M 一小时内的第几分钟,从00到59 10
%p AM或PM AM
%r 12小时制的当地时间,格式为 01:10:18 AM
%S 一分钟内的第几秒,从00到59 18
%T 24小时制的%H:%M:%S时间格式 01:10:18
%U 一年内的第几个星期,从00到52,以星期天作为每个星期的第一天
%w 一星期内的第一天,从0到6 4
%W 一年内的第几个星期,从00到 53,以星期一作为每个星期的第一天
%y 年的缩写形式,从00到99 00
%Y 用四位数字表示一年 2000
%Z 时区名称 MDT