tomcat配置ssi乱码分析

本文介绍如何在Tomcat 6中配置SSI,并通过实测验证不同编码情况下的SSI包含文件是否会出现乱码问题。测试环境包括Tomcat 6.0.33、JDK 1.6.0_23及servlets-ssi-5.0.16.jar。

摘要生成于 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、付费专栏及课程。

余额充值