修改 HttpServletRequest 里面的 Parameter 参数

1.首先 自定义类 直接复制过去用

package io.bgxt.utis;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import java.util.Collections;
import java.util.Enumeration;
import java.util.Map;

public class CustomHttpServletRequest extends HttpServletRequestWrapper {

    private Map<String, String[]> parameterMap;

    public CustomHttpServletRequest(HttpServletRequest request, Map<String, String[]> parameterMap) {
        super(request);
        this.parameterMap = parameterMap;
    }

    @Override
    public String getParameter(String name) {
        String[] values = getParameterValues(name);
        if (values != null && values.length > 0) {
            return values[0];
        }
        return null;
    }

    @Override
    public Map<String, String[]> getParameterMap() {
        return Collections.unmodifiableMap(parameterMap);
    }

    @Override
    public Enumeration<String> getParameterNames() {
        return Collections.enumeration(parameterMap.keySet());
    }

    @Override
    public String[] getParameterValues(String name) {
        return parameterMap.getOrDefault(name, new String[0]);
    }
}

2.

Map<String, String[]> paramMap = new HashMap<>();

String 字段 = request(原来的请求).getParameter(原来请求里面的参数 key);

paramMap.put(原来请求里面的参数 key, new String[]{字段});

HttpServletRequest  newRequest = new CustomHttpServletRequest(request(原来的请求), paramMap);


设置完成的参数 就在 新的请求里面 newRequest 

注:(这里只是举例单个,原请求里面有多个参数的话都需要同步过来paramMap.put)