HTTP GET如何在分页查询时传递中文参数值

HTTP GET如何在分页查询时传递中文参数值分页查询时如果遇到以下错误:java.lang.IllegalArgumentException: Invalid character foun

欢迎大家来到IT世界,在知识的湖畔探索吧!

分页查询时如果遇到以下错误:

java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986

请按照以下方法进行修改:

一、分页查询链接修改为按钮:

<input type=”button” onclick=”jumpPage(‘<%=keyWord%>’, <%=totalPage%>)” value=”最后一页” />

其中keyWord和totalPage为Servlet通过request.setAttribute()传递而来的参数。

二、加入JavaScript

<script language=”JavaScript” type=”text/javascript”>

function jumpPage(kw, pgNum) {/*跳转到页面,并传入参数*/

var url = “pageQuery.do?keyWord=” + encodeURIComponent(kw);

url += “¤tPage=”;

url += pgNum;

window.location.href=url;

}

</script>

此处关键点在于调用了JavaScript中的encodeURIComponent()函数,会把其中的某些字符将被十六进制的转义序列进行替换。

说明:

1、该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: – _ . ! ~ * ‘ ( ) 。

2、其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。

encodeURIComponent(“你好,世界!”)的结果:

%E4%BD%A0%E5%A5%BD%EF%BC%8C%E4%B8%96%E7%95%8C%EF%BC%81

encodeURIComponent(“Hello world!”)的结果:

Hello%20world!

encodeURIComponent(“,/?:@&=+$#”)的结果:

%2C%2F%3F%3A%40%26%3D%2B%24%23

这样以来,就可以通过GET方法传递汉字了。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/33201.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信