java后台如何接收get请求传过来的数组
作者:ls13219681990
这篇文章主要介绍了java后台如何接收get请求传过来的数组问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
java后台接收get请求传过来的数组
有一个需求需要用到往后台传送一个数组,但是请求不能为post,经过几次反复试验最终得到结果:
解决办法1
将数组进行URL编码
前台:
url = exportWorkSpotData?id=" + encodeURIComponent(measuringSpotArray)
后台:
@RequestParam(value = "id") Integer[] measuringSpotId
效果:measuringSpotId: 54,68
解决办法2
将数组循环拼接
在解决这个需求的时候有可能遇到这个异常:
Invalid character found in the request target. The valid characters are defined in RFC 3986
这个问题的产生是因为tomcat版本对请求做出了限制 拒绝请求中包含 ({},[])等特殊字符
解决办法:
该问题是升级tomcat版本后的一个错误,我已解决,该问题是因为tomcat最新版本对url进行了一个限制,降低tomcat版本和配置以下内容可解决问题
解决(亲测)
在conf/catalina.properties中最后添加2行:
tomcat.util.http.parser.HttpParser.requestTargetAllow=|{} org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
在conf/server.xml中的<Connector>节点中,添加2个属性:
relaxedPathChars="|{}[]," relaxedQueryChars="|{}[]," ls13219681990
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。