通过shtml实现重构页面模块化构建的相关设置

一、介绍:
   SSI是Server Side Includes的缩写,是嵌入到HTML页面的一组指令的集合。在返回请求的页面(包含SSI指令)前,服务器会处理这些指令,并用处理的结果替换指令,然   后把页面返回。这样就允许在HTML页面中添加动态产生的内容。
   SSI是向页面中添加小的信息片段的很好的方法。如果页面的大部分都是产生的则需要选择其它的解决方案。
二、主要用途
   目前,主要有以下几种用用途:
  1、显示服务器端环境变量<#echo>
  2、将文本内容直接插入到文档中<#include>
  3、显示WEB文档相关信息<#flastmod #fsize> (如文件制作日期/大小等)
  4、直接执行服务器上的各种程序<#exec>(如CGI或其他可执行程序)
  5、设置SSI信息显示格式<#config>(如文件制作日期/大小显示方式) 高级SSI<XSSI>可设置变量使用if条件语句。
三、设置Tomcat
      Tomcat对SSI提供了支持,但在默认的情况下这种支持是关闭的。如果你用Tomcat做为HTTP服务器并且需要SSI,那么需要自己来设置。

四、设置方法如下:

         1、Tomcat5.X             

              在$CATALINA_BASE/server/lib/目录下找到servlets-ssi.renametojar文件
              将这个文件重命名为servlets-ssi.jar
              在$CATALINA_BASE/conf/目录下找到web.xml文件
              使用SSI Servlet就删除在SSI servlet和servlet-mapping周围的注释
              使用SSI filter就删除在SSI filter和filter-mapping周围的注释

         2、Tomcat6.X

              $CATALINA_BASE/conf/servlet.xml下的当前项目的 Context中加入了privileged="true"的属性。

         3、weblogic8.X

              1) 使用FRAME框架 
              2) 配置web.xml配置文件

              web.xml:   
              <servlet>  
                  <servlet-name>shtml</servlet-name>  
                  <servlet-class>weblogic.servlet.ServerSideIncludeServlet</servlet-class>  
              </servlet>   
              <servlet-mapping>  
                  <servlet-name>shtml</servlet-name>  
                  <url-pattern>*.shtml</url-pattern>   
              </servlet-mapping>

五、乱码的解决:在
$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应该与你页面的编码方式相同
在shtml页面里, 就可以引用静态文件了
<!--#include file="test.html"--> 相对路径

<!--#include virtual="/assets/inc/footer.html"--> 绝对路径

原文地址:https://www.cnblogs.com/terrylin/p/2754935.html