您好,登錄后才能下訂單哦!
這篇文章主要為大家詳細介紹了java中Filter過濾器解決中文亂碼辦法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
java中Filter過濾器處理中文亂碼的方法
注意問題:在學習用selvert的過濾器filter處理中文亂碼時,在filter配置初始化時用了utf-8處理中文亂碼,而在提交的jsp頁面中卻用了gbk。雖然兩種都可以出來中文亂碼,但是卻造成了處理亂碼的格式不一致。所以編譯出錯。
解決方法:所有地方都用utf-8或gbk
//過濾器類 CharactorFilter.jsp package cn.com.Filter; 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 CharactorFilter implements Filter { //繼承Filter類 //字符編碼 String encoding=null; public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if(encoding!=null){ //設置request字符編碼 request.setCharacterEncoding(encoding); //設置response字符編碼 response.setContentType("text/html;charset="+encoding); } //傳遞給下一個過濾器 chain.doFilter(request, response); } public void init(FilterConfig filterConfig) throws ServletException { //獲取初始化參數 encoding=filterConfig.getInitParameter("encoding"); } public void destroy() { // TODO Auto-generated method stub encoding=null; } }
web.xml
<filter> <!--注意這里是filter,不要配置成servlet--> <filter-name>CharactorFilter</filter-name> <!--過濾器名稱--> <filter-class>cn.com.Filter.CharactorFilter</filter-class> <!--過濾器的完整類名--> <init-param> <!--初始化參數--> <param-name>encoding</param-name> <!--參數名稱--> <param-value>utf-8</param-value> <!--參數值--> </init-param> </filter> <filter-mapping> <!--過濾器映射--> <filter-name>CharactorFilter</filter-name><!--過濾器名稱--> <url-pattern>/*</url-pattern><!--URL映射,給所有頁面處理亂碼--> </filter-mapping>
關于java中Filter過濾器解決中文亂碼辦法就分享到這里了,當然并不止以上和大家分析的辦法,不過小編可以保證其準確性是絕對沒問題的。希望以上內容可以對大家有一定的參考價值,可以學以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。