日期:2014-05-17  浏览次数:20700 次

linux下 tomcat服务器中访问shtml页面失败
如题:
  原先在 windows下,我做静态化生成页面 都是.shtml的,主要是为了 所有页面嵌套 头部和底部,节省生成时间,这个没有问题,但是现在 换到linux系统下,访问生成的页面失败,请问这是为什么呢???

ps: tomcat下config/web.xml配置为ssi的servlet我已经取消注释了 。。

------解决方案--------------------
<servlet>
03. <servlet-name>ssi</servlet-name>
04. <servlet-class>
05. org.apache.catalina.ssi.SSIServlet
06. </servlet-class>
07. <init-param>
08. <param-name>buffered</param-name>
09. <param-value>1</param-value>
10. </init-param>
11. <init-param>
12. <param-name>debug</param-name>
13. <param-value>0</param-value>
14. </init-param>
15. <init-param>
16. <param-name>expires</param-name>
17. <param-value>666</param-value>
18. </init-param>
19. <init-param>
20. <param-name>isVirtualWebappRelative</param-name>
21. <param-value>0</param-value>
22. </init-param>
23. <!--- <SPAN style="COLOR: #ff0000">这里需要手动添加</SPAN> -->
24. <init-param>
25. <param-name>inputEncoding</param-name>
26. <param-value>UTF-8</param-value>
27. </init-param>
28. <init-param>
29. <param-name>outputEncoding</param-name>
30. <param-value>UTF-8</param-value>
31. </init-param>
32.
33. <load-on-startup>4</load-on-startup>
34. </servlet>
35.
36.
37.
38. <servlet-mapping>
39. <servlet-name>ssi</servlet-name>
40. <url-pattern>*.shtml</url-pattern>
41. </servlet-mapping>

------解决方案--------------------
<!--#include virtual="${ctx}/web/header.html"-->(这个不是注释,shtml导入标签就是这么写的)。

如果直接这样子使用,tomcat是无法解析的。还需要在tomcat中做两下简单的配置:

第一:在 tomcat/conf/context.xml 中加上 privileged="true" ,表示享有特权的,

第二:在 tomcat/conf/web.xml中 关于name=“ssi”的servlet 配置取消掉注释,包括该servlet的映射配置。