程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 解決Apache Tomcat中shtml文件include jsp文件時中文顯示亂碼的

解決Apache Tomcat中shtml文件include jsp文件時中文顯示亂碼的

編輯:關於JAVA
 

今天在Apache Tomcat中調試jsp程序時遇到一個問題,我發現隨便建一個shtml文件,然後裡面include(包含)一個jsp文件,jsp文件的內容很簡單,直接輸出一段中文字,發現在浏覽器中運行輸出的都是亂碼,當然我的Apache Tomcat中已經開啟了SSI功能,是支持shtml的。於是在網上搜索答案,說在jsp文件的頭部加入一行語句:<%@ page contentType="text/html; charset=gbk"%>,我加了之後依然無效,百思不得其解。最終經過無數次調試後才有結果。

這裡我省略在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>

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>

代碼中的gbk可根據你實際情況來改變,因為我的網頁都是使用的gbk編碼,所以這裡我用gbk;如果你的網頁使用的是utf-8編碼,那你設置成utf-8即可。

4、重啟Apache Tomcat即可。

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved