jsp利用过滤器解决中文乱码问题

时间:2020-12-28 06:35:44
 
用过滤器来处理jsp中文乱码问题
采用下面的办法统一处理,首先创建下面的类:

           
           //**********************************************// /* * TODO 字符编码过滤器     */     package summer.admin;     import javax.servlet.FilterChain;     import javax.servlet.ServletRequest;     import javax.servlet.ServletResponse;     import java.io.IOException;     import javax.servlet.Filter;     import javax.servlet.http.*;     import javax.servlet.ServletException;     import javax.servlet.FilterConfig;     /**     * @author Coldrain     * TODO 字符编码过滤器     */     public class EncodingFilter implements Filter{     protected FilterConfig filterConfig;     private String targetEncoding = "gb2312";   /**     *初始化过滤器,和一般的Servlet一样,它也可以获得初始参数。     */     public void init(FilterConfig config) throws ServletException {     this.filterConfig = config;     if(config.getInitParameter("encoding") !=null){     this.targetEncoding = config.getInitParameter("encoding");     }     }   /**     *进行过滤处理,这个方法最重要,所有过滤处理的代码都在此实现。     */     public void doFilter(ServletRequest srequest, ServletResponse sresponse, FilterChain chain)     throws IOException, ServletException {     System.out.println("使用以下方法对请求进行编码:encoding="+targetEncoding);     HttpServletRequest request = (HttpServletRequest)srequest;     request.setCharacterEncoding(targetEncoding);     chain.doFilter(srequest,sresponse); // 把处理权发送到下一个     }     public void setFilterConfig(final FilterConfig filterConfig)     {     this.filterConfig=filterConfig;     }   //销毁过滤器     public void destroy()     {     this.filterConfig=null;     }     } //************************************************************************//

然后在web.xml文件里添加下列配置:

           
               〈filter〉     〈filter-name〉encoding〈/filter-name〉     〈filter-class〉summer.admin.EncodingFilter〈/filter-class〉     〈init-param〉     〈param-name〉encoding〈/param-name〉     〈param-value〉gb2312〈/param-value〉     〈/init-param〉     〈/filter〉     〈filter-mapping〉     〈filter-name〉encoding〈/filter-name〉     〈url-pattern〉/*〈/url-pattern〉     〈/filter-mapping〉