Tomcat 5和Tomcat 6配置ssi支持的区别

如题所述

1、在Tomcat中配置ssi支持的时候,Tomcat 5和Tomcat 6是有区别的,
对于Tomcat 5需要将$CATALINA_HOME/server/lib下的servlets-ssi.renametojar文件改名成servlets- ssi.jar,否者会出现java.lang.ClassNotFoundException: org.apache.catalina.ssi.SSIServlet错误。
2、而对于Tomcat 6 需要将$CATALINA_HOME/conf/context.xml中 结点添加一个属性 privileged=“true”,如果没有加的话则会出现java.lang.SecurityException: Filter of class org.apache.catalina.ssi.SSIServlet is privileged and cannot be loaded by this web application 错误。
3、配置过程:
1)先保证Tomcat可以运行,即能够正常启动
2)(5.x版本)服务器根目录下边$TOMCAT_HOME(或者$CATALINA_HOME)/server/lib/目录下边有一个文件:
servlets-ssi.renametojar,将这个文件名更名为一个jar后缀,当然最方便的方法是直接改掉文件后缀,按照Tomcat扫描jar路径类的原理来讲,直接更名为jar应该也是可以的,一般网上最常用的方法是改成:servlets-ssi.jar。
(6.x版本)服务器不需要去寻找jar文件了,直接进入下一步操作都可以。
3)找到文件:$TOMCAT_HOME(或者$CATALINA_HOME)/conf/web.xml,这里面不需要自己写入SSI Servlet和SSI Filter的配置,首先要选择使用哪种方式来配置:
Servlet配置:
  在这个文件里面,找到以下注释代码段,将注释代码段去掉:
Servlet配置——
<!--
<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>
-->
ServletMapping配置——
<!--
<servlet-mapping>
<servlet-name>ssi</servlet-name>
<url-pattern>*.shtml</url-pattern>
</servlet-mapping>
-->
Filter配置:
Filter的相关配置——
<!--
<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>0</param-value>
</init-param>
</filter>
-->
FilterMapping相关配置——
<!--
<filter-mapping>
<filter-name>ssi</filter-name>
<url-pattern>*.shtml</url-pattern>
</filter-mapping>
-->
只是Filter配置里面还需要取消另外一个注释,下边的MIME TYPE的服务器支持相关注释
<!--
<mime-mapping>
<extension>shtml</extension>
<mime-type>text/x-server-parsed-html</mime-type>
</mime-mapping>
-->
  上边的注释取消过后,配置就基本好了,在Tomcat 5.x的版本中配置的时候,到这个地步就结束了。
但是在Tomcat 6.x版本中可能还会出现下边的异常:
  java.lang.SecurityException: Filter of class org.apache.catalina.ssi.SSIFilter(SSIServlet) is privileged and cannot be loaded by this web application
4)所以正对这点6.x还有一个步骤,在$TOMCAT_HOME(或者$CATALINA_HOME)/conf/context.xml 文件中在<Context>结点添加一个属性privileged="true",然后再启动就不会抛出上边的异常了。
5)若要解决乱码问题,根据上边文档需要修改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>
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-05-19
在tomcat中配置ssi支持的时候,tomcat 5和tomcat 6是有区别的,先说相同的地方,找到$CATALINA_HOME/conf/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>0</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>
然后对于tomcat 5需要将$CATALINA_HOME/server/lib下的servlets-ssi.renametojar文件改名成servlets- ssi.jar,否者会出现java.lang.ClassNotFoundException: org.apache.catalina.ssi.SSIServlet错误。
而对于tomcat 6 需要将$CATALINA_HOME/conf/context.xml中 结点添加一个属性 privileged="true"变成,如果没有加的话则会出现java.lang.SecurityException: Filter of class org.apache.catalina.ssi.SSIServlet is privileged and cannot be loaded by this web application 错误。本回答被提问者和网友采纳

Tomcat开启SSI功能
2、修改tomcat根目录下的conf文件夹中的web.xml,将SSI的Servlet的配置取消注释,并增加编码配置,否则可能出现乱码 3、取消SSI Servlet的mapping注释,增加 .html,因为我们是在html中引入shtml的,如果不配置 .html,则tomcat不会处理html中的ssi指令 ...

ssi框架中struts spring ibatis分别的作用及其表现哪些
SSI框架你可以这么理解 1. tomcat在没有ssi框架的时候是用servlet来处理请求的,用response直接返回结果界面的 2. 有了struts, tomcat不用servlet了, 而是用action, action是struts的东西, 你可以简单的把action当做servlet, 实际上action是多线程的, servlet只有一个。。。(这些东西就深了, 你可...

ApacheTomcat6高级编程的书籍章节
10.1.3 Comet异步IO支持10.1.4 本地APR连接器10.2 配置Tomcat支持CGI10.3 配置Tomcat以支持SSI10.3.1 配置Tomcat6SSIServlet10.3.2 配置Tomcat6SSI过滤器10.4 在代理服务器后运行Tomcat10.5 性能调整10.5.1 可调整的配置属性10.5.2 TCP\/IP栈调整技巧10.6 前端Tomcat6和Web服务器10.7 本章小结第11章 Tomcat与ApacheH...

查看嵌套网页url方法
1、SSI (Server Side Include)SSI是一种简单的动态网页制作技术,但是有些服务器要求网页文件扩展名为.shtml才能识别文件中SSI命令。所以如果你的SSI命令看起来不工作,先别放弃,试着把文件扩展名改为.shtml,也许会成功。如果知道自己的服务器是否支持SSI,请看另一篇文章。使用SSI一个局限性是页面一定要放在网页服务...

Java相关概念以及之间的关系:struts,tomcat,servlet?
tomcat 是小型的服务器 把 做的JSP项目发布到他tomca 上 通过、浏览器就可以浏览自己做的项目了 ,struts是SSH框架的一种 Servlet是什么 Servlet是使用Java Servlet 应用程序设计接口(API)及相关类和方法的 Java 程序。除了 Java Servlet API,Servlet 还可以使用用以扩展和添加到 API 的 Java 类软件...

shtml和html有什么区别
SHTML和HTML的区别,如果用一句话来解释就是:SHTML 不是HTML而是一种服务器 API,shtml是服务器动态产成的html. 虽然两者都是超文本格式,但shtml是一种用于SSI技术的文件。 也就是Server Side Include--SSI 服务器端包含指令。 如果Web Server有SSI功能的话(大多数(尤其是基于Unix平台)的WEB服务器如Netscape Enterp...

Tomcat与JavaWeb开发技术详解的目录
26.4.5 测试配置 62826.5 Tomcat集群 62826.5.1 配置集群系统的负载平衡器 62926.5.2 配置集群管理器 63126.6 小结 63526.7 思考题 636第27章 在Tomcat中配置SSI 637首先介绍了SSI的概念及SSI指令的用法,然后介绍了在Tomcat中配置SSI的方法。27.1 SSI简介 63727.1.1 #echo指令 63827.1.2 #include指令 64027.1...

怎样用linux系统架设自己的网站
1) 几乎可以运行在所有的计算机平台上.2) 简单而且强有力的基于文件的配置(HTTPD.CONF)3) 支持通用网关接口(CGI)4) 支持虚拟主机.5) 支持HTTP 认证.6) 集成PERL.7) 可以通过WEB 浏览器监视服务器的状态, 可以自定义日志.8) 支持服务器端包含命令(SSI).9) 支持安全SOCKET 层(SSL).10) 具有...

请问shtml是什么样的网页?和html,asp,php等有什么不同?
就是一条SSI指令,其作用是将"info.htm"的内容拷贝到当前的页面中,当访问者来浏览时,会看到其它HTML文档一样显示info.htm其中的内容。 其它的SSI指令使用形式基本同刚才的举例差不多,可见SSI使用只是插入一点代码而已,使用形式非常简单。 当然,如果WEB服务器不支持SSI,它就会只不过将它当作注释信息,直接跳过其中的...

servlet是不是一种特殊的javabean?
是,他们的确有关联,都是用java语言编写的一个类.本质的区别在于而servlet是用在WEB的,并且需要tomcat来运行.而javabean就不依赖了. 本回答被提问者采纳 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 176124 2008-09-28 知道答主 回答量:10 采纳率:0% 帮助的人:0 我也去答题访问个人页 ...

相似回答
大家正在搜