HttpServletRequestWrapper结合过滤器实现参数自动填充

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import java.util.HashMap;
import java.util.Map;

public class RequestParamWrapper extends HttpServletRequestWrapper {

	private Map<String , String[]> params = new HashMap<String, String[]>();
    private String token = "";
	
	public RequestParamWrapper(HttpServletRequest request) {
		super(request);
		this.params.putAll(request.getParameterMap());
        token = request.getHeader("token");
	}
	public RequestParamWrapper(HttpServletRequest request , Map<String , Object> extendParams) {
		this(request);  
		addAllParameters(extendParams);
	}

	@Override  
    public String getParameter(String name) {  
		String[]values = params.get(name);  
		if(values == null || values.length == 0) {  
			return null;  
		}  
		return values[0];  
    }
	
	public String[] getParameterValues(String name) {//同上  
        return params.get(name);  
    }

    public String getToken() {
        return token;
    }

    public void addAllParameters(Map<String , Object>otherParams) {//增加多个参数  
        for(Map.Entry<String , Object>entry : otherParams.entrySet()) {  
             addParameter(entry.getKey() , entry.getValue());  
        }  
    } 
    
    public void addParameter(String name , Object value) {//增加参数  
      if(value != null) {  
             if(value instanceof String[]) {  
                   params.put(name , (String[])value);  
              }else if(value instanceof String) {  
                    params.put(name , new String[] {(String)value});  
              }else {
                    params.put(name , new String[] {String.valueOf(value)});  
              }  
           }  
      }
}

你可能感兴趣的:(参数处理,WEB)