麻烦大大们帮我解释下着个过滤器代码,FilterConfig 是什么? 还有encoding怎么获得的?重点是 init()方法
public class EncodingFilter implements Filter { private FilterConfig filterConfig = null;
private String encoding = null; public void destroy() {
filterConfig = null;
encoding = null;
} public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException {
if (request.getCharacterEncoding() == null) {
if (encoding != null) {
request.setCharacterEncoding(encoding);
}
filterChain.doFilter(request, response);
}
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
}
}
public class EncodingFilter implements Filter { private FilterConfig filterConfig = null;
private String encoding = null; public void destroy() {
filterConfig = null;
encoding = null;
} public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException {
if (request.getCharacterEncoding() == null) {
if (encoding != null) {
request.setCharacterEncoding(encoding);
}
filterChain.doFilter(request, response);
}
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
}
}
给你看看 Spring的例子
<!-- Character Encoding filter -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>param-name 的值就是你代码里面的get set属性
param-value 就是你要设置的值