今天遇到一个jsp页面中包含一个.shtml静态页面时,中文出现乱码,在jsp页面设置编码为utf-8也没有用,网上一搜才知道
运行.shtml的页面需要开启tomcat的SSI功能,具体修改如下:
主要修改tomcat的web.xml文件
<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>
<param-name>isVirtualWebappRelative</param-name>
<param-value>0</param-value>
</init-param>
<load-on-startup>4</load-on-startup>
</servlet>
<load-on-startup>4</load-on-startup>
在这一行的上面加上如下代码:
<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>
另外还需要去掉servlet SSI映射的注释
<servlet-mapping>
<servlet-name>ssi</servlet-name>
<url-pattern>*.shtml</url-pattern>
</servlet-mapping>
那jsp页面包含.shtml中文乱码问题就解决了