<
filter
>
< filter-name > setCharacterEncodingFilter </ filter-name >
< filter-class > tools.SetCharacterEncodingFilter </ filter-class >
< init-param >
< param-name > encoding </ param-name >
< param-value > UTF-8 </ param-value >
</ init-param >
</ filter >
< filter-mapping >
< filter-name > setCharacterEncodingFilter </ filter-name >
< url-pattern > /* </ url-pattern >
</ filter-mapping >
< filter-name > setCharacterEncodingFilter </ filter-name >
< filter-class > tools.SetCharacterEncodingFilter </ filter-class >
< init-param >
< param-name > encoding </ param-name >
< param-value > UTF-8 </ param-value >
</ init-param >
</ filter >
< filter-mapping >
< filter-name > setCharacterEncodingFilter </ filter-name >
< url-pattern > /* </ url-pattern >
</ filter-mapping >
package
tools;
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 String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;
public void init(FilterConfig filterConfig) throws ServletException ...{
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if(value==null)...{
this.ignore = true;
}
else if(value.equalsIgnoreCase("true"))...{
this.ignore = true;
}
else if(value.equalsIgnoreCase("yes"))...{
this.ignore = true;
}else...{
this.ignore = false;
}
}
//过滤的方法是在这里实现的
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException ...{
if(ignore || request.getCharacterEncoding()==null)...{//如果忽略编码格式或者制定编码格式为空则从request中获得编码格式
encoding = selectEncoding(request);
}
if(encoding != null)...{
request.setCharacterEncoding(this.encoding);
}
chain.doFilter(request , response);
}
private String selectEncoding(ServletRequest request) ...{
return this.encoding;
}
public void destroy() ...{
this.encoding = null;
this.filterConfig = null;
}
}
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 String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;
public void init(FilterConfig filterConfig) throws ServletException ...{
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if(value==null)...{
this.ignore = true;
}
else if(value.equalsIgnoreCase("true"))...{
this.ignore = true;
}
else if(value.equalsIgnoreCase("yes"))...{
this.ignore = true;
}else...{
this.ignore = false;
}
}
//过滤的方法是在这里实现的
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException ...{
if(ignore || request.getCharacterEncoding()==null)...{//如果忽略编码格式或者制定编码格式为空则从request中获得编码格式
encoding = selectEncoding(request);
}
if(encoding != null)...{
request.setCharacterEncoding(this.encoding);
}
chain.doFilter(request , response);
}
private String selectEncoding(ServletRequest request) ...{
return this.encoding;
}
public void destroy() ...{
this.encoding = null;
this.filterConfig = null;
}
}