解決Java J2EE亂碼問題的方法
亂碼是j2ee中一個(gè)比較常見的問題。遇到一兩個(gè)問題的情況下,可以用new String(request.getParameter(xxx).getBytes("ISO-8859-1"),"UTF-8")來(lái)解決。遇到多的情況下,就最好用過濾器。
過濾器只需要注意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è)置所有的文件遇到過濾器都要被攔截 -->
<url-pattern>/*</url-pattern>
</filter-mapping>
</fileter>
2、過濾類
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亂碼問題的思路,分享給大家,希望大家遇到類似問題可以順利解決。
- java 頁(yè)面url傳值中文亂碼的解決方法
- java中Filter過濾器處理中文亂碼的方法
- java連接mysql數(shù)據(jù)庫(kù)亂碼的解決方法
- JAVA POST與GET數(shù)據(jù)傳遞時(shí)中文亂碼問題解決方法
- java頁(yè)面中文亂碼的解決辦法
- java生成csv文件亂碼的解決方法示例 java導(dǎo)出csv亂碼
- java壓縮zip文件中文亂碼問題解決方法
- java中form以post、get方式提交數(shù)據(jù)中文亂碼問題總結(jié)
- JavaEE中用response向客戶端輸出中文數(shù)據(jù)亂碼問題分析
- Java中FTPClient上傳中文目錄、中文文件名亂碼問題解決方法
相關(guān)文章
spring中websocket定時(shí)任務(wù)實(shí)現(xiàn)實(shí)時(shí)推送
本文主要介紹了spring中websocket定時(shí)任務(wù)實(shí)現(xiàn)實(shí)時(shí)推送,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
java 快速實(shí)現(xiàn)異步調(diào)用的操作方法
這篇文章主要介紹了java 如何快速實(shí)現(xiàn)異步調(diào)用方法,今天我們就來(lái)了解下 CompletableFuture,它Java 8引入的一種功能強(qiáng)大的異步編程工具,可以用于實(shí)現(xiàn)復(fù)雜的異步操作和處理鏈?zhǔn)降漠惒饺蝿?wù),需要的朋友可以參考下2023-07-07
Java?Timer與TimerTask類使程序計(jì)時(shí)執(zhí)行
這篇文章主要介紹了Java定時(shí)器中的Timer和TimerTask的原理。Timer主要用于Java線程里指定時(shí)間或周期運(yùn)行任務(wù),它是線程安全的,但不提供實(shí)時(shí)性(real-time)保證。接下來(lái)就跟隨小編一起深入了解Timer和TimerTask吧2022-02-02
JAVA區(qū)間值判斷[10,20)的實(shí)現(xiàn)
本文主要介紹了JAVA區(qū)間值判斷[10,20)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09
基于java實(shí)現(xiàn)websocket代碼示例
這篇文章主要介紹了基于java實(shí)現(xiàn)websocket代碼示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12
Spring Boot的Maven插件Spring Boot Maven plu
Spring Boot的Maven插件Spring Boot Maven plugin以Maven的方式提供Spring Boot支持,Spring Boot Maven plugin將Spring Boot應(yīng)用打包為可執(zhí)行的jar或war文件,然后以通常的方式運(yùn)行Spring Boot應(yīng)用,本文介紹Spring Boot的Maven插件Spring Boot Maven plugin,一起看看吧2024-01-01
java實(shí)現(xiàn)簡(jiǎn)單的客戶信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單的客戶信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06

