欢迎大家来到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