您的位置:首页 > 其它

通过超链接及其提供的参数来实现分页查询功能时出现提交中文后servlet获取的值是??乱码

2017-12-08 19:32 666 查看
通过超链接及其提供的参数来实现分页查询功能时出现提交中文后servlet获取的值是??乱码的解决方法

示例:

<li title="下一页">
<a href="${pageContext.request.contextPath}/product?method=searchProducts&pageNumber=${pb.pageNumber+1 }&spdesc=${spdesc}" aria-label="Next">
<span aria-hidden="true">»</span>
</a>
</li>//spdesc参数就是中文

一、出现的原因分析:

1.提交form表单时使用的时GET 方法提交(tomcat,默认,GET,ISO-8859-1,不是UTF-8等支持中文的编码方式);

2.提交form表单时忘记写提交方法了(method="post");

3.在JSP页面已经设置了支持中文的编码方式,同时也使用了过滤器来统一编码,结果还是出现了??这样的乱码。

二、解决方法

其中1、2的问题还好解决,就是问题3的解决方法要麻烦些。问题3的解决方法如下:

打开tomcat的配置文件:server.xml【tomcat的所在的目录:如,D:\Java\apache-tomcat-8.5.23\conf\server.xml】,进行如下配置:在Connector标签添加URIEncoding="UTF-8"和 useBodyEncodingForURI="true",效果如图:



问题3出现的具体原因是:超链接的提交方式为Get,而Get方式提交的编码方式不是支持中文的编码方式,所以在Connector标签添加URIEncoding="UTF-8" 和 useBodyEncodingForURI="true"是为了将以GET提交的编码默认修改成为UTF-8
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: