web.xml文件:
<!-- 字符集 的 设置 -->
<filter>
<filter-name>CharsetEncodingFilter</filter-name> <!-- 此属性相当于@WebFilter中的filterName属性 -->
<filter-class>org.shu.seminar.test.CharsetEncodingFilter</filter-class> <!-- Filter的实现类 -->
<init-param>
<param-name>endcoding</param-name>
<param-value>UTF-8</param-value> <!--设置你想用的字符集,我这里用的是UTF-8-->
</init-param>
</filter>
<filter-mapping>
<filter-name>CharsetEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Filter类代码:
package org.shu.seminar.test;
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;
/**
* 采用Filter统一处理字符集
* @author Ronaldinho
*
*/
public class CharsetEncodingFilter implements Filter {
private String endcoding;
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println("CharsetEncodingFilter--->>>begin");
//设置web.xml中配置的字符集
request.setCharacterEncoding(endcoding);
// System.out.println("CharsetEncodingFilter--->>>doing");
//继续执行
chain.doFilter(request, response);
// System.out.println("CharsetEncodingFilter--->>>end");
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
this.endcoding = filterConfig.getInitParameter("endcoding");
// System.out.println("CharsetEncodingFilter.init()-->> endcoding=" + endcoding);
}
}