Tomcat中支持shtml

来源:互联网 发布:xd软件下载 编辑:程序博客网 时间:2024/06/05 03:14
 

在目前的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