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);

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

原文地址:https://www.cnblogs.com/zxguan/p/8492257.html

时间: 2024-12-15 12:50:01

Java Web 修改请求参数的相关文章

Java Web应用请求参数编码

我们知道,当拼写要跳转的url中含有中文时,一般地需要转码处理,才能到服务器端正确的接收并处理,这是客户端与服务器端通讯时对数据格式的规约. 一般地,使用encodeURIComponent或者encodeURI来处理中文参数(这两者的区别,以及和escape的区别后面再说),编码后,在客户端,成为ISO-8859-1数据格式,一般表现在URL上为%XX这种形式的. var url = "hello.do?person=" + encodeURIComponent("小明&q

fidder设置断点,修改请求参数等

设置断点(来自:http://jingyan.baidu.com/article/17bd8e52216c8d85ab2bb8e9.html): 可以看到当前有一个抓取的很多的包的链接的地址的信息,那么这样的情况,已发送的请求的,进行做断点设置,进行选中该链接. 然后进行点击fiddler中菜单中的rules的选项菜单. 然后就会弹出了下拉菜单中进行选择为"automatic breakpoints"的选项菜单. 就会弹出了下一级菜单中进行选择为before requests的选项.

java web中请求和响应中包含中文出现乱码解析

说明:在计算机中保存的一切文本信息是以一定的编码表(0,1,0,1)来保存我们所认识的字符(汉字或英文字符),由字符到计算机存储的二进制过程是编码,由读取二进制到文本的过程称为解码.而字符编码有多种不同的编码表,所以,如果编码格式和解码格式不是同一个码表就会出现乱码.想要避免出现乱码,需要使保存和读取时使用相同的码表. 在java web编程中经常会出现乱码,现在详细讲解一下如何进行设置,避免乱码 1 网页编码 在编写网页的时候,需要指定网页的编码格式,使用<meta http-equiv=&quo

java web get请求跨域(转)

http://hw1287789687.iteye.com/blog/2188617 java  web中如何跨域请求呢? 使用jsonp,详情请参考:http://json-p.org/ 页面代码如下: Html代码   <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <scri

Java Web之请求和响应

Servlet最主要作用就是处理客户端请求并作出回应,为此,针对每次请求,Web容器在调用service()之前都会创建两个对象,分别是HttpServletRequest和HttpServletResponse.其中HttpServletRequest封装HTTP请求消息,HttpServletResponse封装HTTP响应消息.需要注意的是,Web服务器运行过程中,每个Servlet都会只创建一个实例对象,不过每次请求都会调用Servlet实例的service(ServletRequest

从零写Java Web框架——请求的处理

大概思路 继承 HttpServlet,实现 DispatcherServlet,拦截所有请求: DispatchServlet 重写 init()方法,负责初始化框架: 重写 service()方法,获取 HttpServletRequest.HttpServletResponse: 通过 HttpServletRequest.HttpServletResponse,获取请求路径.请求参数,进行请求的处理,并做转发或重定向: 思维导图

如何在Fiddler Script中自定义修改请求参数

-更改RequestHeaders中的内容 //根据host判断 if(oSession.host=="www.baidu.com"){ oSession.RequestHeaders.Remove("User-Agent"); oSession.RequestHeaders.Add("User-Agent","Dalvik/2.1.0 (Linux; U; Android 9.0.1; onePlus666 Build/MOB31K)

Fiddler设置断点修改请求参数

fiddler有个强大的功能,可以修改发送到服务器的数据包,但是修改前需要拦截,即设置断点.设置断点后,开始拦截接下来所有网页,直到取消断点. 1.打开fiddler菜单中Rules->Automatic Breakpoints->Before Requests,设置断点也可以使用快捷键F11. 开启断点后底部显示一个红色T标识,证明设置断点成功了,此时就会拦截发出去的请求 2.以百度为例在浏览器中搜索某项内容,然后请求会被Fiddler拦截到 找到我们搜索的请求进行修改里面的内容 修改完成后

Java Web中请求转发和请求包含

1.都是在一个请求中跨越多个Servlet 2.多个Servlet在一个请求中,他们共享request对象.就是在AServle中setAttribute()保存数据在BServlet中由getAttribute()取出数据 3.在AServlet转发到BServlet,那么整个请求都是由BServlet来完成,AServlet不再插手 4.AServlet 包含BServlet,那么两个Servlet共同完成请求 5.请求转发和请求包含都需要使用一个对象RequestDispatcher. A