1

我有一个 URL 可以在我的 java 服务器上编码,然后用 javascript 解码。我尝试检索我用 java 发送的参数中的字符串。这是来自表单验证功能的错误消息。

我这样做(服务器端。Worker.doValidateForm() 返回一个字符串):

response.sendRedirect(URLEncoder.encode("form.html?" + Worker.doValidateForm(), "ISO-8859-1"));

然后,在我的 javascript 中,我这样做:

function retrieveParam() {
    var error = window.location.search;

    decodeURIComponent(error);
    if(error)
        alert(error);
}

当然是行不通的。我猜的编码不一样。

所以我的问题是:我可以在 Java 中使用哪种方法来使用 javascript 解码我的 URL?

4

2 回答 2

2

没关系 !我找到了解决方案。

使用 Java 的服务器端:

URI uri = null;
try {
    uri = new URI("http", "localhost:8080", "/PrizeWheel/form.html", Worker.doValidateForm(), null);
} catch (URISyntaxException e) {
    this.log.error("class Worker / method doPost:", e); // Just writing the error in my log file
}
String url = uri.toASCIIString();
response.sendRedirect(url);

在 Javascript 中(在重定向页面的 onload 中调用的函数):

function retrieveParam() {
    var error = decodeURI(window.location.search).substring(1);

    if(error)
        alert(error);
}
于 2012-09-05T13:15:37.787 回答
0

您不使用 URLEncoder 对 URL 进行编码,它用于将表单数据编码为 application/x-www-form-urlencoded MIME 格式。您改用 URIEncoder,请参阅http://contextroot.blogspot.fi/2012/04/encoding-urls-in-java-is-quite-trivial.html

于 2012-09-05T07:10:30.923 回答