程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 解決Tomcat修改get提交請求亂碼問題

解決Tomcat修改get提交請求亂碼問題

編輯:關於JAVA

解決Tomcat修改get提交請求亂碼問題。本站提示廣大學習愛好者:(解決Tomcat修改get提交請求亂碼問題)文章只能為提供參考,不一定能成為您想要的結果。以下是解決Tomcat修改get提交請求亂碼問題正文


1:表單提交controller獲得中文參數後亂碼解決方案

注意: jsp頁面編碼設置為UTF-8

***************form表單提交方式為必須為post,get方式下面spring編碼過濾器不起效果

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 <form action="/user/addUser" name="userForm" method="post">

修改web.xml,增加編碼過濾器,如下(注意,需要設置forceEncoding參數值為true)

<filter> 
  <filter-name>characterEncodingFilter</filter-name> 
  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
  <init-param> 
   <param-name>encoding</param-name> 
   <param-value>UTF-8</param-value> 
  </init-param> 
  <init-param> 
   <param-name>forceEncoding</param-name> 
   <param-value>true</param-value> 
  </init-param> 
</filter> 
<filter-mapping> 
  <filter-name>characterEncodingFilter</filter-name> 
  <url-pattern>/*</url-pattern> 
</filter-mapping>

tomacat對GET和POST請求處理方式是不同的,要處理針對GET請求的編碼問題,則需要改tomcat的server.xml配置文件,如下:

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

改為:

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"/>

**************注意Eclipse中Tomcat,server,clean功能會將原先配置還原

如果你是更改的tomcat安裝目錄的server.xml配置文件,其實是因為eclipse在運行項目時是用的eclipse中配置的tomcat,那麼問題就好解決了,打開eclipse中的tomcat配置文件,改為如下即可:

注:配置useBodyEncodingForURI="true"後,可以解決普通get請求的中文亂碼問題,但是對於通過ajax發起的get請求中文依然會亂碼,請把useBodyEncodingForURI="true"改為URIEncoding="UTF-8"即可。

以上所述是小編給大家介紹的Tomcat修改get提交請求亂碼問題,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

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