web開發中的中文亂碼問題
阿新 • • 發佈:2019-02-01
1.寫一個過濾器: package com.cissst.utils; import java.io.IOException; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; /** * * */ public class EncodingFilter implements Filter{ private String targetEncoding ; protected FilterConfig filterConfig=null; /**由Web容器呼叫,初始化此Filter*/ public void init(FilterConfig config) throws ServletException { this.filterConfig=config; this.targetEncoding=config.getInitParameter("encoding"); } /**過濾處理方法*/ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { /**對請求進行編碼設定*/ HttpServletRequest srequest = (HttpServletRequest)request; srequest.setCharacterEncoding(targetEncoding); /**將處理權轉交給下一個處理器*/ chain.doFilter(request, response); } /**由Web容器呼叫,銷燬此Filter*/ public void destroy() { this.targetEncoding=null; this.filterConfig=null; } public void setFilterConfig(final FilterConfig filterConfig){ this.filterConfig=filterConfig; } } 2.在web.xml進行如下配置: <!-- 中文編碼過濾器配置:主要是用來解決中文亂碼問題 --> <filter> <filter-name>encodingFilter</filter-name> <filter-class>com.cissst.utils.EncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </init-param> <init-param> <param-name>ignore</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>