PS:之前写JavaWeb项目的时候,中文乱码这个问题一直困扰着我,我明明就在WorkSpace里设置了字符集,为什么还乱码?我数据库设置了编码格式,为什么还乱码?我是谁?我在哪?我在做什么?别担心!博主已经为你量身写好了防止乱码的拦截请求,从此拒绝乱码!无死角!
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.annotation.WebFilter;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
//@WebFilter(filterName = "EncodingFilter")
@WebFilter("/*")
public class EncodingFilter implements Filter
{
public void destroy()
{
System.out.println("中文编码验证过滤器销毁");
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException
{
request.setCharacterEncoding("utf-8");
System.out.println("中文编码过滤器URI:" + ((HttpServletRequest) request).getRequestURI());
chain.doFilter(request, response);
}
public void init(FilterConfig config) throws ServletException
{
System.out.println("中文编码过滤器初始化");
}
}
总结
这个代码的思路其实很简单,将所有的请求都拦截下来,然后直接把每个请求的字符集设置为"UTF-8"就OK了。