您现在的位置: J2ME开发网 >> 参考源码 >> J2EE源码 >> Servlet >> 例子正文
使用Filter封装一个请求
作者:未知    例子来源:java2s    点击数:    更新时间:2006-2-17
演示如何在Filter中包装一个Request请求 import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;

public class RequestFilter implements Filter {

  private FilterConfig config;

  /** Creates new RequestFilter */
  public RequestFilter() {
  }

  public void init(FilterConfig filterConfigthrows ServletException {

    this.config = filterConfig;
  }

  public void doFilter(ServletRequest request, ServletResponse response,
      FilterChain chainthrows java.io.IOException, ServletException {

    ReqWrapper wrapper = null;
    ServletContext context = null;

    if (request instanceof HttpServletRequest)
      wrapper = new ReqWrapper((HttpServletRequestrequest);

    /*
     * use the ServletContext.log method to log param names/values
     */
    if (wrapper != null) {
      context = config.getServletContext();
      context.log("Query: " + wrapper.getQueryString());
    }

    //continue the request, response to next filter or servlet
    //destination
    if (wrapper != null)
      chain.doFilter(wrapper, response);
    else
      chain.doFilter(request, response);
  }

  public void destroy() {
    /*
     * called before the Filter instance is removed from service by the web
     * container
     */
  }
}