java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java后台接收get请求传过来的数组

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文