好吧,我很困惑。我相信它会返回指向原始地图的指针?
private HttpServletRequest originalRequest;
Map params = originalRequest.getParameterMap();
params.remove("parameter-to-remove");
params.put("parameter-to-add", "<a value>");
现在,在执行这些操作之后,originalRequest中的参数是否会更改?还是只是将值复制到params中,而对它们进行任何操作都没关系,并且originalRequest中什么都不会更改?
最佳答案
否,不允许您将任何请求参数删除或添加到请求对象。它们必须保留(当它们到达服务器时),直到请求对象超出范围(在请求处理周期结束之后)。
从逻辑上讲,如果允许您执行类似的操作,则请求对象将不再代表原始请求。在整个请求处理周期中,我们要处理客户端发送的请求,而不是已被篡改的请求。
您应该改用的方法是void setAttribute(java.lang.String name, java.lang.Object o)
。
关于java - 这会返回指向值的指针还是复制值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13466405/