`

SSI介绍 在项目中使用SSI技术提高服务器解释效率

    博客分类:
  • web
 
阅读更多
SSI(Server Side Include),通常称为服务器端嵌入,使用SSI技术的文件默认的后缀名为.shtml。将内容发送到浏览器之前,可以使用“服务器端包含 (SSI)”指令将文本、图形或应用程序信息包含到网页中。
SSI最长用的指令是<!--#include virtual="itzhai/foot.jsp"-->,其作用类似于JSP中的incluce指令。
SSI相对于JSP的include标签的优点:
① SSI是一种通用技术,它不受限于运行环境,在Java,CGI,dotnet,ASP,PHP环境下都可以使用SSI技术。
② 解释SSI的效率要比解析JSP的效率块很多,原因是JSP需要用到Servlet引擎进行解释,所以效率比较低。
解析SSI文件的最佳服务器是Apache Http Server。
SSI在项目中的配置
开启SSI功能:
① 到%Tomcat%/conf/web.xml文件设置,下有两种设置方法:
使用Servlet:
去掉name为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>
    <init-param>
      <param-name>inputEncoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
    <init-param>
      <param-name>outputEncoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
      <param-name>isVirtualWebappRelative</param-name>
      <param-value>0</param-value>
    </init-param>
    <load-on-startup>4</load-on-startup>
</servlet>

注意:这里添加了inputEncoding和outputEncoding两个属性设置编码

使用Filter

去掉filter-name为ssi的filter注释:
<filter>
	<filter-name>ssi</filter-name>
	<filter-class>
	  org.apache.catalina.ssi.SSIFilter
	</filter-class>
	<init-param>
	  <param-name>contentType</param-name>
	  <param-value>text/x-server-parsed-html(;.*)?</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>0</param-value>
	</init-param>
</filter>

② 到%Tomcat%/conf/context.xml文件中,在<Context>结点中添加如下属性:
privileged=”true”
<Context privileged=”true”>
这个属性指定我们发布的web应用有权限使用容器的Servlet
SSI的相关指令
指令基本格式:
<!--#指令名称="指令参数"-->
注意:<!—与#符号间没有空格,SSI指令是大小写敏感的,参数必须是小写字母才会其作用。
#include指令:
<!--#include file="foot.jsp"-->
file文件名是一个相对路径,且该文件只能是#include指令所在文档的目录的同级目录或其子目录,而不能是上一级目录
<!--#include virtual="itzhai/foot.jsp"-->
virtual文件名是Web站点上的虚拟目录的完整路径。
注意:① 文件名必须带有扩展名 ②被包含的文件可以具有任何文件扩展名
#flastmod指令:
<!--#flastmod file="filename.ext"-->
#fsize指令:
<!--#fsize file="filename.ext"-->
文件的长度
#echo指令:
<!--#echo var="变量名"-->
<!--#echo var="DOCUMENT_NAME"-->
该文档的名称
<!--#echo var="DOCUMENT_URI"-->
当前文件的虚拟路径
<!--#echo var="REMOTE_ADDR"-->
用户的IP地址
<!--#echo var="QUERY_String_UNESCAPED"-->
显示用户发送的查询字符串
<!--#config timefmt="%Y/%m/%d %a %H:%M:%S"-->
设置格式化时间
<!--#echo var="DATE_LOCAL"-->
显示当前时间
#set指令:
<!--#set var="变量名" value="变量值"-->
给变量赋值
#if指令:
<!--#if expr="$变量名=\"arthinking\""-->
User:arthinking
<!--#elif expr="$变量名=\"Jason\""-->
User:Jason
<!--#else-->
other
<!--#endif-->
分享到:
评论

相关推荐

    ssi项目实例

    9. **优化技巧**:学习如何合理使用SSI提高网站维护效率,避免过度依赖动态脚本语言,保持页面加载速度。 10. **与其他技术结合**:理解SSI可以与PHP、ASP、JSP等动态语言配合使用,进一步增强网页的动态性。 通过...

    SSI整合项目 SSI系统绞手架 SSI框架整合

    在这个"SSI整合项目 SSI系统绞手架 SSI框架整合"中,我们将探讨如何利用SSI来搭建一个高效、可扩展的系统框架。 首先,让我们了解一下SSI的基本用法。SSI指令通常以`&lt;!--#`开头,`--&gt;`结尾,例如`&lt;!--#include ...

    SSI框架项目案例

    同时,这也是一次了解服务器端处理机制的好机会,对于网页开发者来说,掌握SSI技术可以提高工作效率,尤其是在维护大量包含相同元素的页面时。 为了更好地学习这个案例,你可以: 1. 解压文件,查看"example"目录...

    ssi完整项目

    通过这些案例,学习者不仅可以了解SSI的基本用法,还能学习到如何在现代Web开发环境中使用SSI与其他流行框架相结合,提高开发效率。这个完整的项目无疑是一个宝贵的学习资源,可以帮助初学者快速掌握SSI并逐步深入到...

    ssi整合 jar包

    3. **配置与集成**:在Java Web应用中,将SSI库集成到项目中,通常需要在`web.xml`中配置对应的Servlet,设置其映射路径和参数,以便在请求到达时触发SSI处理。 4. **性能考虑**:虽然SSI可以简化网页更新,但过度...

    SSI项目实例

    SSI主要应用于网页的静态化处理,它可以将多个静态页面合并,插入日期、时间、文件属性等动态信息,提高网站的更新效率。通过SSI,我们可以避免手动更新每个页面,只需更改一个包含文件,所有引用该包含文件的页面...

    基于ssi的小项目

    通过这个小项目,开发者可以了解到如何在Java Web环境中集成和使用SSI,以及如何与Struts1这样的MVC框架协作,提高开发效率。同时,对于初学者来说,这也是一个很好的实践平台,能够深入理解服务器端包含的工作原理...

    SSI整合开发按项目

    在"SSI整合开发按项目"的上下文中,我们主要探讨如何在项目中有效地运用SSI技术来提升网站的维护效率和用户体验。 1. **SSI基本原理**: SSI允许在HTML文件中插入其他文件、执行命令或者显示服务器端的变量。通过...

    springmvc3+spring+mybatis3 ssi整合项目 注解实现

    在"Spring MVC + Spring + MyBatis 3 SSI整合项目"中,SSI可能指的是Server-Side Includes,一种在服务器端动态组合HTML页面的技术。然而,由于标签中只提到"ssi",这里我们假设它代表了Spring、Spring MVC和MyBatis...

    ssi使用的所有jar包

    SSI(Server Side Include)是一种在Web服务器端处理的页面包含技术,它允许开发者在HTML页面中插入动态内容,如服务器端脚本、文本、图像等。这个压缩包包含的是一系列用于SSI框架开发的jar包,这些jar包是构建基于...

    SSI类管理系统框架

    8. **现代Web框架的对比**:随着像Angular、React和Vue.js这样的前端框架兴起,SSI的使用在现代Web开发中可能减少。然而,在某些场景下,如小型或低流量的管理系统,或者作为辅助工具,SSI仍然有其独特的优势。 综...

    ext+ssi框架集成系统

    在实际应用中,开发者需要熟悉EXT.js的组件体系和API,以及SSI的指令语法,以便正确地在前端页面中嵌入服务器端的动态内容。同时,还需要注意性能优化,避免过度使用SSI导致服务器负担过重。通过合理的设计和配置,...

    ssi整合基本jar

    SSI(Server-Side Include)是一种在Web服务器端执行的简单脚本语言,它允许网页开发者在HTML文件中插入动态内容,如时间戳、文件内容、其他网页等,而无需使用更复杂的服务器端技术如PHP、JSP或ASP。在本案例中,...

    自己总结的ssh,ssi项目部署文档和实例文档

    SSH(Secure Shell)是一种网络协议,用于安全地远程登录到服务器进行管理操作,而SSI(Server Side Include)是一种早期的Web服务器技术,允许在静态HTML页面中嵌入动态内容。 **SSH(Secure Shell)** SSH主要...

    SSI.zip_SSI_SSI Injection代码

    提供的"SSI.zip"文件包含了关于SSI整合的案例,其中的"SSI.doc"文档可能详细阐述了如何在实际项目中使用SSI,包括如何设置SSI、编写包含指令、处理用户输入以及如何防止注入攻击等方面。阅读这个文档可以帮助你理解...

    SSI框架实例

    在本实例中,我们看到的是一个使用SSI框架构建的实际项目,它包含了基本的用户登录以及数据操作(增删改)功能。这个实例对于初学者来说是一个很好的学习资源,因为它演示了如何将SSI技术应用于实际的Web开发中。 ...

    SSI 增删改查 范例

    - SSI可以作为Java Web应用中的辅助技术,与Servlet和JSP配合使用,提高开发效率。 3. **iBatis框架** - iBatis是一个SQL映射框架,它允许开发者将SQL语句直接写在配置文件中,解耦了SQL与Java代码,简化了数据...

    SSI框架代码样例

    在这个项目中,开发者可能已经整合了SSI与其他技术,如log4j和Struts2,来创建更复杂的Web应用。 描述中提到"项目中新增了log4j的配置",这意味着项目采用了Apache Log4j作为日志管理系统。Log4j是一个功能强大的...

    前端开源库-ssi

    描述中的 "前端开源库-ssissi,服务器端包括nodejs" 指出这个项目不仅限于前端,还涉及到服务器端的实现,特别是使用了Node.js。Node.js是一个基于Chrome V8引擎的JavaScript运行环境,常用于构建服务器端和网络应用...

    ssi+json+jquery 案例

    这个项目可能是为了演示如何在Web开发中结合这三个技术,以提高效率和交互性。 SSI,即Server-Side Includes,是一种简单的服务器端脚本语言,常用于动态生成网页内容。它允许开发者在HTML文件中插入如时间戳、文件...

Global site tag (gtag.js) - Google Analytics