1. get请求传递中文时本地连正式库访问都正常,正式环境下单独访问报错
代码:
请求:project/projectInfo/export/?cks=’项目类型
public String export(ProjectIn foprojectInfo,
HttpServletRequest request,HttpServletResponse response, Model model) {
String cks =request.getParameter("cks");
//获取有被选中的字段
cks=new String(cks.getBytes("ISO-8859-1"),"utf-8");
return null;
}
本地能够正常获取到cks并对cks进行解码
问题原因:
本地tomcat中的server.xml文件:
<ConnectorconnectionTimeout="20000" port="8080"protocol="HTTP/1.1" redirectPort="8443" />
正式环境 tomcat中的server.xml文件:
<Connector connectionTimeout="20000"port="8080" protocol="HTTP/1.1"redirectPort="8443" maxPostSize="0" URIEncoding="UTF-8"/>
因为本地没有配置URIEncoding="UTF-8"原因对中文进行了解码,因此本地正常
而正式库已经tomcat服务器已经对get请求进行了解码,代码中又对该字符串进行了一次解码,所以就导致错误
解决方法:
代码中将
cks=new String(cks.getBytes("ISO-8859-1"),"utf-8");注释
---------------------
作者:ShiroGe
来源:CSDN
原文:https://blog.csdn.net/hfs1992/article/details/77233707
版权声明:本文为博主原创文章,转载请附上博文链接!