报错:
Type 异常报告
消息 No modifications are allowed to a locked ParameterMap
描述 服务器遇到一个意外的情况,阻止它完成请求。
Exception
java.lang.IllegalStateException: No modifications are allowed to a
locked ParameterMap
原因:
由于 javax.servlet.ServletRequest getParameterMap method
返回的是一个不可变(immutable)的对象什么是Immutable class?
创建一个Immutable 类需要满足以下条件
用final 声明类,使类不可以被继承
所有的属性字段都用private 修饰,以至于不能直接访问属性
不提供setter 方法
使所有的mutable fields 用final 修饰, 以至于这个值只能被分配一次
用构造函数 深度copy 和初始化所有的字段
在Getter方法里通过clone 对象,相当于返回一个实际对象的引用。
从上述的immutable class中的第四条可以得知,当ParameterMap 已经put(K1,V1),
然后再一次put(K1,V2), 因为这个K1的值已经被分配过一次,再次分配的时候就会报这个错误java.lang.IllegalStateException: No modifications are allowed to a
locked ParameterMap
(原文:https://blog.csdn.net/gaozhiqiang111/article/details/52440152)
解决方法:
new
HashMap(request.getParameterMap())**(原文链接:https://yq.aliyun.com/articles/269402)