這裏我省略在Apache Tomcat中開啓SSI功能用來支持shtml的方法,詳情請參看本站文章:《開啓Apache Tomcat中的SSI功能(用來支持shtml)》
其實造成shtml文件include jsp文件時中文顯示亂碼的原因不是jsp代碼的問題,問題還是出在Apache Tomcat的配置上,具體的解決方法如下:
1、找到$tomcat/conf/web.xml文件(其中的$tomcat爲Apache Tomcat的安裝路徑)
2、用記事本打開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>
<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>
3、在上面代碼<load-on-startup>4</load-on-startup>的上面加入如下代碼:
<init-param>
<param-name>inputEncoding</param-name>
<param-value>gbk</param-value>
</init-param>
<init-param>
<param-name>outputEncoding</param-name>
<param-value>gbk</param-value>
</init-param>
<param-name>inputEncoding</param-name>
<param-value>gbk</param-value>
</init-param>
<init-param>
<param-name>outputEncoding</param-name>
<param-value>gbk</param-value>
</init-param>
代碼中的gbk可根據你實際情況來改變,因爲我的網頁都是使用的gbk編碼,所以這裏我用gbk;如果你的網頁使用的是utf-8編碼,那你設置成utf-8即可。
4、重啓Apache Tomcat即可。