在目前的Tomcat中,shtml默认是不支持的,需要进行一定的配置,其实也不是非常复杂,不同的Tomcat版本,配置方法也有所不同,参考方法如下:
Tomcat5.x版的配置方法:
1.在$CATALINA_BASE/server/lib/目录下找到servlets-ssi.renametojar文件,将这个文件重命名为servlets-ssi.jar
2.在$CATALINA_BASE/conf/目录下找到web.xml文件
3.使用SSI Servlet的话删除在SSI servlet和servlet-mapping周围的注释,使用SSI filter的话删除在SSI filter和filter-mapping周围的注释
tomcat 6 SSI的配置与5.x版本不同,下面介绍tomcat 6 SSI的配置方法
Tomcat6版的配置方法:
1.在$CATALINA_BASE/conf/目录下找到web.xml文件
2.使用SSI Servlet的话删除在SSI servlet和servlet-mapping周围的注释,使用SSI filter的话删除在SSI filter和filter-mapping周围的注释
3.$CATALINA_BASE/conf/下还有一个context.xml,将里面的<Context>改成<Context privileged="true">
4.解决乱码问题
在$CATALINA_BASE/conf/web.xml中的ssi servlet配置中添加以下初始配置:
<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>
其中utf-8编码应该和你页面的编码方式一样
更多请参考官方的配置说明http://tomcat.apache.org/tomcat-6.0-doc/ssi-howto.html
经过上面的配置,包含文件:
<!--#include file="include.html" -->
<!--#include virtual="include.html" -->
才可以正常显示。
1.去掉tomcat6中conf/web.xml关于ssi的注释
===================================(1)===========================================
<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>0</param-value>
</init-param>
<load-on-startup>4</load-on-startup>
</servlet>
=====================================(2)==========================================
<servlet-mapping>
<servlet-name>ssi</servlet-name>
<url-pattern>*.shtml</url-pattern>
</servlet-mapping>
=================================tomcat6重启 出错=================================
java.lang.SecurityException: Servlet of class org.apache.catalina.ssi.SSIServlet is
privileged and cannot be loaded by this web application
==================================修改context.xml==================================
在标签<Context>里加入 privileged="true"
变为:
<Context privileged="true">
==========================tomcat6重启 以运行包含页面 但乱码=======================
修改conf/web.xml
在conf/web.xml中的ssi servlet配置中添加以下初始配置:
<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>
修改为:
<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>0</param-value>
</init-param>
<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>
<load-on-startup>4</load-on-startup>
</servlet>
===========================重启tomcat6 仍乱码===================
=====================过一两分钟再重启tomcat6 不乱码了===================
本篇文章来源于 www.phpzy.com 原文链接:http://www.phpzy.com/php/1139259.html