比如说:
http://localhost:8080/Studentmaven/Student/editStudentSubmit.action?name=张三&sex=男&age=22&grade=14计算机2班&score=90.0
这样就是会报错的,因为url中含有中文,
将所有的中文换成数字或则英文,则不会显示错误
http://localhost:8080/Studentmaven/Student/editStudentSubmit.action?name=1&sex=1&age=22&grade=141&score=90.0
(PS:这里我还发现了一个小问题,如果你用IE浏览器输入第一个含中文的链接,他是会将中文显示成乱码,如果你使用谷歌浏览器,则是显示正常,并且能够正常运行并找到该网页)
最后在看以下两个资料的时候,找到了解决的方法。
参考:The valid characters are defined in RFC 7230 and RFC 3986异常-解决方法
参考:Tomcat 报 The valid characters are defined in RFC 7230 and RFC 3986
RFC3986文档规定,Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符。
应该是tomcat9.0相对于tomcat 8.0对URL做出了一些更严格的限制。
所以我将本地的tomcat8复制到腾讯云的云服务器上,重新配置tomcat环境变量。
再次运行,最终运行成功,解决报错。
当然这肯定不是一个长久之计,比较tomcat9.0已经对URL做出了限制,所以即使是练习,之后的url的中文和一些不符合的符号都先在客户端进行URLEncode编码,再将
URL拼接成一个整体后再发送出去。最后服务端在进行解码。
举例:
Insert title here
英文参数
解决乱码
显示阿牛
Insert title here
name's value is:
sex's value is:
return