1. 程式人生 > >springmvc中Post和get亂碼的解決

springmvc中Post和get亂碼的解決

第一種方法依賴於tomcate6中webapps\examples\WEB-INF\classes\filters下SetCharacterEncodingFilter這個類

實現方法在web.xml 中新增以下程式碼

<filter>
  <filter-name>CharacterEncodingFilter</filter-name>
  <filter-class>com.filter.CharacterEncodingFilter</filter-class>
 <init-param>
 <param-name>encoding</param-name>
 <param-value>UTF-8</param-value>
 </init-param>
  </filter>
 <filter-mapping>
  <filter-name>CharacterEncodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
  </filter-mapping>

第二種使用spring中自帶的一個設定編碼的過濾器

實現方法在web.xml中新增以下程式碼

<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>
  </filter>
  <filter-mapping>
  <filter-name>CharacterEncodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
  </filter-mapping>

第三種方法因為在配置springmvc時寫過如下程式碼

<servlet>
  <servlet-name>springmvc</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:springmvc-servlet.xml</param-value>
  </init-param>
  
  </servlet>
  <servlet-mapping>
  <servlet-name>springmvc</servlet-name>
  <url-pattern>*.action</url-pattern>
  </servlet-mapping>

因此第三種方法可以修改DispatcherServlet類  修改如下:


  
import javax.servlet.ServletConfig;  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
import org.springframework.web.servlet.DispatcherServlet;  
  
public class EncodingDispatcherServlet extends DispatcherServlet {  
 private String encoding;  
  
 public void init(ServletConfig config) throws ServletException {  
  encoding = config.getInitParameter("encoding");  
 super.init(config);  
 }  
  
 protected void doService(HttpServletRequest request, HttpServletResponse response) throws Exception {  
 request.setCharacterEncoding(encoding);  
 super.doService(request, response);  
 }  
}

然後將web.xml中配置改為:

 <servlet>
  <servlet-name>springmvc</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:springmvc-servlet.xml</param-value>
  </init-param>
  <init-param>
 <param-name>encoding</param-name>
 <param-value>UTF-8</param-value>
    </init-param>
  
  </servlet>
  <servlet-mapping>
  <servlet-name>springmvc</servlet-name>
  <url-pattern>*.action</url-pattern>
  </servlet-mapping>

get亂碼提交:

第一種方法:

修改tomcat配置檔案新增編碼與工程編碼一致,如下:

<Connector URIEncoding="utf-8"connectionTimeout="20000" port="8080"protocol="HTTP/1.1" redirectPort="8443"/>

第二種方法提交

String userName new;

String(request.getParamter("userName").getBytes("ISO8859-1"),"utf-8")

相關推薦

springmvcPostget亂碼解決

第一種方法依賴於tomcate6中webapps\examples\WEB-INF\classes\filters下SetCharacterEncodingFilter這個類 實現方法在web.xml 中新增以下程式碼 <filter>   <filter

SpringMVCpostget亂碼解決

一丶亂碼原因 由於中介軟體為Tomcat,使用者請求和返回的響應都需要經過tomcat,tomcat預設編碼為ISO-8859-1和我們程式的編碼(一般為UTF-8)不同,導致post、get請求亂碼。 二丶解決方案 Post亂碼解決方案: 在web

SpringMVCPOSTGET亂碼規範解決

POST亂碼 方法:在web.xml新增post亂碼filter <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-cla

java路徑總結&servletpostget亂碼解決

路徑: 一般包括:   超連結:   form表單:   重定向:   轉發:   包含:  ServletContext物件獲得資源:   url-pat

AJAX - Http post get 的區別

安全 ext tex 不同方法 per 信息 行修改 進行 TE HTTP: post 和 get 是 HTTP 協議中的兩種方法。瀏覽器和服務器的交互是通過 HTTP 協議執行的,他的全稱為Hyper Text Transfer Protocol(超文本傳輸協議)。HTT

HTTPpostget傳參的區別

 插一下別的知識:HTTP的請求方式 HTTP一共有8中請求方式:1.OPTIONS    2.HEAD    3.GET    4.POST    5.PUT    6.DELETE  

Jmeterpostget請求的區別(五)

POST和GET的區別 1、原理不同: 一般我們在瀏覽器輸入一個網址訪問網站都是GET請求;post請求引數放在body data中。get多少次都不會改變頁面呈現的資料,post會。 2、資料量 GET傳送的資料量較小,不能大於2KB。POST傳送的資料量較大,一般預設為不受

ApacheHttpClientpostget的請求

ApachehttpClient是谷歌官方的http請求,Eclipse自帶有,但是AS好像沒有(還是我的AS版本問題)。它比httpURLConnection請求更簡單。 post請求相對get就是引數有變化 public class MainActi

CGI程式POSTGET訊息的處理

 資料傳送格式 當用戶填完表格並按了SUBMIT按鈕後,Web瀏覽器並非將使用者所填的資料直接送給Web伺服器, 而先要經過一定的編碼處理。 Web瀏覽器總是將資料按照“變數名=變數值”這樣的資料對格式進行編碼,並且每對資料之間 用一個&符號相連線。其中“變數名”

Androidpostget的提交方式【三種】

向伺服器提交資料有兩種方式,post和get。兩者的區別主要有三點,安全性、長度限制、資料結構。其中get請求安全性相比較而言較差,資料長度受瀏覽器位址列限制,沒有方法體。兩種都是較為重要的資料提交方式。現簡單介紹一下三種post和get的提交方式。無論是哪種方法實現post和get,get 的訪問路徑都

淺析HTTPPOSTGET區別並用Python模擬其響應請求

    最近在幾周在做手遊崩潰資訊收集和上傳,拿到崩潰資訊後,使用的是HTTP的POST方法上傳到公司共用的伺服器的,因此做簡單總結。本文首先簡單介紹了HTTP協議,主要說明了POST方法和GET方法的區別;然後用Python實現了 對POST方法和GET方法的響應;最後用

httppostget的區別

GET和POST是HTTP協議中的兩種傳送請求的方法。HTTP是基於TCP/IP的關於資料如何在全球資訊網中如何通訊的協議。所以GET和POST的底層都是TCP/IP,也就是說,GET/POST都是TC

springMVCpost提交中文亂碼過濾器配置

web.xml檔案中配置: <!-- 配置springMVC編碼過濾器 --> <filter> <filter-name>CharacterEncodingFilter</filter-name> &l

javapost亂碼get亂碼解決方法

1.Post亂碼問題解決方案 在web.xml中加入: <filter> <filter-name>CharacterEncodingFilter</filter-na

解決全站字符亂碼POSTGET中文編碼問題)

{} tomcat ont throws turn nco cat doget pro 1 說明 亂碼問題: 獲取請求參數中的亂碼問題; POST請求:request.setCharacterEncoding(“utf-8”); GET請求:new String(r

解決postget請求的亂碼問題

亂碼問題 1.解決post中文亂碼問題 2.解決get請求中文引數亂碼 1.解決post中文亂碼問題 新增一個spring提供的過濾器 , 將編碼設定為utf-8 在web.xml中加入以下配置資訊

如何解決POSTGET方式的中文亂碼問題

一:確保表單所在的頁面按照指定的字符集開啟★在HTML頁面中使用meta標記可以確保瀏覽器按照指定的字符集進行解碼頁面,並限定表單提交時的資料編碼方式:<meta http-equiv="content-type" content="text/html;charset=utf-8">:完成ISO-

解決 postget請求亂碼

post亂碼 在web.xml新增post亂碼filter 在web.xml中加入: <filter> <filter-name>CharacterEncodingFilter

Java後臺傳送Postget請求 (並解決返回值亂碼問題)

public class HttpRequest { /** * 向指定URL傳送GET方法的請求 * * @param url * 傳送請求的URL * @param param * 請求引數,

過濾器-解決全站字元亂碼POSTGET中文編碼問題)

servlet: POST:request.setCharacterEncoding(“utf-8”); GET: String username = request.getParameter(“username”); username = new String(use