Tomcat 各版本 配置SSI服务实现html模块化所出现的问题--超详细解决方案

进入tomcat的conf目录下进行如下配置
在context.xml中找到context节点添加privileged

<Context privileged="true"></Context> //让tomcat开启特权模式

在web.xml中配置
找到含有SSI的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>false</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>

同时还要打开SSI的<servlet-mapping>注释

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

到这是普通网上给出的, 结果是 tomcat6.0及以前的版本运行没有问题,

使用tomcat8.5 还是出不来

在web.xml中 ,

原来 tomcat 7以后追加了验证:不仅仅要取消上面的注释,还有这一块: 大概在3543行 打开注释:

重启tomcat 验证一下: 完美!

还有几个坑 给各位填一下:

你们在页面引入模块的时候切记按照我这个格式:方框的前后不可以有空格


引入时候有两种方式

<!--#include virtual="static/_header.html"-->
<!--#include file="_header.html"-->


第一种方式: 就是虚拟路径:相对于项目而言
第二种: 是和调用模块的页面在同一目录下

原文地址:https://www.cnblogs.com/baobeiqi-e/p/13327867.html