java中request.getParameter获取textarea中参数长度的问题
使用jsp和servlet需要在jsp页面中,向textarea文本框中粘贴大量手机号码,然后在servlet中通过request.getParameter获取全部号码,...
使用jsp和servlet 需要在jsp页面中,向textarea文本框中粘贴大量手机号码,然后在servlet中通过request.getParameter获取全部号码,存入数据库。当一次粘贴10万个手机号码时,程序可以正常运行。但当一次粘贴12万左右时,request.getParameter就获取不了textarea的值了。为null。是不是java的request.getParameter这个方法对参数长度限制呢?表单提交使用的是post的方式。
有什么办法可以解决一下,另外使用javacsv.jar读取csv文件,数据量有几百万,怎么处理才能不导致内存溢出呢? 展开
有什么办法可以解决一下,另外使用javacsv.jar读取csv文件,数据量有几百万,怎么处理才能不导致内存溢出呢? 展开
3个回答
展开全部
原因可能是通过http提交的表单的数据太大,造成了数据丢失,http通道有限制。(我猜的)如果你找到了正统的原因,记着告诉我。
解决方法:
通过InputStream获取参数信息,如下:
InputStream is = request.getInputStream();
int i = 0;
StringBuilder values = new StringBuilder();
while((i=is.read())!=-1){
values.append((char)i);
}
System.out.println(values);
如果表单中参数名为 param, 值为134
那么通过上述方法获取的values的值就是 param=134。多个参数会用&符隔开(如:mp=150123¶m=123)。
获取到这个参数字符串后,你就可以根据自己的需要截取字符串了。
解决方法:
通过InputStream获取参数信息,如下:
InputStream is = request.getInputStream();
int i = 0;
StringBuilder values = new StringBuilder();
while((i=is.read())!=-1){
values.append((char)i);
}
System.out.println(values);
如果表单中参数名为 param, 值为134
那么通过上述方法获取的values的值就是 param=134。多个参数会用&符隔开(如:mp=150123¶m=123)。
获取到这个参数字符串后,你就可以根据自己的需要截取字符串了。
展开全部
request.getParameter返回值是String类型吧,可能超过了String所能表示的最大范围,以前学的时候记得如果保存到数据库时使用CLOB类型可以使用Stream来传输,但我学的不太好,没弄明白怎么用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
理论上没有,你的form 提交方式 设置成post 了吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询