Tomcat中SSI的详细配置

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Tomcat报告——Tomcat中SSI的配置

1.简介:

SSI全称(Server Side Includes)是在HTML静态页面中使用的指令,当页面在服务端执行的时候是可以进行服务端解析的。这种方式可以让我们在存在的HTML页面里面分块动态生成内容而不在整个执行了CGI等服务端技术的基础之上进行动态页面服务。在返回请求的页面(包含SSI指令)前,服务器会处理这些指令,并用处理的结果替换指令,然后把页面返回。我们使用Tomcat作为Http 服务器的时候,我们需要使用SSI可以在Tomcat添加对SSI的支持。

Tomcat服务器的SSI支持的实现方式和Apache里面的SSI指令一样,在Tomcat里面实现SSI支持使用的是一个Servlet和一个Filter(Servlet和Filter的基本信息参考JSP教程),我们可以使用其中一种方式来进行SSI支持的配置,但是不需要两个同时配置,同时配置是否会产生冲突我不太清楚,一般情况下配置一个就可以了。

实现SSI支持的Servlet实现使用了org.apache.catalina.ssi.SSIServlet,另外需要在Servlet的路径解析里面添加映射规则“*.shtml”。

实现SSI支持的Filter使用了org.apache.calalina.ssi.SSIFilter。另外,在Filter 路径解析里面也需要添加映射规则“*.shtml”,而且在Filter配置的时候需要在映射规则里面添加能够执行的mime type,contentType的初始化参数允许你执行服务器下边的资源。在Tomcat里面默认是禁用了SSI的。

注意:SSI指令执行Tomcat外部的JVM,如果我们使用Java的安全管理器需要在calalina.policy文件里面进行配置。若要使用SSI Servlet和SSI Filter,直接在服务器的路径$CATALINA_BASE/conf/web.xml文件里面将SSI的注释去掉。需要注意的是在Tomcat服务器里面仅仅只有标记了privileged的Context可以使用SSI 功能。(*:当privileged设置为true的时候,才允许Tomcat的Web应用使用容器内的Servlet,Tomcat的文档里面讲了使用的lib的域,每个应用程序如果不设置这个属性,是不能访问容器内的Servlet的,这里应该指代的是全局的Servlet)否则这里会遇到异常:

ng.SecurityException: Filter of class

org.apache.catalina.ssi.SSIFilter(SSIServlet)is privileged and cannot be loaded by this web application

2.服务器配置属性:

在配置SSI Servlet的时候需要用到的参数(init parameters)如下:

buffered:是需要将输入保存到缓冲区(0=false,1=true)默认是0(false)

debue:配置调试日志的记录级别,默认0;

expires:SSI包含某个页面的超时配置,默认行为是所有的SSI指令在每一次请求中执行

isVirtualWebappRelative:是针对Tomcat Context的根目录(虚拟目录)进行相对路径解析还是针对Tomcat的服务器目录进行相对路径解析(0=false,1=true)默认是0,不使用虚拟目录。

inputEncoding:如果资源不是自身的,资源来自于容器外部,可以针对外部资源进行编码的设置,以什么变法方式输入资源,默认使用的是资源所在平台使用的编码。

outputEncoding:SSI执行结果输出的编码方式,默认是UTF-8的。

配置SSI Filter的时候需要使用以下参数(init paramters):

contextType:配置一个可以匹配的正则表达式规则提供给SSI执行使用,若自定义自己的匹配规则,需要在mime 类型里面配置下边的可选项:在form里面设置“mime/type;charset=set”默认的是“text/x-server-parsed-html(;.*)?”debug:同上

expires:同上

isVirtualWebappRelative:同上

3.指令描述:

SSI是被HTML文档内需要进行处理的包含部分的SSI Servlet调用的。这些指令是HTML文档的注释形式,这些指令在将内容发送到客户端之前进行内容的替换。标准格式如下:

这些指令包括:

config:设置日期格式一起被SSI处理的其他数据() echo:将会被变量的值替换掉()

exec:用来执行服务器端的命令

include:包含某些内容()

flastmod:返回某个文件最后一次修改的时间()

fsize:返回某个文件的大小()

printenv:返回所有定义的变量()

set:用来为定义的变量赋值()

if elif endif else:创建条件分支语句

Apache SSI官方文档

4.SSI Servlet里面的变量如下:

相关文档
最新文档