form表单参数数量限制在10000个?

一个基于spring mvc+hibernate框架的项目,其中有一个页面,显示用户列表,然后有个批量删除用户功能,就是把所有选中的用户记录的ID值提交到后台,这个ID值是绑定在每一条记录前的chebox里。然后勾选中一万多条用户记录,提交表单向后台发post请求,发现只删除了勾选的前10000条记录。于是我用开发者工具看请求的表单,确认发送的表单值应该跟我勾选的一致。然后再到后台java代码打断点,发现用@RequestParam 标记获取前台表单值的数组变量大小只有10000。再看看里面的值,发现只提交了前10000条用户的记录。我再用request.getParameterValues获取提交表单的值,获取到的数组大小还是10000个用户的值。那么问题来了,不是说好post请求不限制参数长度么,出现这个情况是别的地方限制了长度还是怎么样呢?

我再用js自造一个json对象,生成超过一万对由三位字母构成的属性,并赋值123,用post请求把这些json数据发到后台,然后在后台断点发现只收到一万个属性值。用浏览器捉包可以看到post的数据包有一百多兆大小,已经远远超过网上说的tomcat配置2M限制,什么的,明显跟这个没关系了。我在这里放一下捉包的图:

图片说明

4个回答

删除一万条 要手动选择?不是手动选择的话不就是删除全部么 传个信号给后台 直接删除不就得了

只能说我很同情你的用户。

u013771353
无限超频 为什么啊?不是很懂你的意思
接近 4 年之前 回复

我现在换了个思路,,如果删除超过一万条以上的记录就分开多次请求异步执行,,具体实现也很简单,就是把发送的表单id每到一万条就切成一份。比如20001条记录就切成三份数据分别进行三次请求,这样执行效率也高,用户体验也更好。

我想问100多兆,你是怎么做到的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问