特殊符号传参问题:the valid characters are defined in RFC 7230 and RFC 3968
当 URL 中传递 {}() 等特殊符号作为参数值时,前台无反应,后台报错,如下图所示:
这里怎么能正确传递特殊符号作为参数值?
原因:
现在比较新版的 web 服务器对 url 中的特殊字符作了限制,出现特殊字符时不让访问,比如 {}()
解决办法:
对 url 中的有特殊字符的参数值进行 URLEncode
此方法也适用于中文参数传递时进行转码的情况
例如:String resultPage =“queryReport.jsp?rpx=” + URLEncoder.encode(report, “UTF-8”) + “&scroll=” + scroll;
web 服务器是 tomcat9, 点击报表中设置的超链接 "./showReport.jsp?rpx=/30 交互报表 / 点上表头排序.rpx&order="+value() 会出现下面的报错:
可将超链接表达式修改为:
“./showReport.jsp?rpx=”+urlencode(“/30 交互报表 / 点上表头排序.rpx”,“UTF-8”)+“&order=”+urlencode(value(),“UTF-8”)