【問題管理】-- Tomcat8部署項目加載靜態資源html頁面編碼錯誤


1.問題背景及解決方式

最近在回顧Tomcat部署Web項目,自己簡單地從Tomcat的下載安裝及配置server.xml文件入手,學習Tomcat的項目部署,在自己使用IDEA創建了一個簡單地web項目,並嘗試將項目復制到Tomcat的安裝運行目錄下:.\apache-tomcat-8.5.50\webapps中,使用這種簡單地拖放式管理來驗證我項目的部署是否能被Tomcat服務器帶動並訪問,於是我創建了一個oa命名的項目,訪問hello.html頁面,項目如下:

 

 

.html文件是IDEA自動生成的HTML4文件格式,在當中我添加了<title>與<body>中的標簽頁。

 創建好oa項目之后,我將此項目存放在我Tomcat的webapps目錄下托管:

 

我在Tomcat的安裝bin目錄中點擊startup.bat運行項目之后,在google瀏覽器中打開並訪問我的hello.html頁面,尷尬的一幕發生了,頁面顯示出現了亂碼:

 

於是在網上找了一些解決方案,最終自己解決了這個問題,感謝CSDN博客博主經驗分享:

https://blog.csdn.net/jjarchu/article/details/89575277,本文的問題基於該博客做參考,並結合自己實際的問題背景進行問題總結。

具體解決方案如下:

①    首先,我在Tomcat配置文件server.xml中的啟動默認端口8080與重定向端口8443處添加了:URIEncoding="UTF-8" ;

 

 

 

 

這個因為原來默認的Tomcat8的server.xml文件中是沒有添加這個”UTF-8”的編碼的,但是很多地方web訪問的話都需要,所以直接加上,但是添加之后重啟startup.bat繼續訪問頁面,發現問題並沒有得到解決,依然是這個錯誤編碼頁面:

 

 

②   之后我借鑒了博文中的第一點,修改了我本來hello.html中的H4頁面配置,添加了:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">之后,再次重啟Tomcat並訪問頁面,問題得到解決:

 

 

 

2.問題解決方案總結

這里來總結一下Tomcat訪問靜態資源如.html、.jsp文件容易遇到的編碼問題的解決方法,匯總一下,便於查詢:

1.方式一:

在原本的.html文件中添加:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

 

2.方式二:

在Tomcat8的安裝目錄server.xml中的啟動默認端口8080與重定向端口8443處添加了:URIEncoding="UTF-8" ;

 

 

 

3.方式三:

在web.xml文件中設置編碼:

<mime-mapping>
<extension>htm</extension>
<mime-type>text/html;charset=UTF-8</mime-type>
</mime-mapping>
<mime-mapping>
<extension>html</extension>
<mime-type>text/html;charset=UTF-8</mime-type>
</mime-mapping>

 

4.方式四:

如果是IDE啟動,設置啟動參數 Debug configurations->tomat 8.0->argument

 -Dfile.encoding=UTF8;

如果是Tomcat服務形式啟動,設置catalina.bat

  set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS%" -Dfile.encoding=UTF8

 

5.方式五:

將文件用記事本或者EditPlus打開,另存為UTF-8格式

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM