package sktbbs.common.base;
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;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class EncodingFilter implements Filter
{
protected FilterConfig filterConfig;
private String targetEncoding = "UTF-8";
/**
* 初始化过滤器
*/
public void init(FilterConfig config) throws ServletException
{
this.filterConfig = config;
this.targetEncoding = config.getInitParameter( "encoding" );
}
/**
* 进行过滤处理,这个方法最重要,所有过滤处理的代码都在此实现
*/
public void doFilter(ServletRequest srequest, ServletResponse sresponse,
FilterChain chain) throws IOException, ServletException
{
HttpServletRequest request = (HttpServletRequest)srequest;
HttpServletResponse response = (HttpServletResponse)sresponse;
request.setCharacterEncoding( targetEncoding );
response.setContentType("text/html;charset="+targetEncoding);
//把处理权发送到下一个
chain.doFilter( srequest , sresponse );
}
/**
* 销毁过滤器
*/
public void destroy()
{
this.filterConfig = null;
}
}
web.xml
<filter> <filter-name>encoding</filter-name> <filter-class>com.cc.common.base.EncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>