配置tomcat6.41支持SSI

tomcat官方文档

CAUTION - SSI directives can be used to execute programs external to the Tomcat JVM. If you are using the Java SecurityManager this will bypass your security policy configuration in catalina.policy.

To use the SSI servlet, remove the XML comments from around the SSI servlet and servlet-mapping configuration in $CATALINA_BASE/conf/web.xml.

To use the SSI filter, remove the XML comments from around the SSI filter and filter-mapping configuration in $CATALINA_BASE/conf/web.xml.

Only Contexts which are marked as privileged may use SSI features (see the privileged property of the Context element).

让tomcat支持SSI有两种方式,一种是Servlet,另一种是Filter

基于Servlet方式:

在web.xml中找到

<!--
    <servlet>
        <servlet-name>ssi</servlet-name>
        <servlet-class>
          org.apache.catalina.ssi.SSIServlet
        </servlet-class>
        <init-param>
          <param-name>buffered</param-name>
          <param-value>1</param-value>
        </init-param>
        <init-param>
          <param-name>debug</param-name>
          <param-value>0</param-value>
        </init-param>
        <init-param>
          <param-name>expires</param-name>
          <param-value>666</param-value>
        </init-param>
        <init-param>
          <param-name>isVirtualWebappRelative</param-name>
          <param-value>false</param-value>
        </init-param>
        <load-on-startup>4</load-on-startup>
    </servlet>
-->

<!--
<servlet-mapping>
<servlet-name>ssi</servlet-name>
<url-pattern>*.shtml</url-pattern>
</servlet-mapping>
-->

去掉注释。

然后在context.xml中设置

<Context privileged="true">

Filter方式:

在web.xml找到

<!--
    <filter>
        <filter-name>ssi</filter-name>
        <filter-class>
          org.apache.catalina.ssi.SSIFilter
        </filter-class>
        <init-param>
          <param-name>contentType</param-name>
          <param-value>text/x-server-parsed-html(;.*)?</param-value>
        </init-param>
        <init-param>
          <param-name>debug</param-name>
          <param-value>0</param-value>
        </init-param>
        <init-param>
          <param-name>expires</param-name>
          <param-value>666</param-value>
        </init-param>
        <init-param>
          <param-name>isVirtualWebappRelative</param-name>
          <param-value>false</param-value>
        </init-param>
    </filter>
-->

<!--
 <filter-mapping>
        <filter-name>ssi</filter-name>
        <url-pattern>*.shtml</url-pattern>
 </filter-mapping>
-->

以及

<!--
    <mime-mapping>
        <extension>shtml</extension>
        <mime-type>text/x-server-parsed-html</mime-type>
    </mime-mapping>
-->

同样去掉注释,也需要在context.xml文件中设置

<Context privileged="true">

重启tomcat。

进行测试

index.shtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ssi 示例</title>
</head>

<body>
ssi area <!--#include virtual="ssi.html" -->
<p>

footer <!--#include virtual="footer.html" --><p>
        
        <p>
            
<!--#config timefmt="%D" -->
        Me last modified <!--#echo var="LAST_MODIFIED" -->

</body>
</html>

footer.html

<ul>
    <li>index</li>
    <li>about</li>
</ul>

ssi.html

<p>this is ssi.html file</p><p>
<p>中文</p>
ssi.html file end
<p/>

现在可以,http://localhost:8080/test/index.shtml 有结果了。

如果出现中文乱码,可以在servlet ssi或filter ssi中添加初始化参数

<init-param>
    <param-name>inputEncoding</param-name>
    <param-value>utf-8</param-value>
</init-param>
<init-param>
    <param-name>outputEncoding</param-name>
    <param-value>utf-8</param-value>
</init-param>

参考文章:http://chenlb.iteye.com/blog/227184

时间: 2024-11-02 23:06:49

配置tomcat6.41支持SSI的相关文章

apache和nginx支持SSI配置

一. 前言 SSI是一种类似于ASP的基于服务器的网页制作技术.将内容发送到浏览器之前,可以使用“服务器端包含 (SSI)”指令将文本.图形或应用程序信息包含到网页中.例如,可以使用 SSI 包含时间/日期戳.版权声明或供客户填写并返回的表单.对于在多个文件中重复出现的文本或图形,使用包含文件是一种简便的方法.将内容存入一个包含文件中即可,而不必将内容输入所有文件.通过一个非常简单的语句即可调用包含文件,此语句指示 Web 服务器将内容插入适当网页.而且,使用包含文件时,对内容的所有更改只需在一

tomcat ssi配置及升级导致ssi include错误问题解决

最近tomcat升级版本时,遇到了ssi解析的问题,记录下解决的过程,还有tomcat ssi配置的要点. tomcat 配置SSI的两种方式 Tomcat有两种方式支持SSI:Servlet和Filter. SSIServlet 通过Servlet,org.apache.catalina.ssi.SSIServlet,默认处理”*.shtml”的URL. 配置方式: 修改tomcat的 conf/web.xml文件,去掉下面配置的注释: <servlet> <servlet-name&

Centos Apache和tomcat集成配置,同时支持PHP和JAVA运行

最近由于项目的需要,需要再原来运行Tomcat服务器上支持PHP运行.很显然,PHP运行使用的是Apache服务器.虽然Tomcat也属于Apache,但是并没有现有的环境,需要我们自己手动配置.顺便说一下,我们使用的服务器环境是Centos6.4 . 我也是第一次搭建这个环境,没有经验,身边的同事也都没有整合过.所以最好的方法肯定是找度娘了. 但是,我发现网上的东西那叫一个又杂又乱,我保证你看了十篇文章,你也无法搭建成功.主要原因是转载的文章太多,而转载者也并非都是作者或者是专家.所以,文章要

nginx支持ssi使用../

让nginx支持ssi,只需要在http段里增加 ssi on; ssi_types text/shtml; 或者在需要支持的虚拟主机配置里增加也可以.server段里. 但是相对apache来说,nginx更加严格,对于include virtual=../../ 这样的使用方法是不支持的,会在error日志中报错"unsafe URI".那么nginx就不能做到这一点了吗? 打开nginx的ssi源码src/http/modules/ngx_http_ssi_filter_modu

Windows下Apache配置SSL以支持https及出错的解决办法

步骤一:安装apache,使其支持SSL,并安装php 1.安装配有SSL模块的apache,apache_2.2.8-win32-x86-openssl-0.9.8g 2.配置apache以支持SSL: 1)打开apache的配置文件conf/httpd.conf LoadModule ssl_module modules/mod_ssl.so Include conf/extra/httpd-ssl.conf 去掉两行前面的# 2)注意修改httpd-ssl.conf 文件里的两个字段: S

CentOS6.5配置vim使支持Python

CentOS6.5下开启vim对python的支持,配置方法如下: 1.检查系统已经安装了RPM包vim-enhenced; 2.复制默认的.vimrc初始化文件: # cp /usr/share/vim/vim70/vimrc_example.vim ~/.vimrc 3.配置.vimrc文件: #vi ~/.vimrc 添加以下内容: set tapstop=4 set softtapstop=4 set shifwidth=4 set expandtap set autoindent se

配置WCF同时支持WSDL和REST,swaggerwcf生成文档

配置WCF同时支持WSDL和REST,SwaggerWCF生成文档 VS创建一个WCF工程,通过NuGet添加SwaggerWcf 创建完成后通过 程序包管理控制台 pm>Install-Package SwaggerWcf 也可在 工具 -> NuGet包管理器 -> 管理解决方案的NuGet程序包 安装. 配置 首先对项目添加Global.asax文件,改动如下: protected void Application_Start(object sender, EventArgs e)

nodejs支持ssi实现include shtml页面

express 对于include的代码默认不处理,直接输出,没办法执行include的内容,但可以通过Nginx实现. 1. 配置nginx设置开启ssi模式. server { … ssi on; ssi_silent_errors on; ssi_types text/shtml; … 2.添加include页面 <!--# include virtual="/bottom.shtml" --> 或 <!--# include file="/botto

[转]配置Apache服务器支持https协议和SSL证书

建立网站时,特别是支付网站和电子商务网站,为了让客户信赖网站,让他们不把我们当做骗子,网站一般会安装SSL,我们访问网站时都是以https开头的,而不是以http开头的.下面是在windows环境下配置Apache服务器支持https协议和SSL证书. 1.配置Apache服务器支持openssl 配置Apache服务器支持https协议和SSL证书,最基本的要求是Apache包含openssl模块.在Windows下面单独安装openssl比较麻烦,最好还是安装那种绑定openssl的apac