1. SSI,通常称为“服务器端包含”技术。使用了SSI技术的文件默认的后缀名为.shtml,SSI技术通过在html文件中加入SSI指令让web服务器在输出标准HTML代码之前先解释SSI指令,并把解释完后的输出结果和HTML代码一起返回给客户端。
2. SSI技术的优点:SSI技术是通用技术,它不受限于运行环境,在java、dotnet、CGI、ASP、PHP下都可以使用SSI技术;解释SSI的效率比解释JSP的效率快很多,因为JSP规范提供了太多的功能,这些功能都需要servlet引擎一一进行解释,所以效率比较低
3. 解析SSI文件最佳的服务器:Apache Http Server
4. Tomcat5.5下配置使用SSI:
①:把$CATALINA_HOME/server/lib/servlets-ssi.renametojar的名称改为servlets-ssi.jar
②:设置$CATALINA_HOME/conf/context.xml文件,在<Context>节点添加privileged="true"属性,该属性指定我们发布的web应用有权限使用容器的servlet。当你如果需要在$CATALINA_HOME/conf/server.xml添加其它web应用时,最好也为<Context>加上privileged="true"属性,如下:
<Context debug="0" path="" docBase="E:/website" privileged="true"/>
③:在$CATALINA_HOME/ conf/web.xml开启SSI的功能,Tomcat提供了两种开启SSI的方式:一种是servlet,另一种是filter。这里我们使用Servlet开启SSI功能。
在$CATALINA_HOME/ conf/web.xml文件中找到<servlet-name>ssi</servlet-name> ,把对该Servlet的注释去掉,然后根据shtml文件的编码格式指定inputEncoding 和outputEncoding 属性值
5. SSI指令基本格式:<!--#指令名称="指令参数“ -->
注:<!--与#号间无空格,只有SSI指令与参数间存在空格。上面的标点="",一个也不能少。SSI指令是大小写敏感的,因此参数必须是小写才会起作用
6. SSI指令:
1)#include:<!--#include file="文件名称"--> file 文件名是一个相对路径,该路径相对于使用 #include 指令的文档所在的目录;<!--#include virtual="文件名称"--> virtual 文件名是 Web 站点上的虚拟目录的完整路径
2)<!--#flastmod file="文件名称"--> 文件最近更新日期;<!--#fsize file="文件名称"-->
文件的长度
3)<!--#echo var="变量名称"--> 将环境变量插入到页面中
示例:
本文档名称:<!--#echo var="DOCUMENT_NAME"-->
你的IP地址:<!--#echo var="REMOTE_ADDR"-->
<!--#config timefmt="%Y-%m-%d %a %H:%M:%S"-->
现在时间:<!--#echo var="DATE_LOCAL"-->
4)<!--#set var="变量名" value="变量值"--> 给变量赋值
5)<!--#if expr="$变量名=/"变量值A/""-->
显示内容
<!--#elif expr="$变量名=/"变量值B/""-->
显示内容
<!--#else-->
显示内容
<!--#endif"--> //创建可以改变数据的页面,这些数据根据使用if语句时计算的要求予以显示
2. SSI技术的优点:SSI技术是通用技术,它不受限于运行环境,在java、dotnet、CGI、ASP、PHP下都可以使用SSI技术;解释SSI的效率比解释JSP的效率快很多,因为JSP规范提供了太多的功能,这些功能都需要servlet引擎一一进行解释,所以效率比较低
3. 解析SSI文件最佳的服务器:Apache Http Server
4. Tomcat5.5下配置使用SSI:
①:把$CATALINA_HOME/server/lib/servlets-ssi.renametojar的名称改为servlets-ssi.jar
②:设置$CATALINA_HOME/conf/context.xml文件,在<Context>节点添加privileged="true"属性,该属性指定我们发布的web应用有权限使用容器的servlet。当你如果需要在$CATALINA_HOME/conf/server.xml添加其它web应用时,最好也为<Context>加上privileged="true"属性,如下:
<Context debug="0" path="" docBase="E:/website" privileged="true"/>
③:在$CATALINA_HOME/ conf/web.xml开启SSI的功能,Tomcat提供了两种开启SSI的方式:一种是servlet,另一种是filter。这里我们使用Servlet开启SSI功能。
在$CATALINA_HOME/ conf/web.xml文件中找到<servlet-name>ssi</servlet-name> ,把对该Servlet的注释去掉,然后根据shtml文件的编码格式指定inputEncoding 和outputEncoding 属性值
5. SSI指令基本格式:<!--#指令名称="指令参数“ -->
注:<!--与#号间无空格,只有SSI指令与参数间存在空格。上面的标点="",一个也不能少。SSI指令是大小写敏感的,因此参数必须是小写才会起作用
6. SSI指令:
1)#include:<!--#include file="文件名称"--> file 文件名是一个相对路径,该路径相对于使用 #include 指令的文档所在的目录;<!--#include virtual="文件名称"--> virtual 文件名是 Web 站点上的虚拟目录的完整路径
2)<!--#flastmod file="文件名称"--> 文件最近更新日期;<!--#fsize file="文件名称"-->
文件的长度
3)<!--#echo var="变量名称"--> 将环境变量插入到页面中
示例:
本文档名称:<!--#echo var="DOCUMENT_NAME"-->
你的IP地址:<!--#echo var="REMOTE_ADDR"-->
<!--#config timefmt="%Y-%m-%d %a %H:%M:%S"-->
现在时间:<!--#echo var="DATE_LOCAL"-->
4)<!--#set var="变量名" value="变量值"--> 给变量赋值
5)<!--#if expr="$变量名=/"变量值A/""-->
显示内容
<!--#elif expr="$变量名=/"变量值B/""-->
显示内容
<!--#else-->
显示内容
<!--#endif"--> //创建可以改变数据的页面,这些数据根据使用if语句时计算的要求予以显示