日期:2014-05-17  浏览次数:20641 次

解决Tomcat中jsp页面包含shtml中文乱码问题

今天遇到一个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中文乱码问题就解决了

?