tomcat配置ssi乱码分析

本文介绍如何在Tomcat 6中配置SSI,并通过测试验证不同编码情况下的SSI表现。重点在于配置步骤及解决乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1         Tomcat6 中配置ssi

1.1 导入servlets-ssi-5.0.16.jar到tomcat安装目录/lib下,网上说tomcat自带ssi包,但我没有找到

1.2 tomcat安装目录/conf/web.xml中将ssi的servlet 和servlet-mapping的注释标签去掉

1.3 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>

 

1.4 tomcat安装目录/conf/context.xml中设置红色部分:

<Context privileged="true">

    <WatchedResource>WEB-INF/web.xml</WatchedResource>

</Context>

 

这样tomcat下的ssi就配置成功了!

2         ssi乱码测试

2.1 测试环境

tomcat-6.0.33

jdk1.6.0_23

servlets-ssi-5.0.16.jar

2.2 测试文件

index.shtml

<!DOCTYPEhtml>

<html>

  <head>

   <meta http-equiv="content-type"content="text/html; charset=utf-8"/>

    <title>index.html</title>

    <meta http-equiv="keywords"content="keyword1,keyword2,keyword3"/>

    <meta http-equiv="description"content="this is my page"/>

 

  </head>

 

  <body>

    This is my HTML page. <br>

    包含页面<br/>

    <!--#include file="content.html"-->

  </body>

</html>

 

content.html

<h1>被包含页面content.html</h1>

2.3 测试结果,箭头经过的地方表示使用相应的编码

2.3.1      index.shtml文件是utf-8编码,charset=utf-8content.html文件是utf-8编码 

2.3.2      index.shtml文件是utf-8编码,charset=gb2312content.html文件是ansi编码

 

2.3.3      index.shtml文件是utf-8编码,charset=utf-8content.html文件是ansi编码

 

2.3.4      index.shtml文件是utf-8编码,charset=gb2312content.html文件是utf-8编码

 

2.4 测试结论

本文只对index.shtml的utf-8编码情况进行测试,没有对index.shtml的ansi编码情况进行测试。因为开发中文件多使用utf-8编码,所以目前的结果还是有意义的。

 

基于以上四个测试结果,可以看出页面正常显示的关键是以下四个编码要一致,当前测试环境下outputEncoding不影响页面正常显示,但是为了安全起见还是设置成一致的编码为好。

charset=

content.html文件编码

inputEncoding

 

基于2.3.3和2.3.4的测试结果可以看出:

charset和inputEncoding编码一致时,index.shtml内容正常

content.html和inputEncoding编码一致时,content.html内容正常

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值