标签:插入 remote cap 变量赋值 启用 rect set you 服务器
SSI(服务器端嵌入)是一组放在 HTML 页面中的指令,当服务器向客户端访问提供这些页面时,会解释执行这些指令。它们能为已有的 HTML 页面添加动态生成内容,不需要通过 CGI 程序来或其他的动态技术来重新改变整个页面。
如果利用 Tomcat 作为 HTTP 服务器并需要 SSI 支持时,可以添加 SSI 支持。通常,如果你运行的不是像 Apache 那样的服务器,就通过开发来实现这种支持。
Tomcat SSI 支持实现了与 Apache 完全一致的 SSI 指令。关于使用 SSI 指令的详细信息,可参考Apache 的 SSI 简介。
SSI 支持可以有两种方式来实现:servlet 或过滤器。你只能利用其中的一种方式来提供 SSI 支持。
基于 servlet 的 SSI 支持是通过 org.apache.catalina.ssi.SSIServlet
类来实现的。一般来说,这个 servlet 映射至 URL 模式"*.shtml"。
基于过滤器的 SSI 支持则利用 org.apache.catalina.ssi.SSIFilter
类来实现。一般而言,该过滤器映射至 URL 模式 "*.shtml",但是它也可以被映射至 "*",因为它会基于 MIME 类型选择性地启用/禁用对 SSI 的处理。初始参数 contentType
允许你将 SSI 处理应用于 JSP 页面、JavaScript 内容以及其他内容中。
默认 Tomcat 是不支持 SSI 的。
警告:SSI 指令可用于执行 Tomcat JVM 之外的程序。如果使用 Java SecurityManager,它会绕过你在 catalina.policy
中配置的安全策略。
为了使用 SSI servlet,要从 $CATALINA_BASE/conf/web.xml
中去除 SSI servlet 及 servlet 映射配置旁边的 XML 注释。
为了使用 SSI 过滤器,要从 $CATALINA_BASE/conf/web.xml
中去除 SSI 过滤器及过滤器映射配置旁边的 XML 注释。
只有标明为 privileged 的上下文才可以使用 SSI 功能(参看 Context 元素的 privileged 属性)。
以下这些 servlet 初始化参数可以配置 SSI servlet 的行为:
exec
命令?默认为 false。以下这些过滤器初始化参数可以配置 SSI 过滤器的行为:
exec
命令?默认为 false。指令采取 HTML 注释的形式。在将页面发送到客户端之前,解读指令,并用所得结果来替换指令。指令的一般形式为:
<!--#directive [parm=value] -->
这些指令包括:
<!--#config timefmt="%B %Y" -->
用于设定日期格式以及其他一些 SSI 处理的项目。<!--#echo var="VARIABLE_NAME" -->
将被变量值所取代。<!--#include virtual="file-name" -->
插入内容。<!--#flastmod file="filename.shtml" -->
返回文件最后修改的时间。<!--#fsize file="filename.shtml" -->
返回文件大小。<!--#printenv -->
返回所有定义变量的列表。<!--#set var="foo" value="Bar" -->
为用户自定义变量赋值。<!--#config timefmt="%A" -->
<!--#if expr="$DATE_LOCAL = /Monday/" -->
<p>Meeting at 10:00 on Mondays</p>
<!--#elif expr="$DATE_LOCAL = /Friday/" -->
<p>Turn in your time card</p>
<!--#else -->
<p>Yoga class at noon.</p>
<!--#endif -->
关于使用 SSI 指令的详细信息,可参考Apache 的 SSI 简介。
SSI servlet 当前能实现下列变量:
变量名 | 描述 |
---|---|
AUTH_TYPE | 用于这些用户的验证类型:BASIC、FORM,等等。 |
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 所提供路径的转换版本 |
QUERY_STRING | 在 URL 中,跟在 ?后面的查询字符串 |
QUERY_STRING_UNESCAPED | 带有所有经过 \ 转义的shell 元字符的未解码查询字符串 |
REMOTE_ADDR | 用户作出请求的远端 IP 地址 |
REMOTE_HOST | 用户作出请求的远端主机名 |
REMOTE_PORT | 用户作出请求的远端 IP 地址的端口号 |
REMOTE_USER | 用户的认证名称 |
REQUEST_METHOD | 处理信息请求的方法:GET 、POST ,等等 |
REQUEST_URI | 客户端所请求的最初页面 |
SCRIPT_FILENAME | 当前页面在服务器上的位置 |
SCRIPT_NAME | 页面名称 |
SERVER_ADDR | 服务器的 IP 地址 |
SERVER_NAME | 服务器的主机名或 IP 地址 |
SERVER_PORT | 服务器接收请求的端口 |
SERVER_PROTOCOL | 服务器所使用的协议,比如:HTTP/1.1 |
SERVER_SOFTWARE | 应答客户端请求的服务器软件的名称与版本号 |
UNIQUE_ID | 用于识别当前会话(如果存在)的令牌 |
标签:插入 remote cap 变量赋值 启用 rect set you 服务器
原文地址:https://www.cnblogs.com/pingxin/p/p00057.html