1>首先在web.xml中新增如下**
<
context-param
>
<
param-name
>
encode
param-name
>
<
param-value
>
utf-8
param-value
>
context-param
>
<
filter
>
<
filter-name
>
encodingfilter
filter-name
>
<
filter-class
>
cn.tedu.filter.encodingfilter
filter-class
>
filter
>
<
>
<
filter-name
>
encodingfilter
filter-name
>
<
url-pattern
>
/*url-pattern
>
>
2>在寫乙個類encodingfilter繼承filter,**如下public class encodingfilter
/***
過濾方法
*/public
voiddofilter(finalservletrequest request, servletresponse response,filterchainchain)throwsioexception,servletexceptionelse
if(
"getparametervalues"
.equals(method.getname()))
//返回編碼後的陣列
returnvalues;
//如果是呼叫getparametermap方法
}else
if(
"getparametermap"
.equals(method.getname()))
//將編碼後的value賦值給map
map.put(entry.getkey(),value);
}returnmap;
}else
}});
//放行時,使用**物件作為引數
chain.dofilter(proxyrequest,response);
}/**
* 銷毀方法
*/public
voiddestroy()
}寫乙個類encodingfilter繼承filter,**如下
public class encodingfilter
/***
內部類servletrequest的裝飾類 改造了獲取請求引數相關的方法 增加了亂碼解決的**
*///
classmyservletrequestextends
privateservletrequest
request
=null;
private
booleanhasnotencode
=true;
//構造器 接受傳入的request儲存在類的內部
//覆蓋和獲取請求引數相關的方法
@override
publicmapgetparametermap()
}hasnotencode
=false;}//
返回解決完亂碼的map
returnmap;
}catch(exception e)
}@override
publicstring getparametervalues(string name)
@override
publicstring getparameter(string name)
}/**
* 過濾方法
*/public
voiddofilter(finalservletrequest request, servletresponse response,filterchainchain)throwsioexception,servletexception
/*** 銷毀方法
*/public
voiddestroy()
}
處理request中文亂碼
1 當用window.open url 開啟乙個視窗的時候通過下面的方法傳值到action處理,經常會出現中文亂碼情況 url struts?method x prametera encodeuricomponent changevaluesjson 在action中通過下面的方式可以處理中文亂碼情...
request中文亂碼問題
connector connectiontimeout 20000 redirectport 8443 uriencoding utf 8 當在connector中新增 uriencoding utf 8 後,servlet中不設定編碼request.setcharacterencoding utf...
request與response亂碼處理
1.響應亂碼的處理 1.1 第一種解決響應亂碼 設定響應編碼,設定瀏覽器的編碼也是utf 8 response.setcharacterencoding utf 8 1.2 第二種解決響應亂碼 設定響應的內容型別及瀏覽器展示資訊的編碼方式 response.setcontenttype text h...