解決Java J2EE亂碼問(wèn)題的方法
亂碼是j2ee中一個(gè)比較常見(jiàn)的問(wèn)題。遇到一兩個(gè)問(wèn)題的情況下,可以用new String(request.getParameter(xxx).getBytes("ISO-8859-1"),"UTF-8")來(lái)解決。遇到多的情況下,就最好用過(guò)濾器。
過(guò)濾器只需要注意2個(gè)地方即可——類(lèi)和web.xml
1.在web.xml上面的發(fā)布如下:
<fileter> <!-- 類(lèi)名 --> <filter-name>SetCharsetEncodingFilter</filter-name> <!-- 類(lèi)的路徑 --> <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ò)濾類(lèi)
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、以“/”開(kāi)頭和以“/*”結(jié)尾的是用來(lái)做路徑映射。
2、以前綴“*.”開(kāi)頭的是用來(lái)做擴(kuò)展映射。
3、以“/”是用來(lái)定義default servlet映射。
4、剩下的都是用來(lái)定義詳細(xì)映射。比如:/aa/bb/cc.action
以上就是解決Java J2EE亂碼問(wèn)題的思路,分享給大家,希望大家遇到類(lèi)似問(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)文章
spring中websocket定時(shí)任務(wù)實(shí)現(xiàn)實(shí)時(shí)推送
本文主要介紹了spring中websocket定時(shí)任務(wù)實(shí)現(xiàn)實(shí)時(shí)推送,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01java 快速實(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-07Java?Timer與TimerTask類(lèi)使程序計(jì)時(shí)執(zhí)行
這篇文章主要介紹了Java定時(shí)器中的Timer和TimerTask的原理。Timer主要用于Java線程里指定時(shí)間或周期運(yùn)行任務(wù),它是線程安全的,但不提供實(shí)時(shí)性(real-time)保證。接下來(lái)就跟隨小編一起深入了解Timer和TimerTask吧2022-02-02JAVA區(qū)間值判斷[10,20)的實(shí)現(xiàn)
本文主要介紹了JAVA區(qū)間值判斷[10,20)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(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代碼示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12Spring 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-01java實(shí)現(xiàn)簡(jiǎn)單的客戶信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單的客戶信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06