java web中的过滤器

来源:百度知道 编辑:UC知道 时间:2024/05/17 22:13:32
如果要自定义一个过滤器,要实现接口Filter 其中有个方法是doFilter(..)
一个请求发送到服务器然后服务器响应回来 ,是否2次经过过滤器的该方法?

过滤器执行的顺序是

//1.过滤器代码
.....
//2.让请求继续执行
filterChain.doFilter(request,response)//这句代码的意思是让请求往下继续执行
//3.执行完后,继续执行过滤器代码
....
//响应客户

public class EncodingFilter implements Filter {
private FilterConfig config;

private String targetEncoding;

public void init(FilterConfig config) {
this.config = config;
this.targetEncoding = this.config.getInitParameter("encoding");
}

public void doFilter(ServletRequest srequest, ServletResponse sresponse,
FilterChain chain) throws IOException, ServletException {
System.out.println("encoding=" + this.targetEncoding);
HttpServletRequest request = (HttpServletRequest) srequest;
request.setCharacterEncoding(this.targetEncoding);
chain.doFilter(srequest, sresponse);
}

public void setFilterConfig(final FilterConfig filterConfig) {
}

public void destroy() {
c