package com.trydone.core.filters;
import java.io.IOException;
import javax.servlet.*;
public class SetCharacterEncodingFilter implements Filter
{
public SetCharacterEncodingFilter()
{
encoding = null;
filterConfig = null;
ignore = true;
}
public void destroy()
{
encoding = null;
filterConfig = null;
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException
{
if(ignore || request.getCharacterEncoding() == null)
{
String encoding = selectEncoding(request);
if(encoding != null)
request.setCharacterEncoding(encoding);
}
try
{
chain.doFilter(request, response);
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
public void init(FilterConfig filterConfig)
throws ServletException
{
this.filterConfig = filterConfig;
encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if(value == null)
ignore = true;
else
if(value.equalsIgnoreCase("true"))
ignore = true;
else
if(value.equalsIgnoreCase("yes"))
ignore = true;
else
ignore = false;
}
protected String selectEncoding(ServletRequest request)
{
return encoding;
}
protected String encoding;
protected FilterConfig filterConfig;
protected boolean ignore;
}