首页 > 学院 > 开发设计 > 正文

利用Filter检查Request参数

2019-11-18 16:07:04
字体:
来源:转载
供稿:网友
import java.io.IOException;
import java.util.Enumeration;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class CheckFilter implements Filter {

  PRivate FilterConfig config;

  public CheckFilter() {
  }

  public void init(FilterConfig filterConfig) throws ServletException {

    this.config = filterConfig;

  }

  public void doFilter(ServletRequest request, ServletResponse response,
      FilterChain chain) throws IOException, ServletException {

    Enumeration params = request.getParameterNames();
    boolean rejected = false;

    while (params.hasMoreElements()) {

      if (isEmpty(request.getParameter((String) params.nextElement()))) {
        reject(request, response);
        rejected = true;
      }

    }

    if (!rejected)
      chain.doFilter(request, response);

  }// doFilter

  private boolean isEmpty(String param) {

    if (param == null  param.length() < 1) {
      return true;
    }

    return false;

  }

  private void reject(ServletRequest request, ServletResponse response)
      throws IOException, ServletException {

    request.setAttribute("errorMsg",
            "Please make sure to provide a valid value for all of the text fields.");

    Enumeration params = request.getParameterNames();
    String paramN = null;

    while (params.hasMoreElements()) {

      paramN = (String) params.nextElement();

      request.setAttribute(paramN, request.getParameter(paramN));

    }

    RequestDispatcher dispatcher = request
        .getRequestDispatcher("/form.jsp");
    dispatcher.forward(request, response);

  }

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

}

(出处:http://www.VeVb.com)



发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表