转换字符编码filter,乱码

package com.yuan;

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 SetCharacterEncodingFilter implements Filter {
 
 protected FilterConfig filterConfig;
 protected String encodingName;
 protected boolean enable;
 
 public SetCharacterEncodingFilter(){
  this.encodingName = "gb2312";
  this.enable = false;
 }
 
 public void init(FilterConfig filterConfig) throws ServletException {
  this.filterConfig = filterConfig;
  loadConfigParams();
 }
 
 private void loadConfigParams(){
  this.encodingName = this.filterConfig.getInitParameter("encoding");
  String strIgnoreFlag = this.filterConfig.getInitParameter("enable");
  
  if(strIgnoreFlag.equals("true")){
   this.enable = true;
  }else{
   this.enable = false;
  }
 }

 public void doFilter(ServletRequest request, ServletResponse response,
   FilterChain chain) throws IOException, ServletException {
  if(this.enable){
   request.setCharacterEncoding(this.encodingName);
  }
  chain.doFilter(request, response);
 }
 
 public void destroy() {
  // TODO Auto-generated method stub
 }
 
}

 

 

web.xml配置:

<filter>
 <filter-name>SetCharacterEncodingFilter</filter-name>
 <filter-class>com.yuan.SetCharacterEncodingFilter</filter-class>
 <init-param>
  <param-name>enable</param-name>
  <param-value>true</param-value>
 </init-param>
 
 <init-param>
  <param-name>encoding</param-name>
  <param-value>gb2312</param-value>
 </init-param>
</filter>

<filter-mapping>
 <filter-name>SetCharacterEncodingFilter</filter-name>
 <url-pattern>/*</url-pattern>
</filter-mapping>

 

 

你可能感兴趣的:(xml,Web,servlet)