The valid characters are defined in RFC 7230 and RFC 3986 解决办法

tomcat对URL有严格的限制,tomcat9.0相对于tomcat 8.0对URL做出了一些更严格的限制。所以上述错误就是你的url出现了一些不符合规定的字符,如常见的中文、/、\、#等等

RFC3986文档规定,Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符

RFC 7230文档,主要列出了网络通信中所用到的数字,包括常用端口以及协议号等等。


所以,在用到url的地方要养成良好的习惯,给url进行编码和解码。主要分后台编解码和前端编解码:

一、java后台编码和解码

编码:URLEncoder.encode(url,"UTF-8");

解码:URLDecoder.decode(url, "UTF-8");

注意:包名如下,encode和decode都是静态方法,可以直接调用,返回值还是String类型;

import java.net.URLDecoder;    import java.net.URLEncoder;

二、javascript中编码和解码

(1)、escape(url)    /     unescape(url)    (编码/解码)

(2)、encodeURI(url)     /     decodeURI(url)    (编码/解码)

(3)、encodeURIComponent(url)     /     decodeURIComponent(url)    (编码/解码)

至于escape,encodeURI和encodeURIComponent的区别参看另一篇博文http://blog.csdn.net/lpch0825/article/details/79408566




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值