解決Java J2EE亂碼問(wèn)題的方法
亂碼是j2ee中一個(gè)比較常見的問(wèn)題。遇到一兩個(gè)問(wèn)題的情況下,可以用new String(request.getParameter(xxx).getBytes("ISO-8859-1"),"UTF-8")來(lái)解決。遇到多的情況下,就最好用過(guò)濾器。
過(guò)濾器只需要注意2個(gè)地方即可——類和web.xml
1.在web.xml上面的發(fā)布如下:
<fileter>
<!-- 類名 -->
<filter-name>SetCharsetEncodingFilter</filter-name>
<!-- 類的路徑 -->
<filter-class>SetCharacter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<filter-mapping>
<filter-name>SetCharsetEncodingFilter</filter-name>
<!-- 設(shè)置所有的文件遇到過(guò)濾器都要被攔截 -->
<url-pattern>/*</url-pattern>
</filter-mapping>
</fileter>
2、過(guò)濾類
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class SetCharacter implements Filter {
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;
public void init(FilterConfig arg0) throws ServletException {
this.encoding = arg0.getInitParameter("encoding");
String value = arg0.getInitParameter("imnore");
if (value == null) {
this.ignore = true;
} else if (value.equalsIgnoreCase("true")) {
this.ignore = true;
} else if (value.equalsIgnoreCase("yes")) {
this.ignore = true;
}
}
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
if (ignore || (arg0.getCharacterEncoding() == null)) {
String encoding = selectEncoding(arg0);
if (encoding != null)
arg0.setCharacterEncoding(encoding);
}
arg2.doFilter(arg0, arg1);
}
private String selectEncoding(ServletRequest arg0) {
return (this.encoding);
}
public void destroy() {
this.encoding = null;
this.filterConfig = null;
}
}
在web.xml文件中,以下語(yǔ)法用于定義映射:
1、以“/”開頭和以“/*”結(jié)尾的是用來(lái)做路徑映射。
2、以前綴“*.”開頭的是用來(lái)做擴(kuò)展映射。
3、以“/”是用來(lái)定義default servlet映射。
4、剩下的都是用來(lái)定義詳細(xì)映射。比如:/aa/bb/cc.action
以上就是解決Java J2EE亂碼問(wèn)題的思路,分享給大家,希望大家遇到類似問(wèn)題可以順利解決。
- java 頁(yè)面url傳值中文亂碼的解決方法
- java中Filter過(guò)濾器處理中文亂碼的方法
- java連接mysql數(shù)據(jù)庫(kù)亂碼的解決方法
- JAVA POST與GET數(shù)據(jù)傳遞時(shí)中文亂碼問(wèn)題解決方法
- java頁(yè)面中文亂碼的解決辦法
- java生成csv文件亂碼的解決方法示例 java導(dǎo)出csv亂碼
- java壓縮zip文件中文亂碼問(wèn)題解決方法
- java中form以post、get方式提交數(shù)據(jù)中文亂碼問(wèn)題總結(jié)
- JavaEE中用response向客戶端輸出中文數(shù)據(jù)亂碼問(wèn)題分析
- Java中FTPClient上傳中文目錄、中文文件名亂碼問(wèn)題解決方法
相關(guān)文章
Java基礎(chǔ)知識(shí)之成員變量和局部變量淺顯易懂總結(jié)
從語(yǔ)法形式上,看成員變量是屬于類的,而局部變量是在方法中定義的變量或是方法的參數(shù);成員變量可以被public,private,static等修飾符所修飾,而局部變量不能被訪問(wèn)控制修飾符及static所修飾2021-09-09
Java實(shí)戰(zhàn)練習(xí)之撲克牌魔術(shù)
這篇文章主要介紹了Java實(shí)戰(zhàn)練習(xí)之撲克牌魔術(shù),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下2021-04-04
Springboot中Dependency not found解決方案
本文主要介紹了Springboot中Dependency not found解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11
解決idea中Springboot找不到BASE64Encoder或Decoder的jar包
這篇文章主要介紹了解決idea中Springboot找不到BASE64Encoder或Decoder的jar包,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
SpringCloud feign服務(wù)熔斷下的異常處理操作
這篇文章主要介紹了SpringCloud feign服務(wù)熔斷下的異常處理操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
java byte數(shù)組與16進(jìn)制間相互轉(zhuǎn)換的示例
這篇文章主要介紹了java byte數(shù)組與16進(jìn)制間相互轉(zhuǎn)換的示例,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2020-10-10
Java國(guó)際化簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家簡(jiǎn)單介紹了Java國(guó)際化的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
在SpringBoot環(huán)境中使用Mockito進(jìn)行單元測(cè)試的示例詳解
Mockito是一個(gè)流行的Java?mocking框架,它允許開發(fā)者以簡(jiǎn)單直觀的方式創(chuàng)建和使用模擬對(duì)象(mocks),Mockito特別適用于在Spring?Boot環(huán)境中進(jìn)行單元測(cè)試,所以本文介紹了在SpringBoot環(huán)境中使用Mockito進(jìn)行單元測(cè)試的示例,需要的朋友可以參考下2024-11-11

