一、介绍:
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"--> 绝对路径