public class SetCharacterEncodingFilter implements Filter {
private FilterConfig filterConfig;
public void init(FilterConfig filterConfig) throws ServletException {
//获取filterConfig对象
this.filterConfig = filterConfig;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
//过滤器中的init方法,会初始化一个filterConfig对象,利用这个对象获取我们在配置文件中设置好的编码格式来进行编码的设置
//读取指定的参数,也就是得到编码的格式,这个具体的编码是什么需要在配置文件中指定,一般的配置文件中都有指定编码的格式
//<init-param>
// <param-name>encoding<param-name>
// <param-value>UTF-8</param-value>
//</init-param>
//或者配置整个web工程的编码格式
//<context-param>
// <param-name>encoding<param-name>
// <param-value>UTF-8</param-value>
//</context-param>
String encoding = filterConfig.getInitParameter("encoding");
if(encoding==null){
//没有配置参数,给一个默认值
encoding = "UTF-8";
}
request.setCharacterEncoding(encoding);
response.setCharacterEncoding(encoding);
response.setContentType("text/html;charset="+encoding);
chain.doFilter(request, response);
}
public void destroy() {
}
}
javaEE开发中利用过滤器实现防止中文乱码的问题
最新推荐文章于 2021-02-12 20:23:22 发布