java地址栏传参数有长度限制

    今天项目中数据导出的时候,如果是小数据量没有问题,如果一次导出500条数据就报错。报错的信息就是地址找不到。最后跟踪了一下代码,原来是地址栏传递的参数太大导致。传到后台url地址如下:

http://localhost:8080/record/exportDataExcel.htm?checkedIds=1409020014,1409020013,1409020012,1409020011,1409020010,1409020009,1409020008,1409020007,1409020006,1409020005,1409020004,1409020003,1409020002,1409020001,1409010011,1409010010,1409010009,1409010008,1409010001,1408300025,1408300013,1408300012,1408300011,1408300010,1408300009,1408300008,1408300007,1408300006,1408300005,1408300004,1408300003,1408300002,1408300001,1408290027,1408290026,1408290025,1408290024,1408290023,1408290022,1408290021,1408290018,1408290016,1408290015,1408290014,1408290013,1408290012,1408290011,1408290010,1408290009,1408290008,1408290006,1408290005,1408290004,1408290003,1408290002,1408290001,1408280316,1408280307,1408280297,1408280289,1408280274,1408280271,1408280270,1408280269,1408280268,1408280267,1408280263,1408280262,1408280261,1408280256,1408280254,1408280253,1408280252,1408280251,1408280250,1408280249,1408280248,1408280246,1408280245,1408280243,1408280242,1408280240,1408280238,1408280237,1408280236,1408280235,1408280234,1408280233,1408280232,1408280231,1408280228,1408280227,1408280226,1408280225,1408280223,1408280222,1408280221,1408280220,1408280219,1408280218,1408280217,1408280216,1408280215,1408280214,1408280213,1408280212,1408280211,1408280210,1408280209,1408280208,1408280207,1408280206,1408280205,1408280204,1408280203,1408280202,1408280201,1408280200,1408280199,1408280198,1408280195,1408280191,1408280190,1408280189,1408280188,1408280187,1408280186,1408280185,1408280184,1408280183,1408280182,1408280181,1408280180,1408280179,1408280178,1408280177,1408280176,1408280175,1408280174,1408280171,1408280170,1408280168,1408280167,1408280166,1408280164,1408280163,1408280162,1408280161,1408280160,1408280159,1408280158,1408280157,1408280156,1408280155,1408280154,1408280153,1408280152,1408280151,1408280150,1408280149,1408280148,1408280147,1408280146,1408280145,1408280144,1408280143,1408280141,1408280140,1408280139,1408280138,1408280137,1408280136,1408280135,1408280134,1408280132,1408280131,1408280128,1408280126,1408280125,1408280124,1408280123,1
我把以上的地址复制到文本上刚好是2kb。网上搜索了一下发现原来对于地址栏字数的限制最大为2kb。

解决办法是:将需要传递到后台的参数赋值给页面的隐藏表单域,然后再后台action去的。

实现代码如下:

jsp代码如下:

            <input type="hidden" id="checkedIds" name="checkedIds"        />


js代码:

    $("#checkedIds").val(getCheckedId());  //getCheckedId()方法为获得复选框的值

action代码:

  request.getParameter(“checkedIds”);

==========================

本来还以为和tomcat这个参数有关maxparametercount,后来进过测试发现这个只是限制提交的input数量。而不是地址栏长度有关。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。