Java Web 修改请求参数

Posted ^梦幻星空^

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java Web 修改请求参数相关的知识,希望对你有一定的参考价值。

方法一、继承 HttpServletRequestWrapper , 实现自定义 request

  1、除了修改的参数,其他 Header 等参数不变, 等同于修改了请求参数

  2、实质是另一个请求

/**
 * @author zxguan
 * @description
 * @create 2018-03-02 9:51
 */
public class ParameterRequestWrapper extends HttpServletRequestWrapper {

    private Map params;

    public ParameterRequestWrapper(HttpServletRequest request, Map paramMap) {
        super(request);
        params = paramMap;
    }

    @Override
    public Map<String, String[]> getParameterMap() {
        return params;
    }

}
//这里用 new HashMap<>重新生成一个Map,因为 request.getParameterMap() 获取的参数列表不允许修改【java.lang.IllegalStateException: No modifications are allowed to a locked ParameterMap】
Map<String, String[]> paramMap = new HashMap<>(request.getParameterMap());
//xxx为要覆盖的参数, valueStr为真实参数值, wraprequest为新生成的自定义请求
paramMap.put("xxx", new String[]{valueStr});
ParameterRequestWrapper wrapRequest = new ParameterRequestWrapper(request, paramMap);

方法二、没找到 ! - _ - !

以上是关于Java Web 修改请求参数的主要内容,如果未能解决你的问题,请参考以下文章

暑假自学JAVA Web心得

servlet,filter,listener,intercepter区别

Java Web 怎样修改request的参数值

JAVA WEB代码片段

片段(Java) | 机试题+算法思路+考点+代码解析 2023

代码片段 - Golang 实现简单的 Web 服务器