设为首页 收藏本站
查看: 414|回复: 0

[经验分享] tomcat ssi配置

[复制链接]

尚未签到

发表于 2017-1-18 09:43:23 | 显示全部楼层 |阅读模式
SSI How To


 
简介
  SSI (Server Side Includes)是放置在HTML页面里的指令(directives),在HTML页面被使用的同时在服务器上被评估。这样可以让你把新产生的内容添加到现存的HTML页面上,而不需要同过CGI程序,或其他动态的技术来产生整个页面。
  当你使用Tomcat作为你的HTTP服务器,并要求有SSI支持,你可以把SSI支持添加到Tomcat里面。通常在你不想要运行一个象Apache的web服务器的开发过程中它就被完成了。
  Tomcat SSI 支持实施与Apache相同的指令。关于使用SSI指令的信息,请参看 Apache Introduction to SSI 。
  Tomcat里面SSI的支持是通过使用Servlet或过滤器来完成的。你必须选择其中一个来支持你的SSI,而不能同时使用两个。
  基于Servlet的SSI是通过实现 org.apache.catalina.ssi.SSIServlet来完成的。按照SSI的习惯,这个Servlet 然后被映射成以 "*.shtml" 结尾的 URL。
  基于过滤器的 SSI 是通过实现 org.apache.catalina.ssi.SSIFilter来完成的。 按规矩, 这个过滤器过滤所有以"*.shtml"结尾的 URL,你也可以用 "*" 映射,让它过滤所有URL,但它会根据 不同的文件种类(mime types)来决定是否启用SSI。使用初始值 contentType 可以让你决定是否要用 SSI 来处理 JSP, Javascript 或其他内容的网页。
  在缺省情况下设置是 Tomcat 不自动启用 SSI。
安装
  警告——SSI指令可以用于执行Tomcat JVM外部的程序。如果你在使用 Java SecurityManager,它可以绕过你的catalina.policy里的安全政策配置。
  把$CATALINA_BASE/server/lib/servlets-ssi.renametojar 改名为 $CATALINA_BASE/server/lib/servlets-ssi.jar 。
  如果选择使用基于Servlet的SSI,请把$CATALINA_BASE/conf/web.xml里面被注释掉的关于SSI 的 servlet 和 servlet-mapping 定义重新激活。
  如果选择基于过滤器的 SSI, 清激活 $CATALINA_BASE/conf/web.xml 关于 SSI 的 filter 和 filter-mapping的设置。 .
Servlet 设置
  有几个servlet起始参数可以用来配置SSI servlet的行为。

  • buffered - 这个servlet的输出是不是应该被缓冲?(0=false, 1=true) 默认是 0 (false).
  • debug - 由这个servlet日志的排错消息的详细程度。默认是0。
  • expires - 带有SSI指令的页面失效之前的秒数。默认行为是对于每一个请求都要评估所用的SSI指令。
  • isVirtualWebappRelative - “虚拟”SSI指令路径是否应该被解释为相对于context root,而不是server root。 (0=false, 1=true) 默认是 0 (false)。
  • inputEncoding - 如果无法决定所调用资源的文字编码,SSI应该使用的编码。缺省数值是系统的文字编码。
  • outputEncoding - 输出结果的文字编码,缺省值是 UTF-8。
过滤器设置
  过滤器的性能可通过修改几个不同的初始值来调整。

  • contentType - 用一个正则表达式来就定那种网页类型应该调用 SSI。在决定正则表达式时,不要忘记在网页内容种类的定义里可以有文字编码的选项,它的标准是:"mime/type; charset=set",其中 charset=set 是选择项。 contentType的缺省值是:"text/x-server-parsed-html(;.*)?".
  • debug - 由这个servlet日志的排错消息的详细程度。默认是0。
  • expires - 带有SSI指令的页面失效之前的秒数。默认行为是对于每一个请求都要评估所有的SSI指令。
  • isVirtualWebappRelative - “虚拟”SSI指令路径是不是应该被解释为相对于 context root相关,还是相对于server root (0=false, 1=true) 默认是 0 (false)。
Tomcat 允许 SSI 指令
  SSI是通过 嵌入在 HTML的指令来完成的实现动态网页的。这些指令在HTML里面如同HTML的注释,在运行Tomcat会把它替换为响应的内容。这些指令的标准格式是:
  <!--#directive [parm=value] -->
  有效指令有:

  • config - <!--#config timefmt="%B %Y" --> 用来指定SSI输出的时间日期或其他内容的格式
  • echo - <!--#echo var="VARIABLE_NAME" --> 替换所指定的数值
  • exec - 运行所在系统的命令
  • include - <!--#include virtual="file-name" --> 插入内容
  • flastmod - <!--#flastmod file="filename.shtml" --> 文件最后修改时间
  • fsize - <!--#fsize file="filename.shtml" --> 文件大小
  • printenv - <!--#printenv --> 打印所有环境变量
  • set - <!--#set var="foo" value="Bar" --> 用来为用户定义变量赋值
  • if elif endif else - 用于条件判断,例如: <!--#config timefmt="%A" -->
    <!--#if expr="$DATE_LOCAL = /Monday/" -->
    <p>Meeting at 10:00 on Mondays</p>
    <!--#elif expr="$DATE_LOCAL = /Friday/" -->
    <p>Turn in your time card</p>
    <!--#else -->
    <p>Yoga class at noon.</p>
    <!--#endif -->
阅读更多SSI相关内容:  Apache SSI入门
Variables
  SSI Servlet 现在支持下列变量:
变量名称描述
AUTH_TYPE用来验证用户的方法,可以是:BASIC, FORM, 等
CONTENT_LENGTH从FORM传来的数据长度,单位是 bytes 或字符的个数
CONTENT_TYPEMIME种类, 例如 "text/html"
DATE_GMT现在的国际标准时间 GMT
DATE_LOCAL当地时间
DOCUMENT_NAME调用的文件名
DOCUMENT_URI文件的虚拟路径
GATEWAY_INTERFACE服务器如果激活了 CGI 的话,显示支持的 CGI 版本,如 "CGI/1.1"
HTTP_ACCEPT所有允许的 MIME 种类
HTTP_ACCEPT_ENCODING列出所有客户端允许的压缩方式
HTTP_ACCEPT_LANGUAGE列出所有客户端接受的语言
HTTP_CONNECTION客户端接受的连接管理方法,如 "Close" or "Keep-Alive"
HTTP_HOST用户请求访问的网站
HTTP_REFERER连接到本网页的网页地址,用户来自于的网页网页
HTTP_USER_AGENT浏览器的名称
LAST_MODIFIED当前文件的最后修改时间
PATH_INFO传给服务器的路径信息
PATH_TRANSLATED经过转换的 PATH_INFO 路径
QUERY_STRING浏览器地址栏里 "?" 之后的值
QUERY_STRING_UNESCAPEDUndecoded query string with all shell metacharacters escaped with "\"
REMOTE_ADDR用户的IP地址
REMOTE_HOST用户的网址
REMOTE_PORT用户所用的端口号码
REMOTE_USER经确认的用户名字
REQUEST_METHOD用户请求访问所使用的方法,如 "GET", "POST" 等
REQUEST_URI用户所要求访问的网址
SCRIPT_FILENAME目前用户实际访问的网页在服务器上的文件名
SCRIPT_NAME网页的文件名
SERVER_ADDR服务器的IP地址
SERVER_NAME服务器电脑的名称或IP
SERVER_PORT服务器等待用户访问的端口
SERVER_PROTOCOL服务器使用的协议,如: "HTTP/1.1"
SERVER_SOFTWARE服务器所使用的软件名称和版本数
UNIQUE_ID服务器与用户目前如果开始会话的特有ID

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-330059-1-1.html 上篇帖子: Tomcat过滤器 下篇帖子: tomcat context笔记
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表