在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ SSI(服務(wù)器端嵌入)
連接器
JSPs
重寫機(jī)制
CGI
Tomcat Manager
Windows 認(rèn)證
代理支持
虛擬主機(jī)
安全性注意事項(xiàng)
如何在 Maven 中使用 Tomcat 庫(kù)
安裝
MBean 描述符
JNDI 資源
類加載機(jī)制
Tomcat Web 應(yīng)用部署
基于 APR 的原生庫(kù)
負(fù)載均衡器
安全管理
附加組件
監(jiān)控與管理
Windows 服務(wù)
集群化與會(huì)話復(fù)制
高級(jí) IO 機(jī)制
SSI(服務(wù)器端嵌入)
WebSocket 支持
JDBC 數(shù)據(jù)源
日志機(jī)制
默認(rèn) Servlet
SSL/TLS 配置
Tomcat 的 JDBC 連接池
第一個(gè)應(yīng)用
簡(jiǎn)介
Realm 配置

SSI(服務(wù)器端嵌入)

簡(jiǎn)介

SSI(服務(wù)器端嵌入)是一組放在 HTML 頁(yè)面中的指令,當(dāng)服務(wù)器向客戶端訪問提供這些頁(yè)面時(shí),會(huì)解釋執(zhí)行這些指令。它們能為已有的 HTML 頁(yè)面添加動(dòng)態(tài)生成內(nèi)容,不需要通過 CGI 程序來或其他的動(dòng)態(tài)技術(shù)來重新改變整個(gè)頁(yè)面。

如果利用 Tomcat 作為 HTTP 服務(wù)器并需要 SSI 支持時(shí),可以添加 SSI 支持。通常,如果你運(yùn)行的不是像 Apache 那樣的服務(wù)器,就通過開發(fā)來實(shí)現(xiàn)這種支持。

Tomcat SSI 支持實(shí)現(xiàn)了與 Apache 完全一致的 SSI 指令。關(guān)于使用 SSI 指令的詳細(xì)信息,可參考Apache 的 SSI 簡(jiǎn)介。

SSI 支持可以有兩種方式來實(shí)現(xiàn):servlet 或過濾器。你只能利用其中的一種方式來提供 SSI 支持。

基于 servlet 的 SSI 支持是通過 org.apache.catalina.ssi.SSIServlet 類來實(shí)現(xiàn)的。一般來說,這個(gè) servlet 映射至 URL 模式"*.shtml"。

基于過濾器的 SSI 支持則利用 org.apache.catalina.ssi.SSIFilter 類來實(shí)現(xiàn)。一般而言,該過濾器映射至 URL 模式 "*.shtml",但是它也可以被映射至 "*",因?yàn)樗鼤?huì)基于 MIME 類型選擇性地啟用/禁用對(duì) SSI 的處理。初始參數(shù) contentType 允許你將 SSI 處理應(yīng)用于 JSP 頁(yè)面、JavaScript 內(nèi)容以及其他內(nèi)容中。

默認(rèn) Tomcat 是不支持 SSI 的。

安裝

警告:SSI 指令可用于執(zhí)行 Tomcat JVM 之外的程序。如果使用 Java SecurityManager,它會(huì)繞過你在 catalina.policy 中配置的安全策略。

為了使用 SSI servlet,要從 $CATALINA_BASE/conf/web.xml 中去除 SSI servlet 及 servlet 映射配置旁邊的 XML 注釋。

為了使用 SSI 過濾器,要從 $CATALINA_BASE/conf/web.xml 中去除 SSI 過濾器及過濾器映射配置旁邊的 XML 注釋。

只有標(biāo)明為 privileged 的上下文才可以使用 SSI 功能(參看 Context 元素的 privileged 屬性)。

Servlet 配置

以下這些 servlet 初始化參數(shù)可以配置 SSI servlet 的行為:

  • buffered 是否應(yīng)緩存該 servlet 的輸出?(0 = false,1 = true)默認(rèn)為 0(false)。
  • debug 調(diào)試 servlet 所記錄信息的調(diào)試細(xì)節(jié)度。默認(rèn)為 0。
  • expires 包含 SSI 指令的頁(yè)面失效的秒數(shù)。默認(rèn)行為針對(duì)的是每個(gè)請(qǐng)求所應(yīng)執(zhí)行的所有 SSI 指令。
  • isVirtualWebappRelative “虛擬”的 SSI 指令路徑是否應(yīng)被解釋為相對(duì)于上下文根目錄的相對(duì)路徑(而不是服務(wù)器根目錄)?默認(rèn)為 false。
  • inputEncoding 如果無(wú)法從資源本身確定編碼,則應(yīng)指定給 SSI 資源的編碼。默認(rèn)為系統(tǒng)默認(rèn)編碼。
  • outputEncoding 用于 SSI 處理結(jié)果的編碼。默認(rèn)為 UTF-8。
  • allowExec 是否啟用 exec 命令?默認(rèn)為 false。

過濾器配置

以下這些過濾器初始化參數(shù)可以配置 SSI 過濾器的行為:

  • contentType 在應(yīng)用 SSI 處理之前必須匹配的正則表達(dá)式模式。在設(shè)計(jì)自己的模式時(shí),不要忘記 MIME 內(nèi)容類型后面可能會(huì)帶著可選的字符集:“mime/type; charset=set”。默認(rèn)為 “text/x-server-parsed-html(;.*)?”。
  • debug 調(diào)試 servlet 所記錄信息的調(diào)試細(xì)節(jié)度。默認(rèn)為 0。
  • expires 包含 SSI 指令的頁(yè)面失效的秒數(shù)。默認(rèn)行為針對(duì)的是每個(gè)請(qǐng)求所應(yīng)執(zhí)行的所有 SSI 指令。
  • isVirtualWebappRelative “虛擬”的 SSI 指令路徑是否應(yīng)被解釋為相對(duì)于上下文根目錄的相對(duì)路徑(而不是服務(wù)器根目錄)?默認(rèn)為 false。
  • allowExec 是否啟用 exec 命令?默認(rèn)為 false。

指令

指令采取 HTML 注釋的形式。在將頁(yè)面發(fā)送到客戶端之前,解讀指令,并用所得結(jié)果來替換指令。指令的一般形式為:

<!--#directive [parm=value] -->

這些指令包括:

  • config <!--#config timefmt="%B %Y" --> 用于設(shè)定日期格式以及其他一些 SSI 處理的項(xiàng)目。
  • echo <!--#echo var="VARIABLE_NAME" --> 將被變量值所取代。
  • exec 在主機(jī)系統(tǒng)上用于運(yùn)行命令。
  • include <!--#include virtual="file-name" --> 插入內(nèi)容。
  • flastmod <!--#flastmod file="filename.shtml" --> 返回文件最后修改的時(shí)間。
  • fsize <!--#fsize file="filename.shtml" --> 返回文件大小。
  • printenv <!--#printenv --> 返回所有定義變量的列表。
  • set <!--#set var="foo" value="Bar" --> 為用戶自定義變量賦值。
  • if elif endif else 用于生成條件部分,例如:
<!--#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 -->

關(guān)于使用 SSI 指令的詳細(xì)信息,可參考Apache 的 SSI 簡(jiǎn)介

變量

SSI servlet 當(dāng)前能實(shí)現(xiàn)下列變量:

變量名 描述
AUTH_TYPE 用于這些用戶的驗(yàn)證類型:BASIC、FORM,等等。
CONTENT_LENGTH 從表單傳入數(shù)據(jù)的長(zhǎng)度(以字節(jié)或字符數(shù))
CONTENT_TYPE 查詢數(shù)據(jù)的 MIME 類型。比如:text/html
DATE_GMT 以格林威治標(biāo)準(zhǔn)時(shí)間(GMT)表示的當(dāng)前時(shí)間與日期
DATE_LOCAL 以本地時(shí)區(qū)表示的當(dāng)前日期與時(shí)間
DOCUMENT_NAME 當(dāng)前文件名
DOCUMENT_URI 文件的虛擬路徑
GATEWAY_INTERFACE 服務(wù)器所使用的通用網(wǎng)關(guān)接口(CGI)的修訂版本,比如:CGI/1.1
HTTP_ACCEPT 客戶端能夠接受的 MIME 類型列表
HTTP_ACCEPT_ENCODING 客戶端能夠接受的壓縮類型列表
HTTP_ACCEPT_LANGUAGE 客戶端能夠接受的語(yǔ)言類型列表
HTTP_CONNECTION 如何管理與客戶端的連接:"Close" 或 "Keep-Alive"
HTTP_HOST 客戶端所請(qǐng)求的網(wǎng)站
HTTP_REFERER 客戶端鏈接的文檔的 URL
HTTP_USER_AGENT 客戶端用于處理請(qǐng)求的瀏覽器
LAST_MODIFIED 當(dāng)前文檔的最后修改日期與時(shí)間
PATH_INFO 傳入 servlet 的額外路徑信息
PATH_TRANSLATED 變量 PATH_INFO 所提供路徑的轉(zhuǎn)換版本
QUERY_STRING 在 URL 中,跟在 ?后面的查詢字符串
QUERY_STRING_UNESCAPED 帶有所有經(jīng)過 \ 轉(zhuǎn)義的shell 元字符的未解碼查詢字符串
REMOTE_ADDR 用戶作出請(qǐng)求的遠(yuǎn)端 IP 地址
REMOTE_HOST 用戶作出請(qǐng)求的遠(yuǎn)端主機(jī)名
REMOTE_PORT 用戶作出請(qǐng)求的遠(yuǎn)端 IP 地址的端口號(hào)
REMOTE_USER 用戶的認(rèn)證名稱
REQUEST_METHOD 處理信息請(qǐng)求的方法:GET、POST,等等
REQUEST_URI 客戶端所請(qǐng)求的最初頁(yè)面
SCRIPT_FILENAME 當(dāng)前頁(yè)面在服務(wù)器上的位置
SCRIPT_NAME 頁(yè)面名稱
SERVER_ADDR 服務(wù)器的 IP 地址
SERVER_NAME 服務(wù)器的主機(jī)名或 IP 地址
SERVER_PORT 服務(wù)器接收請(qǐng)求的端口
SERVER_PROTOCOL 服務(wù)器所使用的協(xié)議,比如:HTTP/1.1
SERVER_SOFTWARE 應(yīng)答客戶端請(qǐng)求的服務(wù)器軟件的名稱與版本號(hào)
UNIQUE_ID 用于識(shí)別當(dāng)前會(huì)話(如果存在)的令牌