国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

【轉】 SSI(Server Side Includeds)使用詳解

2019-11-14 21:00:49
字體:
來源:轉載
供稿:網友
【轉】 SSI(Server Side Includeds)使用詳解

SSI使用入門:

什么是SSI技術?

SSI(ServeSideIncludes),通常稱之為服務器端包含,使用SSI技術文件默認的后綴名為.shtml,SSI技術通過在html文件中加入SSI指令,讓服務器端在輸出html之前解釋SSI指令,并把解釋完的結果和html代碼一同輸出給客戶端。SSI指令實在服務器端執行的。

在大部分項目中我們主要使用SSI的包含指令<!--#includevirtual="/globle/foot.jsp"-->

標簽。

為什么要使用SSI技術?

既然jsp中的<jsp:includepage="/globle/foot.jsp"/>標準動作,也提供了類似的功能。為什么我們還要使用SSI技術?

主要原因有一下幾點:

1,首先SSI技術是通用技術,不局限于運行環境,在java、dotne、CGI、aspphp都 可以使用SSI技術。

2,解釋SSI指令要比解釋JSP的效率要高,因為servlet規范提供了太多的功能。這些功能都需要好servlet引擎一一進行解釋,所以效率比較低。

在目前大部分門戶網站都是用了SSI技術,解釋SSI文件的最佳服務器是ApacheHttpServer。大型門戶網站基本上都采用ApacheServer來解釋SSI文件

在Tomcat6.x中怎么應用SSI技術:

介紹:

SSI(服務器端包含)放置在HTML頁面的指令,他們讓你動態生成的內容添加到現有的HTML頁面,而無需通過一個CGI程序,或其他動態技術服務整個頁面。當你使用Tomcat作為你的HTTP服務器,并且需要SSI支持,你能夠在Tomcat下增加SSI支持。通常,這是在開發過程中,當你不想要運行一個象ApacheWeb服務器(ApacheHttpServer)。Tomcat的SSI支持實現Apache(ApacheHttpServer)相同的SSI指令。如果在運營網站的時候應該使用ApacheHttpServer服務器解釋SSI指令,如果使用Tomcat作為解釋SSI指令的服務器,雖然可以實現但是效率低。啟用SSI支持可以通過一個servlet和Filter,但是你只能選一種方式,要么是servlet或者是filter。

基于servlet的SSI支持已經被實現通過類org.apache.catalina.ssi.SSIServlet。習慣上,servlet的映射URL路徑為"*.shtml"。

基于filter的SSI支持已經被實現通過類org.apache.catalina.ssi.SSIFilter。習慣上,servlet的映射URL路徑為"*.shtml"。盡管它可以映射到“*”,因為它會選擇性地啟用/禁用SSI的處理基于MIME類型,contentType的初始化參數允許您應用SSI處理JSP頁面,JavaScript,或者你想要的任何其他內容。

在Tomcat默認情況下禁用SSI支持。

環境搭建:

警告:

可以使用SSI指令的執行程序到TomcatJVM外部。如果你是使用JavaSecurityManager,這將繞過你的安全策略配置在catalina.policy里。

要使用SSI的servlet,刪除在$CATALINA_BASE/conf/web.xml中SSIservlet和servlet的映射周圍的XML注釋。

要使用SSI的servlet,刪除在$CATALINA_BASE/conf/web.xml中SSI過濾器和過濾器的映射周圍的XML注釋。

只有標記為特權的上下文可以使用SSI功能(見Context元素的特權屬性)。在context.xml文件中配置如下:<Context

區別:file文件名是一個相對路徑,該路徑相對于使用#include文件所在的目錄,被包含文件可以是同以目錄或者子目錄。但不能是上一級目錄;

Virtual文件名是web站點的虛擬完整路徑,如表示服務器文檔根目錄下global目錄下的foot.jsp,則為<!--#includevirtual="/globle/foot.jsp"-->

flastmod:<!--#flastmodfile="filename.shtml"-->文件最后修改時間。

fsize:<!--#fsizefile="filename.shtml"-->返回文件大小。

printenv:<!--#printenv-->返回所有定義的變量列表。

set:<!--#setvar="foo"value="Bar"-->把值賦給定義的變量。此外僅設置值字面上一樣,除了僅僅簡單的設置值外,你可以使用任何其他變量,包括環境變量。您將指定的東西是一個變量,而不是一個簡單字符串,通過在變量的名稱前加上美元符號。

ifelifendifelse:類似于java的條件語句。

例如:

為了把美元符號放入變量的值,你需要用一個反斜線轉譯美元符號

<!--#setvar="cost"value="/$100"-->

<!--#setvar="date"value="${DATE_LOCAL}_${DATE_GMT}"-->

<!--#ifexpr="$DATE_LOCAL=/Monday/"-->

<p>Meetingat10:00onMondays</p>

<!--#elifexpr="$DATE_LOCAL=/Friday/"-->

<p>Turninyourtimecard</p>

<!--#else-->

<p>Yogaclassatnoon.</p>

<!--#endif-->

環境變量:

VariableName

Description

AUTH_TYPE

Thetypeofauthenticationusedforthisuser:BASIC,FORM,etc.

CONTENT_LENGTH

Thelengthofthedata(inbytesorthenumberofcharacters)passedfromaform.

CONTENT_TYPE

TheMIMEtypeofthequerydata,suchas"text/html".

DATE_GMT

CurrentdateandtimeinGMT

DATE_LOCAL

Currentdateandtimeinthelocaltimezone

DOCUMENT_NAME

Thecurrentfile

DOCUMENT_URI

Virtualpathtothefile

GATEWAY_INTERFACE

TherevisionoftheCommonGatewayInterfacethattheserverusesifenabled:"CGI/1.1".

HTTP_ACCEPT

AlistoftheMIMEtypesthattheclientcanaccept.

HTTP_ACCEPT_ENCODING

Alistofthecompressiontypesthattheclientcanaccept.

HTTP_ACCEPT_LANGUAGE

Alistofthelanguagesthattheclientcanaccept.

HTTP_CONNECTION

Thewaythattheconnectionfromtheclientisbeingmanaged:"Close"or"Keep-Alive".

HTTP_HOST

Thewebsitethattheclientrequested.

HTTP_REFERER

TheURLofthedocumentthattheclientlinkedfrom.

HTTP_USER_AGENT

Thebrowsertheclientisusingtoissuetherequest.

LAST_MODIFIED

Lastmodificationdateandtimeforcurrentfile

PATH_INFO

Extrapathinformationpassedtoaservlet.

PATH_TRANSLATED

ThetranslatedversionofthepathgivenbythevariablePATH_INFO.

QUERY_STRING

Thequerystringthatfollowsthe"?"intheURL.

QUERY_STRING_UNESCAPED

Undecodedquerystringwithallshellmetacharactersescapedwith"/"

REMOTE_ADDR

TheremoteIPaddressoftheusermakingtherequest.

REMOTE_HOST

Theremotehostnameoftheusermakingtherequest.

REMOTE_PORT

TheportnumberatremoteIPaddressoftheusermakingtherequest.

REMOTE_USER

Theauthenticatednameoftheuser.

REQUEST_METHOD

Themethodwithwhichtheinformationrequestwasissued:"GET","POST"etc.

REQUEST_URI

Thewebpageoriginallyrequestedbytheclient.

SCRIPT_FILENAME

Thelocationofthecurrentwebpageontheserver.

SCRIPT_NAME

Thenameofthewebpage.

SERVER_ADDR

Theserver'sIPaddress.

SERVER_NAME

Theserver'shostnameorIPaddress.

SERVER_PORT

Theportonwhichtheserverreceivedtherequest.

SERVER_PROTOCOL

Theprotocolusedbytheserver.E.g."HTTP/1.1".

SERVER_SOFTWARE

Thenameandversionoftheserversoftwarethatisansweringtheclientrequest.

UNIQUE_ID

Atokenusedtoidentifythecurrentsessionifonehasbeenestablished.

SSI是當然不是對CGI或其他的技術用于生成動態網頁的替代品,不過這是一個很好的方式對于往頁面加入少量的動態的內容,并且不用做額外的工作。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 锡林郭勒盟| 太仆寺旗| 东山县| 台州市| 兰考县| 河东区| 泽库县| 济南市| 拜城县| 安平县| 东山县| 建平县| 亳州市| 龙南县| 阿拉善右旗| 新津县| 孙吴县| 卓资县| 兴文县| 泰兴市| 古蔺县| 镇巴县| 霍州市| 铜鼓县| 庐江县| 南召县| 彭水| 疏勒县| 平江县| 万年县| 航空| 孝感市| 吉林市| 保亭| 宜都市| 崇礼县| 宜章县| 沁阳市| 黔江区| 汶川县| 黎平县|