修改 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)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
HttpServletRequest对象的getParameter方法用于获取请求参数,而setAttribute方法用于向HttpServletRequest对象中添加属性。如果您想要向HttpServletRequest对象中添加参数,可以通过setAttribute方法来实现,但是需要注意以下几点: 1. HttpServletRequest对象是不可修改的,一旦请求参数被设置,就无法修改。因此,如果您需要在请求中添加参数,可以通过创建一个新的HttpServletRequest对象来实现。 2. 如果您需要向HttpServletRequest对象中添加多个参数,可以将它们封装为一个Map对象,然后将Map对象作为一个属性添加到HttpServletRequest对象中。 3. 如果您需要添加参数而不破坏原有参数,可以将新参数添加到原有参数Map对象中,然后将Map对象作为一个属性添加到HttpServletRequest对象中。 下面是一个示例代码,演示了如何向HttpServletRequest对象中添加参数: ```java // 获取原有参数 Map<String, String[]> params = request.getParameterMap(); // 创建新参数 Map<String, String[]> newParams = new HashMap<String, String[]>(); newParams.put("newParam1", new String[]{"value1"}); newParams.put("newParam2", new String[]{"value2"}); // 合并参数 params.putAll(newParams); // 添加参数属性 request.setAttribute("params", params); ``` 在这个示例中,我们首先使用getParameterMap方法来获取原有的请求参数,并将它们保存到一个Map对象中。然后,我们创建一个新的Map对象,将新参数添加到其中。接着,我们将新参数和原有参数合并到同一个Map对象中,并将这个Map对象作为一个属性添加到HttpServletRequest对象中。 这样做可以向HttpServletRequest对象中添加参数,而不会破坏原有的参数

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值