package com.zbooksoft.gdmis.filter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; import java.util.Vector; /** * @Description 重写request,实现request的参数修改 * @Author fsr * @Date 2021/4/6 **/ public class ParameterRequestWrapper extends HttpServletRequestWrapper { private Map params = new HashMap<>(); public ParameterRequestWrapper(HttpServletRequest request) { super(request); this.params.putAll(request.getParameterMap()); } public ParameterRequestWrapper(HttpServletRequest request, Map extendParams) { this(request); //这里将扩展参数写入参数表 addAllParameters(extendParams); } @Override public Enumeration getParameterNames() { return new Vector(params.keySet()).elements(); } @Override public String getParameter(String name) { String[] values = params.get(name); if (values == null || values.length == 0) { return null; } return values[0]; } @Override public String[] getParameterValues(String name) { String[] values = params.get(name); if (values == null || values.length == 0) { return null; } return values; } private void addAllParameters(Map otherParams) { for (Map.Entry entry : otherParams.entrySet()) { addParameter(entry.getKey(), entry.getValue()); } } private 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)}); } } } }