好吧,我很困惑。我相信它会返回指向原始地图的指针?

    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/

10-10 18:47
查看更多